Ответ 1
Использование Spire,
private void buttonSpire_Click(object sender, EventArgs e)
{
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(filename);
PrintDocument(doc, printername, 1);
}
private void PrintDocument(PdfDocument doc, string printername, short copies)
{
PrintDialog dialogPrint = new PrintDialog();
dialogPrint.AllowPrintToFile = true;
dialogPrint.AllowSomePages = true;
dialogPrint.PrinterSettings.MinimumPage = 1;
dialogPrint.PrinterSettings.MaximumPage = doc.Pages.Count;
dialogPrint.PrinterSettings.FromPage = 1;
dialogPrint.PrinterSettings.ToPage = doc.Pages.Count;
dialogPrint.PrinterSettings.Copies = copies;
var paperSize = dialogPrint.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "Letter");
dialogPrint.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
doc.PrintFromPage = dialogPrint.PrinterSettings.FromPage;
doc.PrintToPage = dialogPrint.PrinterSettings.ToPage;
doc.PrinterName = printername;
PrintDocument printDoc = doc.PrintDocument;
printDoc.DefaultPageSettings.PaperSize = paperSize;
printDoc.PrinterSettings.Copies = copies;
dialogPrint.Document = printDoc;
printDoc.PrintController = new StandardPrintController();
printDoc.Print();
}
Проблема с штрих-кодом воспроизводится: весь штрих-код и текст сдвигаются вниз, а также несколько полей теряют текст Полужирный,
Но если я получу Spire из картинки, сделаю следующее:
private void buttonOther_Click(object sender, EventArgs e)
{
PrintDocument(filename);
}
private void PrintDocument(string filename)
{
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = filename;
Process p = new Process();
p.StartInfo = info;
p.Start();
}
У меня также установлен Adobe Acrobat на моей машине. Итак, я предполагаю, что, как только Spire не работает, Adobe Acrobat, по умолчанию, берет верх, и все работает нормально. Теперь, если все, что у вас есть, это только Spire, то вы застряли с ним. Попробуйте установить Acrobat и посмотрите, что вы получаете.