У меня есть небольшое приложение, где я выполняю печать PDF-документов. Все в порядке, кроме файлов, в которых штрих-код генерируется из шрифта, эта часть страницы выглядит деформированной (штрих-код в середине штрих-кода). Кто-нибудь знает, почему это происходит, любой подход исправить это?
Мой код:
public static void PrindDocument(string filePath, PrinterSetting printerSetting, int copies)
{
SpirePdf.PdfDocument doc = new SpirePdf.PdfDocument();
doc.LoadFromFile(filePath);
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 = (short)copies;
var paperSize = dialogPrint.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == printerSetting.Pageformat);
dialogPrint.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
doc.PrintFromPage = dialogPrint.PrinterSettings.FromPage;
doc.PrintToPage = dialogPrint.PrinterSettings.ToPage;
doc.PrinterName = printerSetting.Printer;
PrintDocument printDoc = doc.PrintDocument;
printDoc.DefaultPageSettings.PaperSize = paperSize;
printDoc.PrinterSettings.Copies = (short)copies;
dialogPrint.Document = printDoc;
printDoc.PrintController = new System.Drawing.Printing.StandardPrintController();
printDoc.Print();
}
Я пробовал другой метод, но этот метод делает то же самое:
private void SendToPrinter()
{
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = @"c:\output.pdf";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process p = new Process();
p.StartInfo = info;
p.Start();
p.WaitForInputIdle();
System.Threading.Thread.Sleep(3000);
if (false == p.CloseMainWindow())
p.Kill();
}
Пример файла PDF можно найти здесь: https://www.dropbox.com/sh/7vhnyji10f4ekx3/AACI2XtG3PoiHzGzoJNbH_k7a?dl=0
Также я хотел бы упомянуть, что когда я печатаю этот файл обычным способом, например open with google chrome и print, он выглядит нормально.