Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将高分辨率PDF转换为低分辨率PDF文件C#_C#_Asp.net_Pdf - Fatal编程技术网

将高分辨率PDF转换为低分辨率PDF文件C#

将高分辨率PDF转换为低分辨率PDF文件C#,c#,asp.net,pdf,C#,Asp.net,Pdf,我正在寻找一种将高分辨率PDF文件从ASP.NET应用程序(C#)转换为低分辨率PDF文件的方法。 用户将导入高分辨率PDF,然后解决方案应能够同时提供高分辨率PDF和低分辨率PDF。 我正在寻找一个API来实现这一点。我已经找到了很多PDF API,但它们似乎都没有达到我想要的效果。也许你可以在高分辨率版本的PDF中调整图像大小,这将为你提供更小的文件 您可以使用调整大小和/或重新压缩图像。有关更多详细信息,请参阅 免责声明:我是Docotic.Pdf库的开发人员之一。解决此问题的方法有很多,

我正在寻找一种将高分辨率PDF文件从ASP.NET应用程序(C#)转换为低分辨率PDF文件的方法。 用户将导入高分辨率PDF,然后解决方案应能够同时提供高分辨率PDF和低分辨率PDF。
我正在寻找一个API来实现这一点。我已经找到了很多PDF API,但它们似乎都没有达到我想要的效果。

也许你可以在高分辨率版本的PDF中调整图像大小,这将为你提供更小的文件

您可以使用调整大小和/或重新压缩图像。有关更多详细信息,请参阅


免责声明:我是Docotic.Pdf库的开发人员之一。

解决此问题的方法有很多,其中之一就是从InDesign导出两次(这将允许您制作两个所需的Pdf版本)。如果这是不可行的(从InDesign导出可能会花费一些时间),那么市场上肯定有一些库可以执行您想要做的事情。以下是一些方法:

1) 虽然这会让我被大多数Adobe员工拍到,但你可以将你的PDF文件重新提取成一个较小的文件。我不主张这样做,我只是说它是完整的。所涉及的风险包括引入质量损失、人工制品等(主要是因为PostScript不支持PDF支持的许多功能,而通过重新划分您将失去这些功能)

2) 使用为此任务创建的应用程序或库。例如,callas pdfToolbox(警告,我隶属于这家公司!)能够获取PDF文件并对其进行更正。其中包括图像下采样、转换为RGB、图像重新压缩(例如使用JPEG-2000)、丢弃PDF中不必要的数据等。考虑到应用程序有一个命令行界面,它可以很容易地集成到c#进程中。其他具有类似功能的应用程序将来自Enfocus、Apago等公司

3) 使用低级PDF库(例如可以通过DataLogics从Adobe获得许可的Adobe PDF库),并自行实施必要的更改。更多的工作,但可能更灵活


无论您选择哪种方法,都要知道您是从一个高质量的PDF文件开始的,并且您的流程应该尽可能多地保持这种质量(当然,这取决于您使用的低分辨率PDF文件的应用程序)。确保你不会因为失去适当的套印、透明度等而陷入麻烦。

ABCpdf.NET会帮你做到这一点。PDF文档中有多种用于调整图像大小、重新采样或重新压缩图像的功能。然而,考虑到您的需求,您可能只想使用文档缩减操作

要做到这一点,您只需要以下形式的代码:

Doc doc = new Doc();
doc.Read(Server.MapPath("../mypics/sample.pdf"));
using (ReduceSizeOperation op = new ReduceSizeOperation(doc)) {
op.UnembedSimpleFonts = false; // though of course making these true...
op.UnembedComplexFonts = false; // ... would further reduce file size.
op.MonochromeImageDpi = 72;
op.GrayImageDpi = 72;
op.ColorImageDpi = 144;
op.Compact(true);
}
doc.Save(Server.MapPath("ReduceSizeOperation.pdf"));

我从事ABCpdf.NET软件组件的工作,因此我的回复可能以ABCpdf为基础。这正是我所知道的。:-)

什么文件是HR\U PDF和LR\U PDF?在谷歌上快速搜索没有发现任何东西。出于好奇,什么是HR_PDF,什么是LR_PDF?到目前为止,你尝试了什么?你在谷歌上搜索过任何可能对你有帮助的东西吗?有很多C#PDF库。定义“高分辨率”和“低分辨率”。你会考虑一个PDF文档的屏幕捕获“低分辨率”吗?高分辨率的PDF文件是从一个IdD生成的。它是使用预设“最高文件大小”中的bult从Indesign生成的。所以,从生成的文件中,我想生成一个分辨率较低的PDF文件。类似于内置PDF预设的“最低文件大小”。不幸的是,我没有能力从Indesign或类似程序创建低分辨率文件,我必须从代码中创建。不幸的是,我需要一种开源的解决方案来解决这个问题。那么剩下的就是选项3),并尝试找到一个你可以使用的库,它不会破坏PDF文件。我对这些不太熟悉,所以我得通过考试。我可以建议您在问题中添加对开源/免费解决方案的要求吗?这可能有助于将进一步的答案引向正确的方向。。。