【问题标题】:itextsharp Creating several pdf's at the same time [closed]itextsharp 同时创建多个 pdf [关闭]
【发布时间】:2013-12-09 13:30:36
【问题描述】:

是否可以使用 itextsharp 同时创建多个 PDF?

我从这段代码开始:

pdfdoc = new Document(PageSize.A4);
PdfWriter writer;

string Pfad = @"\...." + Filename; //Filename is with a random number.

writer = PdfWriter.GetInstance(pdfdoc, new FileStream(Server.MapPath(Pfad), 
writer.ViewerPreferences = PdfWriter.PageModeUseOutlines;
TwoColumnHeaderFooter eventHandler = new TwoColumnHeaderFooter();
writer.PageEvent = eventHandler;

pdfdoc.Open();

非常感谢您的快速答复。

【问题讨论】:

  • 您的意思是在不同线程中创建 PDF 吗?你想做什么?
  • 用户单击按钮,这个调用c#函数,创建pdf,同时另一个用户在他的浏览器中单击相同的按钮。

标签: c# itextsharp


【解决方案1】:

如果您计划允许多个用户在已发布的网站上创建 PDF,那没有问题

如果您要在服务器上生成每个生成的 PDF 文件(然后在用户下载后将其删除),您只需担心为每个生成的 PDF 文件创建唯一的文件名

或者您可以在内存中创建 PDF 并将它们作为响应的一部分返回,然后让用户将其保存在其本地计算机上

这两个解决方案中的任何一个都可以被多个用户同时调用而不会出现任何问题。

看这个例子

【讨论】:

  • 上面是代码示例,就是这个意思?
  • @user2834085 我添加了可以帮助您的示例链接
  • 感谢您的链接。在我的例子中,该函数将 PDF 文件(标题中带有随机数)保存在服务器上的文件夹中,然后在客户端的 Javascript 中打开保存的 PDF 文件。这适用于一个文件,但不适用于另一个用户创建他的 PDF 而另一个/第一个是实际创建的。
  • @user2834085 您是否检查过您是否真的为每个请求获得了不同的文件名?也许您在初始化随机种子时遇到问题?
  • 是的,上面的代码为文件夹中的每个文件写入不同的文件,并随机排列。第二个文件是正确的,但是一个消息框说第一个“有错误,它不能打开,它在函数中打开”。
【解决方案2】:

我解决了问题:

//This line works
Document pdfdoc = new Document(PageSize.A4);

//===================================================================================
     //I make the mistake, and declare the 
     Document pdfdoc;
     //global as 
     private static Document pdfdoc;
     // and this one works only for one creating PDF not for several at the same time.
//===================================================================================


PdfWriter writer;

string Pfad = @"\...." + Filename; //Filename is with a random number.

writer = PdfWriter.GetInstance(pdfdoc, new FileStream(Server.MapPath(Pfad), 
writer.ViewerPreferences = PdfWriter.PageModeUseOutlines;
TwoColumnHeaderFooter eventHandler = new TwoColumnHeaderFooter();
writer.PageEvent = eventHandler;

pdfdoc.Open();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 2016-03-05
    • 2018-12-27
    相关资源
    最近更新 更多