Windows通用应用程序(UWP)中的HTML至PDF

854

是否可以在UWP应用中将HTML字符串转换为PDF文件?我已经看到可以在常规.NET应用程序中完成许多不同的方法(似乎有很多第三方库),但是我还没有看到可以在Universal / UWP应用程序中完成此方法的方法。有谁知道该怎么做?

如果没有纯代码解决方案,也许有某种方法可以挂入“ Microsoft Print to PDF”选项。

还是有一种绕行的方法,也许像在C#UWP应用程序中使用Javascript和https://github.com/MrRio/jsPDF一样我不确定,抓着稻草...

编辑

我已将Grace Feng-MSFT提供的解决方案标记为正确的方法,以证明可以通过使用打印对话框中的Microsoft Print to PDF选项将HTML转换为PDF。谢谢

格蕾丝·冯

如果没有纯代码解决方案,也许有某种方法可以挂入“ Microsoft Print to PDF”选项。

是的,但是使用这种方式,您首先需要在诸如RichEditBox或的控件中显示HTML字符串,该控件TextBlock只能UIElement是可打印的内容。

您也可以自己创建PDF文件,这是PDF中使用的基本语法:

在此处输入图片说明

您可以使用BTET创建段落:

在此处输入图片说明

这是C#中的示例:

StringBuilder sb = new StringBuilder();
sb.AppendLine("BT"); // BT = begin text object, with text-units the same as userspace-units
sb.AppendLine("/F0 40 Tf"); // Tf = start using the named font "F0" with size "40"
sb.AppendLine("40 TL"); // TL = set line height to "40"
sb.AppendLine("230.0 400.0 Td"); // Td = position text point at coordinates "230.0", "400.0"
sb.AppendLine("(Hello World)'");
sb.AppendLine("/F2 20 Tf");
sb.AppendLine("20 TL");
sb.AppendLine("0.0 0.2 1.0 rg"); // rg = set fill color to  RGB("0.0", "0.2", "1.0")
sb.AppendLine("(This is StackOverflow)'");
sb.AppendLine("ET");

然后,您可以创建一个PDF文件并将其保存到该文件中。但是,由于您要将HTML转换为PDF,这可能是一项艰巨的工作,我想您不想这样做。

还是有一种绕行的方法,也许像在C#UWP应用程序中使用Javascript和https://github.com/MrRio/jsPDF一样我不确定,抓着稻草...

老实说,使用Libs或Web服务将HTML转换为PDF也是一种方法,有很多方法,我只是在搜索它们,但找不到免费的WinRT。因此,我认为这里最实用的方法是第一种方法,将其连接到Microsoft Print to PDF。为此,您可以检查官方的打印样本

更新:使用@Jerry Nixon-如何在Windows Store应用程序中打印WebView内容中的MSFT代码,这是一个很好的例子。我只是添加了附加页打印一些代码,在NavigationCompleted事件WebView

private async void webView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
    MyWebViewRectangle.Fill = await GetWebViewBrush(webView);
    MyPrintPages.ItemsSource = await GetWebPages(webView, new Windows.Foundation.Size(842, 595));
}

然后在printDoc.AddPages += PrintDic_AddPages;事件中(printDoc是的实例PrintDocument):

private void PrintDic_AddPages(object sender, AddPagesEventArgs e)
{
    foreach (var item in MyPrintPages.Items)
    {
        var rect = item as Rectangle;
        printDoc.AddPage(rect);
    }
    printDoc.AddPagesComplete();
}

对于其他代码,您可以参考官方印刷样本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Dotnetexe至Windows通用应用程序

来自分类Dev

UWP(通用Windows应用程序)中的LoopingSelector?

来自分类Dev

通用Windows应用程序中的flipview

来自分类Dev

通用Windows平台(UWP)C#应用程序-如何在应用程序中运行独立的python

来自分类Dev

我想在Windows 10的UWP(通用Windows平台)中更改ListView默认选择颜色,以实现整个应用程序

来自分类Dev

Win 10手机/电话上通用Windows应用程序(UWP)中的半透明动态磁贴

来自分类Dev

在适用于 Windows Phone 的通用 Windows 应用程序中设置应用程序大小

来自分类Dev

通用Windows应用程序中的徽章通知

