打印为pdf格式打印机造成损坏的文件
问题描述:
尝试打印到文件,从.DOCX创建一个PDF或.xlsx打印为pdf格式打印机造成损坏的文件
它管理创建的文件,但试图打开它的时候,表示该文件已损坏或损坏。
代码:
string name = Path.GetFileNameWithoutExtension(filename);
string path = Path.GetDirectoryName(filename);
Directory.CreateDirectory(path);
PrintDocument pd = new PrintDocument();
pd.DocumentName = filename;
PrinterSettings printerSettings = new PrinterSettings();
printerSettings.PrinterName = "PDFCreator";
//printerSettings.PrinterName = "CutePDF Writer";
printerSettings.PrintToFile = true;
printerSettings.PrintFileName = String.Format(@"{0}/{1}.pdf", path, name);
pd.PrinterSettings = printerSettings;
pd.Print();
望着在文本编辑器的PDF,标题写着:
%PS-Adobe-3.0并 %%标题:C:\垃圾\样品.docx %%创建者:PScript5.dll版本5.2.2 %% CreationDate:2017/2/24 14:12:57 %%对于:用户 %% BoundingBox:(atend) %% Pages:(atend ) %%方向:肖像 %% PageOrder:特殊 %% DocumentNeededResources:(atend) %% DocumentSuppliedResources:(atend) %% DocumentData:Clean7Bit %% TargetDevice:(PDFCreator的)(3010)096 %%语言级:3个 %% EndComments %% BeginDefaults %% PageBoundingBox:0 0 595 842 %% ViewingOrientation:1 0 0 1 %% EndDefaults
是否尝试编辑标题为第一行%PDF的变化,但至今没有任何文件可以打开。
任何帮助或建议,将不胜感激。
谢谢。
答
打印到文件与指定保存由PDF打印机生成的文件的位置不同;它只是将通常发送到打印机的所有指令输出到文件中(在本例中为一系列PostScript命令)。没有办法以编程方式指定PDF打印机保存其生成的文件的位置,因为这是特定于实现的。
PDFCreator和CutePDF Writer的回答是正确的,但并非所有PDF打印机都是如此。某些PDF打印机(如Win2PDF)直接输出为PDF,并支持.NET .PrintToFileName和.PrintFileName属性。 –
感谢您的意见,布拉德利和克雷格。我会尝试Win2PDF,如果它仍然不起作用,我会回到打开Word的实例。 – Pearcy