如何通过“ Microsoft打印为PDF”以编程方式将文件和网页打印为PDF?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过“ Microsoft打印为PDF”以编程方式将文件和网页打印为PDF?相关的知识,希望对你有一定的参考价值。

我正在使用C#编写的UWP应用程序,我需要转换为pdf:-办公文件(doc,docx,xl​​s,xlsx,ppt,pptx)- 图片-网页

该应用程序必须能在x86,x64,ARM,ARM64体系结构中工作。

我知道市场上有第三方转换器库,但是只有少数几个在ARM64上下文或UWP中工作。

我的想法是(在Windows 10中使用)“ Microsoft PDF打印机”,该打印机允许用户将大多数文件格式保存为PDF。

我发现很多帖子都问同样的问题,但没有一个确实包含有用的答案。

我找到并测试的代码如下:

PrintDocument doc = new PrintDocument()
{
//DocumentName = safeDir + fileName,
    PrinterSettings = new PrinterSettings()
    {
        // set the printer to 'Microsoft Print to PDF'
        PrinterName = "Microsoft Print to PDF",

        // tell the object this document will print to file
        PrintToFile = true,


        // set the filename to whatever you like (full path)
        PrintFileName = safeDir + fileName,
    }
};
doc.Print();

以上代码生成有效但为空的pdf。我应该如何设置原始文件内容?

例如,如果我有一个名为myreport.docx

的Word文件,是否应该将其转换为字节数组并将其设置在某个位置?

谢谢你。

我正在使用C#编写的UWP应用程序,我需要转换为pdf:-办公文档(doc,docx,xl​​s,xlsx,ppt,pptx)-图像-网页应用程序必须在x86,x64,...

答案

[使用PrintDocument类时,您应按照以下示例将要打印的文件读入文件流:https://docs.microsoft.com/en-us/dotnet/api/system.drawing.printing.printdocument?view=netframework-4.8

另一答案

在UWP中,我们使用PrintDocument打印PrintDocument。这是官方UIElement。这是代码tutorial

以上是关于如何通过“ Microsoft打印为PDF”以编程方式将文件和网页打印为PDF?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击事件以编程方式显示/隐藏操作栏项目

如何通过以编程方式创建导航控制器 POP 以查看控制器

如何通过 c# 以编程方式更改 COM 安全设置?

如何通过禁用兼容模式以编程方式启动 EXE?

如何以编程方式通过 Main Activity 在 ViewPager 中更新刷新片段

如何通过使用 C、C++ 在 Linux 上指定其名称以编程方式检查特定守护程序是不是正在运行?