PDF4NET v13.2.1页面创建与尺寸/方向设置技术咨询
PDF4NET 13.2.1 API变更问题解答
1. 当前创建PDF页面的方式是否正确?
是正确的。PDF4NET 13.x版本完成了API重构,核心适配点包括:
- 采用
PDFFixedDocument作为PDF文档的核心容器,替代旧版文档对象 - 推荐使用
PDFImage直接加载图片,不再依赖System.Drawing.Image,规避了GDI+相关的兼容性问题 - 通过
pdfDoc.Pages.Add()添加页面的逻辑完全符合新版本API规范
2. 如何设置页面尺寸与方向?
分两种场景提供实现方案:
场景1:使用预设页面尺寸(如A4)
新版本通过PDFPageMediaBox配置标准页面尺寸,结合Orientation属性调整横竖方向:
PDFImage objImage = new PDFImage(imgPath); PDFFixedDocument pdfDoc = new PDFFixedDocument(); PDFPage page = pdfDoc.Pages.Add(); // 设置为A4横向页面 page.MediaBox = PDFPageMediaBox.CreateStandardMediaBox(PDFPageSize.A4); page.Orientation = PDFPageOrientation.Landscape; // 保持图片比例绘制到页面 page.Canvas.DrawImage(objImage, 0, 0, page.Width, page.Height, PDFKeepAspectRatio.KeepBoth);
场景2:自定义页面尺寸(如匹配图片尺寸)
若需要页面尺寸与图片完全一致,直接设置Width和Height即可;如需调整方向,可交换宽高或设置Orientation:
PDFImage objImage = new PDFImage(imgPath); PDFFixedDocument pdfDoc = new PDFFixedDocument(); PDFPage page = pdfDoc.Pages.Add(); // 匹配图片原尺寸 page.Width = objImage.Width; page.Height = objImage.Height; // 若要横向显示,可交换图片宽高作为页面尺寸 // page.Width = objImage.Height; // page.Height = objImage.Width; // 或通过Orientation属性自动交换页面宽高 // page.Orientation = PDFPageOrientation.Landscape; // 绘制图片到页面 page.Canvas.DrawImage(objImage, 0, 0, page.Width, page.Height);
内容的提问来源于stack exchange,提问作者Xion
相关产品推荐
相关产品推荐

