如何使用 iText7 和 C# 将文本添加到现有 pdf 而不覆盖内容?

2023-12-25

我有这段代码,应该在 pdf 中的图像后面插入文本。

        // Read the data from input file
        string reader = "C:\\InesProjetos\\PrintTextWithImage\\PrintTextWithImage\\cat.pdf";
        string dest = "C:\\demo.pdf";
        string text = "C:\\InesProjetos\\PrintTextWithImage\\PrintTextWithImage\\text.txt";
        StreamReader rdr = new StreamReader(text);
        // Must have write permissions
        //to the path folder
        PdfWriter writer = new PdfWriter(dest);
        PdfReader readerFile = new PdfReader(reader);
        PdfDocument pdf = new PdfDocument(writer); 
        Document document = new Document(pdf);
        document.Add(new Paragraph(rdr.ReadToEnd()));
        document.Close();     

如何将text.txt文件中的文本插入cat.pdf文件中而不覆盖cat.pdf中的图像?

UPDATE

如何处理 readerFile 对象?我应该将 cat.pdf 插入 demo.pdf 然后添加文本吗?如果是的话怎么办?


每当您想向现有 pdf 添加内容时,您不仅需要书写,还需要阅读,即您需要PdfWriter and a PdfReader为了PdfDocument:

PdfReader reader = new PdfReader(source);
PdfWriter writer = new PdfWriter(dest);
PdfDocument pdf = new PdfDocument(reader, writer);

此外,如果您不希望新内容覆盖现有内容,则必须如此告知对象,例如如果你使用Document添加新内容:

Document document = new Document(pdf);
document.Add(new AreaBreak(AreaBreakType.LAST_PAGE));
document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));
document.Add(new Paragraph(rdr.ReadToEnd()));
document.Close(); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 iText7 和 C# 将文本添加到现有 pdf 而不覆盖内容? 的相关文章

随机推荐

  • Python - 如何从类方法中获取类名 - 使用@classmethod

    我有以下代码 class ObjectOne object classmethod def print class name cls print cls class name def print class name again self
  • GWT 列表框 - 如何使用文本查找项目索引?

    无论如何 是否可以使用 GWT 列表框中的项目文本查找项目的索引号 不 你必须通过它们并自己找到该索引 像这样 String text listBoxText int indexToFind 1 for int i 0 i
  • 使用正则表达式避免 pandas str.replace

    我有以下熊猫数据框 假设它有两列 id and search term id search term 37651 inline switch I do train search term train search term str repl
  • 如何从 flutter 访问设备应用

    有没有办法从 flutter 应用程序访问设备中安装的应用程序的详细信息并访问其隐私权限详细信息 例如 GMAIL 在我们的设备中拥有多少访问权限 目前没有官方库可用于检索设备中安装的软件包 你可以查看非官方插件 包管理器插件 https
  • 在视图寻呼机上方显示具有嵌套片段的对话框

    我设置了一个非常简单的测试项目https github com ArtworkAD ViewPagerDialogTest https github com ArtworkAD ViewPagerDialogTest评估以下情况 主要活动有
  • 为什么SSIS运行时无法启动分布式事务?

    在为 SQL Server 2008 创建 SSIS 包时 我遇到以下错误 错误 SSIS 运行时未能 启动分布式事务到期 错误 0x8004D01B 交易 经理没空 DTC 交易未能开始 这 可能会发生 因为 MSDTC 服务 没有运行
  • Java的Paint方法存在问题,刷新速度太离谱

    我正在为大学开发一个非常简单的 R Type 版本 但尽管它有效 但飞行速度却很慢 所以动作丑陋且笨拙 我使用重绘方法来刷新屏幕 还有其他方法或比它更好的方法吗 主面板的绘制方法 Override public void paint Gra
  • Rails:在初始化程序中获取主机名

    我正在使用 Sorcery 进行身份验证 并且需要在其初始值设定项中设置第三方身份验证 初始化程序有一行如下所示 config twitter callback url http example dev auth callback prov
  • Appengine 批量下载器未下载列表属性

    这与我之前的一个问题 https stackoverflow com questions 4231153 appengine bulkdownloader to xml with nested entities 但有新信息 我正在尝试将bu
  • 冷融合映射错误

    注意 如果您想使用绝对模板路径 例如 template mypath index cfm 与 CFINCLUDE 您必须创建一个 使用 ColdFusion Administrator 映射路径 我进入了管理页面 但不知道要在这里输入什么
  • fieldset 必须是表单吗?

    我对DTD一无所知 http www bls gov oco ocos292 htm http www bls gov oco ocos292 htm 在此页面上查看如何在表单之外使用 fieldset 这很酷 我喜欢这种风格 我认为这个问
  • 在 React 中将数据从子级传递给父级

    我在 React 中有 3 个组件 其中一个充当容器 将我的子组件传递到表单中进行渲染 提交表单时 我想获取父组件中的每个子组件 循环遍历每个子组件 创建服务器期望的对象 然后将对象列表发送回服务器 我正在努力访问父组件中 onSubmit
  • JAXB 解组返回 Null

    我正在制作这个示例 GUI 它只是将计算机部件从一侧移动到另一侧 并且能够将列表 以 xml 格式 加载和保存到桌面 除了重新加载已保存的 xml 文件之外 一切正常 我认为这与Save java中的注释有关 话虽如此 我不确定需要什么或者
  • pywinauto:访问 chrome gui

    我正在尝试使用 pywinauto 选择打印机并在 chrome 浏览器上进行打印 但我无法访问 gui 组件 我可以在 UIAutomation 模式下看到 Microsoft Inspect exe 中的组件 参见屏幕截图 我已经开始使
  • 将 Curl 命令转换为在 Zapier Webhook 中运行

    我正在尝试找到一种方法来运行它curlZapier 上的 Webhook Zap 中的命令 但我似乎无法弄清楚 我如何将其输入到 Webhook 中 将其作为一个运行会更好吗 Code Zap curl X POST https api z
  • 如何在 RealityKit 中显示图库中的图像?

    我想显示图库中的图像 我正在使用 imagePicker 加载图像 func imagePickerController picker UIImagePickerController didFinishPickingMediaWithInf
  • io.open 与 python 中 open 的区别

    过去 有codecs被替换为io 虽然看起来更建议使用io open 大多数Python入门课程仍然在教授open 有一个问题是Python 中 open 和 codecs open 的区别 https stackoverflow com
  • Spring Boot 中的 @InitBinder 无法与 @RequestBody 一起使用

    如果我使用 InitBinder而不限制它 它可以与 RequestBody一起正常工作来验证我的对象 InitBinder private void initBinder WebDataBinder binder binder setVa
  • YouTube 自动播放无法正常工作

    我正在使用 youtube embed 来显示视频 我需要在网站打开时自动播放 我在这段代码工作正常之前就使用了它 但在过去的几天里 自
  • 如何使用 iText7 和 C# 将文本添加到现有 pdf 而不覆盖内容?

    我有这段代码 应该在 pdf 中的图像后面插入文本 Read the data from input file string reader C InesProjetos PrintTextWithImage PrintTextWithIma