首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在VB.net中使用iText向现有.pdf添加图像和文本

在VB.net中使用iText向现有.pdf添加图像和文本
EN

Stack Overflow用户
提问于 2016-08-13 16:10:25
回答 1查看 2.2K关注 0票数 0

我有一个按钮点击下面的代码,这是很好的工作。它向每个现有的.pdf添加一个图像,然后将几个新的.pdf组合在一起并创建一个.pdf。同样,它的这一部分工作得很好。

我现在遇到的问题是,我想保留现有的代码,但在添加图像的代码中的相同位置向每个页面添加一些文本。我读过一堆关于如何向现有.pdf添加文本的示例,但由于我在该领域缺乏经验,我不知道如何使这些示例与我现有的代码一起工作。使用VB.net。

我想添加一行简单的文本"Example of text“,并将其放置在页面上(300,300)。

任何帮助都将不胜感激。

代码语言:javascript
运行
AI代码解释
复制
    Dim tempFilename = IO.Path.GetTempFileName()
    Dim tempFile As New IO.FileStream(tempFilename, IO.FileMode.Create)

    ' Set up iTextSharp document to hold merged PDF
    Dim mergedDocument As New iTextSharp.text.Document(iTextSharp.text.PageSize.LETTER)
    Dim copier As New iTextSharp.text.pdf.PdfCopy(mergedDocument, tempFile)
    mergedDocument.Open()

    Dim pic1 As String = "C:\xxx\xxxx\xxx.png"

            Using inputPdfStream As IO.Stream = New IO.FileStream(Server.MapPath(".") + "/xxx.pdf", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
                Using inputImageStream As IO.Stream = New IO.FileStream(pic1, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
                    Using outputPdfStream As IO.Stream = New IO.FileStream(Server.MapPath(".") + "/xxx2.pdf", IO.FileMode.Create, IO.FileAccess.ReadWrite, IO.FileShare.None)
                        Dim reader1 = New iTextSharp.text.pdf.PdfReader(inputPdfStream)
                        Dim stamper = New iTextSharp.text.pdf.PdfStamper(reader1, outputPdfStream)
                        Dim pdfContentByte = stamper.GetOverContent(1)

                        Dim image__1 As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(inputImageStream)
                        image__1.SetAbsolutePosition(527, 710)
                        image__1.ScaleAbsolute(60, 60)
                        pdfContentByte.AddImage(image__1)
                        stamper.Close()
                        reader1.Close()
                        outputPdfStream.Close()
                        inputImageStream.Close()
                        inputPdfStream.Close()
                        outputPdfStream.Dispose()
                    End Using
                End Using
            End Using

            Dim reader As New iTextSharp.text.pdf.PdfReader(New iTextSharp.text.pdf.RandomAccessFileOrArray(Server.MapPath(".") + "/yyy/xxx3".pdf", True), Nothing)

            For pageNum = 1 To reader.NumberOfPages
                copier.AddPage(copier.GetImportedPage(reader, pageNum))
            Next

            PTime = PTime + 1
        Loop

        mergedDocument.Close()
        tempFile.Dispose()
EN

回答 1

Stack Overflow用户

发布于 2016-08-14 18:58:54

经过大量的试验和错误,我通过添加以下代码使其工作。

代码语言:javascript
运行
AI代码解释
复制
    Dim bf As iTextSharp.text.pdf.BaseFont = iTextSharp.text.pdf.BaseFont.CreateFont(iTextSharp.text.pdf.BaseFont.HELVETICA, iTextSharp.text.pdf.BaseFont.CP1252, iTextSharp.text.pdf.BaseFont.NOT_EMBEDDED)
                        pdfContentByte.SetColorFill(iTextSharp.text.BaseColor.DARK_GRAY)
                        pdfContentByte.SetFontAndSize(bf, 8)
                        pdfContentByte.BeginText()
                        Dim strX As String = "Here"
                        pdfContentByte.ShowTextAligned(1, strX, 500, 500, 0)
                        pdfContentByte.EndText()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38934602

复制
相关文章
如何在Linux中创建文件?多个文件创建操作命令。
如果文件file1.txt不存在,则上面的命令将创建该文件,否则,它将更改其时间戳。
用户5005176
2021/08/10
39.4K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
29.2K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
VMware 多个产品中爆出严重漏洞
Bleeping Computer 网站消息,VMware 发布警告,称其多个产品中存在关键漏洞,攻击者能够利用这些漏洞发起远程代码执行攻击,用户应该立即修补,以防止遭受网络攻击。
FB客服
2022/04/12
7550
VMware 多个产品中爆出严重漏洞
如何在 iOS 的源码中包含图片?
通过添加这个开源库,笔者 80% 的调试工作都可以用这个库完成,而无需 Xcode 工具。
酷酷的哀殿
2020/10/26
1.5K0
如何在 iOS 的源码中包含图片?
如何在Linux中更改用户ID?
在Linux系统中,每个用户都有一个唯一的用户ID(User ID),用于标识和管理用户的权限和资源访问。有时候,我们需要更改用户ID,可能是为了解决冲突、重组用户组或其他管理需求。本文将详细介绍如何在Linux中更改用户ID的几种方法。
网络技术联盟站
2023/06/08
8.5K0
如何在Linux中更改用户ID?
包含多个矩形的Pblock
Pblock是可以嵌套的,尽管这种应用方式并不常见。嵌套Pblock是为了更细粒度的对相关逻辑进行布局约束。从设计层次角度讲,嵌套的Pblock对应的逻辑单元是父层与子层的关系。
Lauren的FPGA
2019/10/30
1.4K0
如何在 React 中获取点击元素的 ID?
在 React 应用中,我们经常需要根据用户的点击事件来执行相应的操作。在某些情况下,我们需要获取用户点击元素的唯一标识符(ID),以便进行进一步的处理。本文将详细介绍如何在 React 中获取点击元素的 ID,并提供示例代码帮助你理解和应用这个功能。
网络技术联盟站
2023/06/07
3.6K0
如何在PHP中解析XML
XML解析器是一个程序,它可以将XML文档或代码转换为XML文档对象模型(DOM)对象。
Lemon黄
2020/07/07
3.6K0
PHP中DOM操作
//创建一个tag名为people的Element,并添加到DOMDocument中
用户7886150
2021/02/26
8080
USB:根据制造商id及产品id获取产品名
相信很多人都有一个疑问,就是:电脑是怎么知道插入电脑的usb设备的产品名的? 其中一种方法就是,根据usb设备的vendor_id和product_id,然后从数据库中查找产品名称。这种方法可行的原因是,usb设备的制造商id和产品id是由usb组织分配的,因此可以通过这两个id来查数据库,从而获取设备名称。 比如,在DragonOS中,一个USB3设备的设备描述符如下:
灯珑LoGin
2022/10/31
1.3K0
PHP-包含文件
5、包含文件相当于把包含文件中的代码拷贝到主文件中执行,魔术常量除外,魔术常量获取的是所在文件的信息。
cwl_java
2020/03/26
1.3K0
uni-id入门(六)---基础操作(中)
传参为用户名密码 登录成功将token保存为uni_id_token 则请求时会默认携带
代码哈士奇
2021/10/25
8000
uni-id入门(六)---基础操作(中)
如何在 wxPython 中创建多个工具栏
作为C++库wxWidgets的包装器,wxPython允许Python开发人员利用这个成熟且经过实战测试的框架的强大功能。它具有各种平台的本机外观和感觉,包括Windows,macOS和Linux。使用 wxPython,您可以使用各种小部件(例如按钮、文本控件,当然还有工具栏)设计具有视觉吸引力且响应迅速的桌面应用程序。
很酷的站长
2023/08/11
3240
如何在 wxPython 中创建多个工具栏
如何在MySQL现有表中添加自增ID?
当在MySQL数据库中,自增ID是一种常见的主键类型,它为表中的每一行分配唯一的标识符。在某些情况下,我们可能需要在现有的MySQL表中添加自增ID,以便更好地管理和索引数据。在本文中,我们将讨论如何在MySQL现有表中添加自增ID,并介绍相关的步骤和案例。
网络技术联盟站
2023/08/03
2.2K0
如何在MySQL现有表中添加自增ID?
如何在Ansible中复制多个文件和目录
Ansible 通过 copy 和 fetch 模块提供了基本的复制文件和目录的功能.
东风微鸣
2022/04/21
17.4K2
如何在Ansible中复制多个文件和目录
git 将多个commit id 打包成一个或者是多个commit id
我们有时候会出现频繁提交代码的问题,可能多个commit id 实际上一个作用,为了让git log看起来更清晰,我们会将多个commit id 合并成若干个commit id. 这就涉及到git rebase -i. 通过这条命令,我们可以修改git 提交的顺序, 或者是删除某个commit , 修改某个commit 信息, 下面就详细介绍git rebase -i。
张凝可
2019/08/22
1.6K0
点击加载更多

相似问题

Prisma嵌套递归关系深度

16

使用Prisma + MongoDB + GraphQL返回null的嵌套关系

11

具有深嵌套关系的PRISMA - 'where‘

115

如何在prisma查询中创建嵌套连接?

10

如何解决prisma (嵌套列表)中的子选择/关系

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文