You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Freeware.Pdf2Png转换PDF为PNG时大文档仅部分页面成功的问题

使用Freeware.Pdf2Png转换大页数PDF丢失页面的问题及解决方案

实现场景

在C#中通过Freeware.Pdf2Png将多页PDF文档拆分转为对应数量的PNG图片,首先将PDF文件转为FileStream:

seleccionado = new FileStream(ruta_archivo, FileMode.OpenOrCreate, FileAccess.ReadWrite);

其中ruta_archivo为目标PDF的文件路径,后续基于该流调用Freeware.Pdf2Png的转换接口批量处理所有页面。

问题现象

小页数PDF(1页、36页)转换完全正常,但处理446页的PDF时,仅成功转换271页。确认原PDF文件无损坏,可正常查看全部页面。

疑问点

  • 为何大页数PDF无法完成全页转换?
  • 库本身是否存在页数或文件大小限制?
  • 是否是FileStream的创建方式导致的问题?

注:因合规要求,仅允许使用MIT或Apache 2.0协议的库(如Freeware.Pdf2Png),无法采用AGPL/GPL协议的工具(如iTextPdf、PDFSharp)。

解决方案

问题根源在于大页数转换过程中资源占用过高,即便使用using语句管理流资源也无法有效释放。在每次单页转换完成后手动触发垃圾回收,即可解决页面丢失问题,修正后的单页转换代码如下:

Freeware.Pdf2Png.ConvertConvert(pdf_file_stream, page-number);
GC.Collect();
GC.WaitForPendingFinalizers();

内容的提问来源于stack exchange,提问作者Jaime

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:55:11