如何从Windows应用商店应用程序打印pdf文件

时间:2012-12-05 09:19:02

标签: c#-4.0 windows-8 microsoft-metro winrt-xaml

我正在c#和xaml中创建一个Windows 8应用程序。 如何在不启动Windows的pdf阅读器的情况下从此应用程序在我的系统上打印pdf文件。

3 个答案:

答案 0 :(得分:2)

如果可以选择商业图书馆,您可以尝试Amyuni PDF Creator for WinRT

From the documentation,使用此库在C#中打印PDF文件的代码如下所示:

// Printing on a XAML Windows Store Application
// The field AmyuniPDFCreator.PDFCreator m_pdfCreator; contains an instance of the PDFCreator control
TypedEventHandler<PrintManager, PrintTaskRequestedEventArgs> m_printTaskRequestedEventToken;
// Registering the Application View for printing
void RegisterForPrinting()
{
    // Request a PrintManager instance
    PrintManager printMan = PrintManager.GetForCurrentView();
    // Add a handler for printing events.
    m_printTaskRequestedEventToken = printMan.PrintTaskRequested += m_pdfCreator.Document.PrintTaskRequestedEventHandler;
}
// Unregistering the Application View for printing
void UnregisterForPrinting()
{
    // Remove the handler for printing events.
    PrintManager printMan = PrintManager.GetForCurrentView();
    printMan.PrintTaskRequested -= m_printTaskRequestedEventToken;
}

有关该库的更多详细信息,请访问here

免责声明:我目前是图书馆的开发人员

答案 1 :(得分:2)

如果您想使用设备打印,可以在没有任何第三方库的情况下实现此目的。

这不是为了创建或编写&#34; .pdf&#34; [Pdf文件]。为了在没有其他库的情况下实现这一点,您可以尝试将图像直接写入pdf,但我只能在这里参考Pdf文档。

首先,你必须渲染你的PDF格式。您可以使用Windows.Data.Pdf执行此操作。 您可以查看示例here。 libary将处理Pdf,你会得到一些BitmapImages。 这个库可以阅读,但不能写#34; .pdf&#34;

现在你必须打印你的图像(渲染的pdf页面)。为此,您可以使用Windows.Graphics.Printing.PrintManager。 在这种情况下,我不推荐使用msdn示例。 因此,请先了解Windows Store Apps and XAML Based Printing

你会在这里找到另一个MVVM的打印示例:Printing from MVVM XAML Windows 8 Store apps

如果您只是按照示例进行操作,那么在纸上打印pdf会有些麻烦。

如何为您的打印机添加自定义设置,请参阅How to add custom settings to the print preview UI (XAML)

答案 2 :(得分:1)

Windows 8没有用于执行此操作的API,因此您必须在其他地方获取一个 - 能够为您正确呈现PDF的内容,这将意味着一个完整的PDF API与所有钟声和口哨(我不知道任何这些仅支持打印的Windows 8。)

如果只有PDF Sharp有一个WinRT版本,我会在心跳中推荐它......不幸的是它还没有(还)。只有我知道的有WinRT API的是FoxitSiberix Report Writer