ABCPDF使用正确的布局将文本PDF转换为图像PDF



我正在尝试将文本pdf转换为图像pdf,为此我找到了以下文章:

abcpdf将文本转换为图像

所以我拿了代码生成以下代码:

WebSupergoo.ABCpdf9.Doc firstDoc = new WebSupergoo.ABCpdf9.Doc();
WebSupergoo.ABCpdf9.Doc secondDoc = new WebSupergoo.ABCpdf9.Doc();
firstDoc.Read(@"C:pdf1.pdf");
for (int i = 1; i <= firstDoc.PageCount; i++)
{
    secondDoc.Page = secondDoc.AddPage();
    firstDoc.PageNumber = i;
    secondDoc.MediaBox.String = firstDoc.MediaBox.String;
    using (Bitmap bm = firstDoc.Rendering.GetBitmap())
    {
        secondDoc.AddImageBitmap(bm, false);
    }
}
secondDoc.Save(@"c:pdf2.pdf");

现在,上面的代码运行良好,除非我有PDF文档在肖像布局中包含某些页面和景观中的其他页面。发生的目的是以下内容:

假设我有一个pdf文档;

Page 1 - portrait
Page 2 - landscape
Page 3 - portrait
Page 4 - portrait

该代码产生的结果是:

Page 1 - portrait
Page 2 - portrait
Page 3 - landscape
Page 4 - portrait

除了设置MediaBox以具有正确的结果外,我还有其他需要做的吗?

感谢您在评论中的有用反馈,我能够通过放置

来解决问题
secondDoc.Page = secondDoc.AddPage();

之后
secondDoc.MediaBox.String = firstDoc.MediaBox.String;

现在看起来像这样的工作代码:

WebSupergoo.ABCpdf9.Doc firstDoc = new WebSupergoo.ABCpdf9.Doc();
WebSupergoo.ABCpdf9.Doc secondDoc = new WebSupergoo.ABCpdf9.Doc();
firstDoc.Read(@"C:pdf1.pdf");
for (int i = 1; i <= firstDoc.PageCount; i++)
{
    firstDoc.PageNumber = i;
    secondDoc.MediaBox.String = firstDoc.MediaBox.String;
    secondDoc.Page = secondDoc.AddPage();
    using (Bitmap bm = firstDoc.Rendering.GetBitmap())
    {
        secondDoc.AddImageBitmap(bm, false);
    }
}
secondDoc.Save(@"c:pdf2.pdf");

最新更新