如何使用iTextsharp重新调整pdf内容的大小

时间:2012-11-03 15:08:27

标签: c#-4.0 pdf itextsharp

我只需要在pdf文件中调整页面内容的大小,它与缩小文件大小无关我只需要减少每个页面内容,这是一个图像,可以在横向模式下将其打印为小册子。 所以我需要减少每个页面内容的高度和宽度。

我正在使用带有c#

的iTextSharp

2 个答案:

答案 0 :(得分:1)

最简单的方法可能是更改相关网页的默认用户空间单位的大小。

可以使用页面词典条目 / UserUnit ,每页基于页面配置默认用户空间单位,参见PDF规范ISO 32000-1:2008中的表30:

  

UserUnit 号码(可选; PDF 1.6)一个正数,用于给出默认用户空间单位的大小,以1/72英寸的倍数表示。   支持值的范围应取决于实现。

     

默认值:1.0(用户空间单位为1/72英寸)。

因此,您所要做的就是为PDF文件的PdfReader创建一个PdfStamper,遍历页面词典,读取它们当前的 / UserUnit 值(默认值:1.0),将其减少为期望,将其写回,将页面字典标记为已更改,并写入PdfStamper的结果。

答案 1 :(得分:0)

尝试将您的内容添加到文档中,并使用SetPageSize属性将文档页面设置为横向 以下是将页面设置为横向的代码:
        文件文件=新文件();
        的 document.SetPageSize(iTextSharp.text.PageSize.A4.Rotate());
        //添加一些内容
        PdfPTable table = new PdfPTable(1);
        PdfPCell cell = new PdfPCell(new Phrase(“Some test text”));
        cell.Horizo​​ntalAlignment = 1; // 0 =左,1 =中心,2 =右
        table.AddCell(细胞);