经过一整天的努力,我发现了问题,但这并没有解决我的问题。
总之:
我需要打开PDF,转换为BW(灰度),搜索一些单词并在找到的单词附近插入一些注释。初看起来似乎很容易,但我发现了如何处理难以处理的PDF文件(没有“单词”概念等等)。
现在第一个任务,转换为灰度只是让我发疯。我没有找到商业或免费的工作解决方案。我提出了这个解决方案:
这非常难看,因为我会强迫C#用户安装这样的第三方SW但是......那是fpr的时刻。我测试了FreePDF,CutePDF和PDFCreator。所有人都按照预期“独立”工作。
现在,当我尝试从C#打印时,显然,我不想要打印对话框,只需选择BW选项并打印(也称为转换)
以下代码仅使用PDF库,仅为清晰起见而显示。
Aspose.Pdf.Facades.PdfViewer viewer = new Aspose.Pdf.Facades.PdfViewer();
viewer.BindPdf(txtPDF.Text);
viewer.PrintAsGrayscale = true;
//viewer.RenderingOptions = new RenderingOptions { UseNewImagingEngine = true };
//Set attributes for printing
//viewer.AutoResize = true; //Print the file with adjusted size
//viewer.AutoRotate = true; //Print the file with adjusted rotation
viewer.PrintPageDialog = true; //Do not produce the page number dialog when printing
////PrinterJob printJob = PrinterJob.getPrinterJob();
//Create objects for printer and page settings and PrintDocument
System.Drawing.Printing.PrinterSettings ps = new System.Drawing.Printing.PrinterSettings();
System.Drawing.Printing.PageSettings pgs = new System.Drawing.Printing.PageSettings();
//System.Drawing.Printing.PrintDocument prtdoc = new System.Drawing.Printing.PrintDocument();
//prtdoc.PrinterSettings = ps;
//Set printer name
//ps.PrinterName = prtdoc.PrinterSettings.PrinterName;
ps.PrinterName = "CutePDF Writer";
ps.PrintToFile = true;
ps.PrintFileName = @"test.pdf";
//
//ps.
//Set PageSize (if required)
//pgs.PaperSize = new System.Drawing.Printing.PaperSize("A4", 827, 1169);
//Set PageMargins (if required)
//pgs.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0);
//Print document using printer and page settings
viewer.PrintDocumentWithSettings(ps);
//viewer.PrintDocument();
//Close the PDF file after priting
我发现并且似乎很少解释,如果你选择
ps.PrintToFile = true;
无论是C#PDF库还是PDF打印机驱动程序,Windows都会跳过PDF驱动程序而不是PDF文件会输出PS(postscript),显然,Adobe Reader无法识别。
现在的问题(我很肯定其他可能想要从C#打印PDF的人)是如何打印到CutePDF的例子,并且仍然禁止任何文件名对话框?
换句话说,只需使用C#应用程序中以编程方式选择的文件名进行静默打印。或者以某种方式说服“打印到文件”来浏览PDF驱动程序,而不是Windows默认的PS驱动程序。
非常感谢任何提示。
答案 0 :(得分:0)
我用这个帖子解决了使用商业组件转换为灰度的问题,我还在那里发布了我的完整解决方案,小心点,任何人都会像我一样挣扎。