与常规 Adobe 打印相比,Iron PDF 网络打印需要更多时间

问题描述 投票:0回答:1

我们使用 Iron PDF 打印以 varbinary 形式存储在数据库中的 PDF 文档。我们尝试比较使用 Iron PDF 从 Windows 应用程序打印与打印实际物理 PDF 文件(相同页数)之间的时间; Print() 行实际上需要大约 45 秒才能完成,而使用 Adobe 从文件进行常规打印需要 3-5 秒。

public static bool PrintPDF(byte[] fileContent)
{
    if (fileContent != null && fileContent.Length > 0)
    {
        try
        {
            PdfDocument pdfDocument = new(fileContent);
            pdfDocument.Print();
            return true;
        }
        catch (Exception ex)
        {
            //handle exception
        }
    }
    return false;
}

关于如何提高打印速度有什么建议吗?

谢谢

c# .net printing ironpdf
1个回答
0
投票

以下不是答案,但描述了我所做的测试,包括我用于使用 IronPDF(v.2024.12.9)测试打印的代码。

  • 创建新的 Windows 窗体应用程序 (.NET 8)
  • 下载/安装 NuGet 包:IronPDF(v.2024.12.9)
  • 此包似乎使用了标记为 vulnerableSystem.Text.JSON 版本。如果使用 Visual Studio,可以更新此包。下载/安装包后,关闭 NuGet 包管理器。然后在 解决方案资源管理器 中,右键单击 并选择 管理 NuGet 包...。单击已安装选项卡。向下滚动到 System.Text.Json 并选择它。版本 6.0.11 似乎未标记为易受攻击,因此选择该版本并单击 更新
  • 向表单添加按钮(名称:buttonTest)

然后使用以下代码进行测试:

注意:确保将 async 关键字添加到 Click 事件处理程序中。

Form1.cs

private async void buttonTest_Click(object sender, EventArgs e)
{
    //open a file dialog to prompt user to select a PDF file and print it
    using (OpenFileDialog ofd = new OpenFileDialog())
    {
        ofd.Filter = "PDF Document (*.pdf)|*.pdf";

        if (ofd.ShowDialog() == DialogResult.OK)
        {
            byte[] fileContent = System.IO.File.ReadAllBytes(ofd.FileName);

            Stopwatch sw = new Stopwatch();
            sw.Start();
            using (PdfDocument pdfDocument = new PdfDocument(fileContent))
            {
                int result = await pdfDocument.Print();

                Debug.WriteLine($"result: {result}");
            }

            sw.Stop();

            Debug.WriteLine($"Time elapsed: {sw.Elapsed}");
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.