UWP PDF 打印

Posted

技术标签:

【中文标题】UWP PDF 打印【英文标题】:UWP PDF printing 【发布时间】:2019-02-02 06:07:10 【问题描述】:

有没有办法从 UWP 应用程序打印 PDF?除了将其渲染为pngBitmapImage

我看过 Microsoft printing sample 和 pdf rendering sample 通过将其渲染为位图图像来实现打印 pdf。但是,它会降低 pdf 的质量。想知道是否有任何其他有效的方法可用而不使用库

编辑(2018 年 12 月 31 日)

我试图在不使用库的情况下从 Microsoft 找到直接解决方案。但是,没有,所以我使用PDfSharp 在微软的AppServiceBridge 的帮助下解决了我的问题。我使用了 AppService 桥,因为 PdfSharp 不能直接用于 WinRT。

【问题讨论】:

也许你可以试试this库。它支持Winrt。 谢谢。但是,我希望在没有库的情况下解决这个问题。我会更新我的问题。 位图图像太小会降低质量。打印机具有非常高的分辨率,在 600dpi 打印机上打印一张 11x8.5 英寸的纸需要 6600x5100 位图,128 兆字节。 PDF 旨在克服的问题 :) 现在您可能在图像映射中将 1 个像素映射到纸上约 6x6 的墨迹,因为您没有调整它的 dpi,需要很长的手臂才能看到. “在没有库的情况下解决这个问题”是什么意思?如果 Microsoft 提供的示例不够好,我怀疑你会在没有任何 3rd 方库的情况下解决这个问题。 我认为这个问题不是关于打印到 PDF(不是点击打印和接收 pdf 文件),而是直接从 UWP 应用程序打印 PDF(使用应用程序打开 pdf 文件,单击打印并获得 pdf文件发送到打印机)。 【参考方案1】:

我通过 Github 项目在 C# 中使用了虚拟打印机:Microsoft/Windows-driver-samples/print/XPSDrvSmpl。

https://github.com/Microsoft/Windows-driver-samples/tree/master/print/XPSDrvSmpl

安装者:http://wixtoolset.org/

应用程序:监听内部端口

流程:从单个安装程序安装打印机和应用程序。当应用程序侦听内部端口时,用户使用您的驱动程序打印一些东西。当发送数据时,应用程序会接收它。这是针对XPS的,可以转换成PDF,但是不管你打印什么,流程都差不多。

原答案:

https://***.com/a/40370083/3850405

【讨论】:

以上是关于UWP PDF 打印的主要内容,如果未能解决你的问题,请参考以下文章

UWP 打印预览仅在第一页显示空白页

打印BitmapImage的PDF / ObservableCollection

在 Xamarin UWP 中打印账单

在UWP中打印原始数据

在 Xamarin UWP 中打印具有多个页面的 WebView

Xamarin.Forms UWP - 具有分页支持的打印 Web 视图