我为我的web应用程序使用了TuesPechkin,并使用VS2013在IIS机上进行了本地测试。用户单击一个按钮,页面的当前HTML将保存为PDF文件,然后通过电子邮件发送出去。此过程将随着站点数据的更改而定期运行。
当converter.Convert(document)第一次运行时,它的转换没有问题。然而,每次随后的尝试都会导致进程挂起,并且我需要重新启动VS。
下面是我用来测试的一些默认代码。
public void MakePDF()
{
var document = new HtmlToPdfDocument
{
GlobalSettings =
{
ProduceOutline = true,
DocumentTitle = "Pretty Websites",
PaperSize = PaperKind.A4, // Implicit conversion to PechkinPaperSize
Margins =
{
All = 1.375,
Unit = TuesPechkin.Unit.Centimeters
}
},
Objects = {
new ObjectSettings { HtmlText = "<h1>Pretty Websites</h1><p>This might take a bit to convert!</p>" }
}
};
IConverter converter =
new ThreadSafeConverter(
new PdfToolset(
new Win32EmbeddedDeployment(
new TempFolderDeployment())));
byte[] result = converter.Convert(document);
}在这个问题上,谁能给我指出正确的方向?到目前为止,我的大多数故障排除都导致了一些关于线程和池化的讨论,但是没有具体的代码解决方案来多次运行TuesPechkin。
发布于 2015-04-29 06:02:25
你试过ThreadSafeConverter吗?StandardConverter仅适用于小型控制台应用程序。
IConverter converter =
new ThreadSafeConverter(
new RemotingToolset<PdfToolset>(
new Win32EmbeddedDeployment(
new TempFolderDeployment())));
byte[] result = converter.Convert(document);请注意,您应该将转换器放在某个静态位置,或者作为一个单独的实例(正如前面提到的here)。
发布于 2019-11-11 11:05:58
由于此应用程序在IIS上,可以获得单例转换器,并使用RemotingToolset
var toolSet = new RemotingToolset<PdfToolset>(winAnyCpuEmbeddedDeployment);//然后
using TuesPechkin.Wkhtmltox.AnyCPU;
...
var converter = PDFHelper.Factory.GetConverter();
var result = converter.Convert(This.Document);https://stackoverflow.com/questions/29929329
复制相似问题