ABCPDF将文本PDF转换为具有正确布局的图像PDF

时间:2014-03-09 14:49:05

标签: c# pdf abcpdf abcpdf9

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

ABCpdf convert text to image

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

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以获得正确的结果外,还有什么我需要做的吗?

1 个答案:

答案 0 :(得分:0)

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

来解决问题
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");