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