来自分类Dev

Windows Phone(通用)应用程序中的生成错误

来自分类Dev

您如何在Windows通用应用程序中定位

来自分类Dev

如何在 Windows 10 中杀死 UWP 应用程序?

来自分类Dev

在 uwp 应用程序中定位 Windows 版本

来自分类Dev

通用Windows平台(UWP)等效于获取主应用程序UI

来自分类Dev

在UWP应用程序中打开UWP

来自分类Dev

SQLite Windows通用应用程序

来自分类Dev

Windows Store应用程序的通用会话

来自分类Dev

SQLite Windows通用应用程序

来自分类Dev

Windows通用应用程序SetTitleBar

来自分类Dev

如何在通用应用程序[UWP]中编写XMP“有人标记”

来自分类Dev

在Windows通用应用程序(UWP)中,“ global :: System.Diagnostics.Debugger.Break()”错误在使用Tab和Alter选项卡时生成

来自分类Dev

通用应用程序中的动态表

来自分类Dev

Windows通用应用程序中的事件处理程序无法与inkCanvas一起使用

来自分类Dev

UWP 应用程序中的挂起模式

来自分类Dev

有没有办法将Xamarin.forms添加到通用Windows应用程序(UWP)?

来自分类Dev

通用Windows应用程序有可用的间谍程序吗?

来自分类Dev

在同一解决方案中,我如何与通用的.Net 4.5应用程序实时通信通用Windows应用程序。IPC?

来自分类Dev

在同一个解决方案中,我如何与通用的.Net 4.5应用程序实时通信通用Windows应用程序。IPC?

来自分类Dev

如何在Visual Studio 2015中使用TypeScript创建通用Windows应用程序?

来自分类Dev

如何使用C#在通用Windows应用程序中包含计时器

Related 相关文章

  1. 1

    Dotnetexe至Windows通用应用程序

  2. 2

    UWP(通用Windows应用程序)中的LoopingSelector?

  3. 3

    通用Windows应用程序中的flipview

  4. 4

    通用Windows平台(UWP)C#应用程序-如何在应用程序中运行独立的python

  5. 5

    我想在Windows 10的UWP(通用Windows平台)中更改ListView默认选择颜色,以实现整个应用程序

  6. 6

    Win 10手机/电话上通用Windows应用程序(UWP)中的半透明动态磁贴

  7. 7

    在适用于 Windows Phone 的通用 Windows 应用程序中设置应用程序大小

  8. 8

    通用Windows应用程序中的徽章通知

  9. 9

    Windows Phone(通用)应用程序中的生成错误

  10. 10

    您如何在Windows通用应用程序中定位

  11. 11

    如何在 Windows 10 中杀死 UWP 应用程序?

  12. 12

    在 uwp 应用程序中定位 Windows 版本

  13. 13

    通用Windows平台(UWP)等效于获取主应用程序UI

  14. 14

    在UWP应用程序中打开UWP

  15. 15

    SQLite Windows通用应用程序

  16. 16

    Windows Store应用程序的通用会话

  17. 17

    SQLite Windows通用应用程序

  18. 18

    Windows通用应用程序SetTitleBar

  19. 19

    如何在通用应用程序[UWP]中编写XMP“有人标记”

  20. 20

    在Windows通用应用程序(UWP)中,“ global :: System.Diagnostics.Debugger.Break()”错误在使用Tab和Alter选项卡时生成

  21. 21

    通用应用程序中的动态表

  22. 22

    Windows通用应用程序中的事件处理程序无法与inkCanvas一起使用

  23. 23

    UWP 应用程序中的挂起模式

  24. 24

    有没有办法将Xamarin.forms添加到通用Windows应用程序(UWP)?

  25. 25

    通用Windows应用程序有可用的间谍程序吗?

  26. 26

    在同一解决方案中,我如何与通用的.Net 4.5应用程序实时通信通用Windows应用程序。IPC?

  27. 27

    在同一个解决方案中,我如何与通用的.Net 4.5应用程序实时通信通用Windows应用程序。IPC?

  28. 28

    如何在Visual Studio 2015中使用TypeScript创建通用Windows应用程序?

  29. 29

    如何使用C#在通用Windows应用程序中包含计时器

热门标签

归档