【问题标题】:ABCPDF Converting Text PDF to Image PDF with correct layoutABCPDF 将文本 PDF 转换为具有正确布局的图像 PDF
【发布时间】:2014-03-09 14:49:04
【问题描述】:

我正在尝试将文本 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 以获得正确的结果之外,我还需要做些什么吗?

【问题讨论】:

  • 你试过把secondDoc.Page = secondDoc.AddPage();放在secondDoc.MediaBox.String = firstDoc.MediaBox.String;之后吗?
  • @mkl 我试过了......也没有用。
  • 您可能需要检测 firstDoc 中每个页面的旋转并将其应用于 secondDoc。见:stackoverflow.com/questions/15572165/…
  • @mkl 您的解决方案是正确的。我不清楚应该先做什么。请添加答案,我会接受。谢谢

标签: c# pdf abcpdf abcpdf9


【解决方案1】:

感谢cmets中的有用反馈,我能够通过放置

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

【讨论】:

    猜你喜欢
    • 2012-03-22
    • 1970-01-01
    • 2014-04-15
    • 2012-05-09
    • 1970-01-01
    • 2017-12-24
    • 2016-03-20
    • 1970-01-01
    • 2016-05-02
    相关资源
    最近更新 更多