【发布时间】:2017-07-20 13:59:16
【问题描述】:
我有一个大小为 230KB 的 pdf 模板。在我的多个用户的WebAPI 中,复制该模板将数据推送到它,并使用iTextsharp 库进行合并。对于 1500 个用户,总文件大小达到 320 MB。
我尝试使用BitMiracle,它将文件大小减少到 160 MB。但它仍然是一个大文件。
我使用了acrobat Pro 和Save as Other 选项Reduced Size PDF,它将文件大小减少到25 MB。
我想在我的 WebAPI 中使用 C# 将文件大小减小到 25MB,稍后将托管在服务器上。
由于用户不应该编辑该PDF,他只会将其存储为记录。我可以生成一个 post 脚本文件,然后使用 acrobat distiller 减小大小吗?如果可以,我该怎么做?
我正在使用ghostscript.Net。写了这个方法,它没有抛出任何错误。但是我找不到生成的后记文件的路径
public void convertToPs(string file)
{
try
{
Process printProcess = new Process();
printProcess.StartInfo.FileName = file;
printProcess.StartInfo.Verb = "printto";
printProcess.StartInfo.Arguments = "\"Ghostscript PDF\"";
printProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
printProcess.StartInfo.CreateNoWindow = true;
printProcess.Start();
// Wait until the PostScript file is created
try
{
printProcess.WaitForExit();
}
catch (InvalidOperationException) { }
printProcess.Dispose();
}
catch (Exception ex)
{
throw ex;
}
}
请帮忙
【问题讨论】:
-
所以你有 1500 个用户都在写一个 PDF? - 一种解决方案是不这样做。 (即仅按需生成)
-
实际上是WebAPI代码写入PDF。因此生成了 1500 个副本,并合并为单个 PDF 作为输出
-
什么样的数据被推送到 pdf 中?
-
因为它是一个模板,使用键值对、整数和字符串被推送到 PDF
-
我认为没有任何代码很难帮助你。请添加您的代码和您尝试过的内容。
标签: c# pdf asp.net-web-api postscript acrobat-sdk