pdf上的可变数据

桑索什·纳亚克(Santhosh Nayak)

我想在特定位置添加可变文本和缩略图图像。具有诸如字体样式,旋转等格式的文本。

 iTextSharp.text.pdf.PdfReader reader = null;
     Document document = new Document();
                   PdfWriter writer;
        writer = PdfWriter.GetInstance(document,
                       new FileStream(temp,
                       FileMode.Create, FileAccess.Write));
 reader = new iTextSharp.text.pdf.PdfReader(file);
                               size = reader.GetCropBox(1);

                   PdfContentByte cb = writer.DirectContent;
                   document.NewPage();
                   PdfImportedPage page = writer.GetImportedPage(reader,
                   pageNumber);
                   cb.AddTemplate(page, 0, 0);

                   document.Close();

这会将第一页复制到新文档。我想在新文档上添加文本和图像。怎么做?

布鲁诺·洛瓦吉

您的第一句话后,许多人会停止阅读您的问题:

我要编辑现有的PDF

如果您阅读了本书第6章的介绍,您将会理解Edit一词不是正确的选择。

确实读过,发现您正在使用现有的PDFDocumentPdfWriter在其上标记新内容。如果您努力阅读我的书的第6章,您将会理解这是错误的您应该PdfStamper改用。

这是在线提供的示例之一:

public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    Phrase header = new Phrase("Copy", new Font(FontFamily.HELVETICA, 14));
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        float x = reader.getPageSize(i).getWidth() / 2;
        float y = reader.getPageSize(i).getTop(20);
        ColumnText.showTextAligned(
            stamper.getOverContent(i), Element.ALIGN_CENTER,
            header, x, y, 0);
    }
    stamper.close();
    reader.close();
}

您可以在以下URL上找到这些示例:

如果需要将第6章中的示例移植到C#,请访问以下URL:http : //tinyurl.com/itextsharpIIA2C06

更新

是否PdfStamper支持:

  • 字体嵌入:是的,正确完成后,将嵌入字体,
  • 字体大小:是的,很明显,
  • 字体家族:您提供字体程序,字体程序知道字体家族,
  • 对齐方式:对于单行:使用showTextAligned()用于文本块ColumnText警告:阅读有关文本模式复合模式的区别
  • 旋转:对于单条线,这仅是提供旋转角度的问题;对于文本块,创建一个Form XObject并使用旋转添加此对象,
  • ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

pdf上的可变数据

来自分类Dev

对不可变数据的可变引用

来自分类Dev

对不可变数据的可变引用

来自分类Dev

在可变数据结构上运行的函数是否可以参照透明?

来自分类Dev

使用Cassandra存储不可变数据?

来自分类Dev

使用MongoDB存储不可变数据?

来自分类Dev

FFI和懒惰中的可变数据

来自分类Dev

可变数据类型的Django模型

来自分类Dev

Erlang中的可变数据结构

来自分类Dev

可变数据类型的Django模型

来自分类Dev

val会产生可变数据吗?

来自分类Dev

可变数据打包成json

来自分类Dev

对Haskell中不可变数据的可变引用

来自分类Dev

对Haskell中不可变数据的可变引用

来自分类Dev

在可变数目的单词上分割字符串

来自分类Dev

如何在节点js上链接可变数量的方法?

来自分类Dev

在android屏幕上适应可变数量的视图

来自分类Dev

通过指针到成员对可变数据成员进行突变

来自分类Dev

使用prop的值作为组件中可变数据的基础

来自分类Dev

我可以空库优化可变数据吗?

来自分类Dev

如何在Rust中传递对可变数据的引用?

来自分类Dev

Python熊猫使用可变数量的输入创建数据框

来自分类Dev

具有不可变数据结构的RxJS?

来自分类Dev

Scala:相当于可变数据的collect +部分功能?

来自分类Dev

来自FFI和unsafePerformIO的不可变数据

来自分类Dev

创建具有可变数量属性的SAS数据集

来自分类Dev

在线程之间传递可变数据

来自分类Dev

带有ocaml和Jane Street异步的可变数据

来自分类Dev

使用可变数据库名称执行存储过程