【发布时间】:2014-03-09 14:49:04
【问题描述】:
我正在尝试将文本 pdf 转换为图像 pdf,为此我找到了以下文章:
所以我将代码生成了以下代码:
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 您的解决方案是正确的。我不清楚应该先做什么。请添加答案,我会接受。谢谢