继续引用spire的dll。

1.代码如下:

PdfDocument doc = new PdfDocument();
doc.LoadFromFile("wen.pdf");
PdfPageBase page = doc.Pages[doc.Pages.Count-1];
System.Drawing.Font font = new System.Drawing.Font("微软雅黑", 9, FontStyle.Regular);
PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font, true);
page.Canvas.DrawString("请在此输入建议:", trueTypeFont, new PdfSolidBrush(Color.Black), 80, 180);
doc.SaveToFile("MyFirstPDF.pdf");
//page.Canvas.DrawString("请在此输入建议:",
//new PdfFont(PdfFontFamily.Helvetica, 9f),
//new PdfSolidBrush(Color.Black), 80, 180);
//doc.SaveToFile("MyFirstPDF.pdf");//如果用此中文乱码
doc.Close();

2.进阶:

  问题情境:要修改的地方原先就有东西,需要删除再覆盖:

  解决办法:先添加白色brush矩形覆盖,再进行添加内容

PdfDocument doc = new PdfDocument();
doc.LoadFromFile("orignal.pdf");
PdfPageBase page = doc.Pages[doc.Pages.Count - 1];
RectangleF rectangle = new RectangleF(80,180,500,500);
PdfBrush brush = PdfBrushes.White;
page.Canvas.DrawRectangle(brush, rectangle); System.Drawing.Font font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular, GraphicsUnit.World);
PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font, true);
page.Canvas.DrawString(editStr, trueTypeFont, new PdfSolidBrush(Color.Black), 80, 180);
doc.SaveToFile("now.pdf");
doc.Close();

3.后加textBox获取换行符

private string getEditString(string strOrig)
{
int numL = 40;
string editStr = strOrig;
string[] strs = editStr.Split(new string[1] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
editStr = ""; for (int i = 0; i < strs.Length; i++)
{
float numC = 0F; int addT = 0;
for (int k = 0; k < strs[i].Length; k++)
{
try
{
if (!Regex.IsMatch(strs[i].Substring(k, 1), @"[a-zA-Z0-9]"))
{
numC += 1;
}
else
{
numC += 0.5f;
addT++;
}
if (numC > numL)
{
break;
}
}
catch(Exception eeee)
{
throw eeee;
}
}
if (numC > numL)
{
string str = strs[i].Insert(numL - 1 + addT / 2, "\r\n");
editStr += getEditString(str);
continue;
}
else
{
editStr += strs[i] + "\r\n";
}
}
return editStr;
}

附加:

  1.行间距设置:PdfStringFormat stringFormat = new PdfStringFormat();
            stringFormat.LineSpacing = 16f;

    

c# 修改pdf的更多相关文章

  1. 怎么修改PDF文档图片内容

    我们想要修改PDF文件的时候应该怎么做呢,PDF文件不同于其他的文件,PDF文件的编辑需要借助PDF编辑器才能够对文件进行编辑修改,那么要怎么修改PDF文档图片内容呢,有许多的小伙伴都想知道该怎么做, ...

  2. 如何修改PDF文件内容,PDF怎么添加背景

    很多的情况下,大家都会遇到PDF文件,不管是在学习中还是在工作中,对于PDF文件,文件的修改编辑是需要用到PDF编辑软件的,在编辑文件的时候,发现文件的页面是有背景颜色的,又该如何修改背景颜色呢,不会 ...

  3. 使用iTextSharp修改PDF文件(一)

    这个iTextSharp确实是个好东西,可以创建.读取PDF格式的文档,虽然我的需求比较简单,但我首先还是基本上.完整地看完了它的相关文档,不喜欢英文的同志,可以搜索一篇<用C#制作PDF文件全 ...

  4. photoshop 修改pdf文件并保存为pdf

    1.CTRL + O   打开要编辑的pdf文件 按住shift 选中每一页,点击确定. pdf文档每一页以一个psd文件显示在工作区, 分别进行修改, 2.批量修改同一个元素(比如加个图标) 在一页 ...

  5. 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

    iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  6. linux下轻松修改pdf文件

    前几天使用firefox打印了一个网页,后来查看有很多页面都是评论,对我来说,实在没有什么用处,就想把多余的内容给删除了,后来,终于找到了一个工具:pdf mod非常不错的工具,直接打开文件,选择要删 ...

  7. 【转】adobe acrobat pro修改pdf文字

    原文网址:http://zhidao.baidu.com/link?url=7MTeEu5IM49lNIISNQMcZLyLAwMPsRQWF5WAwQPfvkPsbbZLHSQE43MWaIxxVm ...

  8. pymupdf 修改pdf文件

    安装: sudo pip install pymupdf==1.16.0 引入使用: import  fitz 可以插入文字.图片.... 帮助文档: PyMuPDF documentation ht ...

  9. 怎么在PDF上进行文字修改

    文件相信大家不论是工作中还是在学习生活中都会有遇到,有时候我们会遇到PDF文件中的文字有时候会有错误的时候,这个时候就需要对修改PDF文件上的文字,那么具体要怎么做呢,PDF文件需要借助软件才可以编辑 ...

随机推荐

  1. 完全卸载MySQL数据库,实现重装

    一.在控制面板,卸载MySQL的所有组件 控制面板——>所有控制面板项——>程序和功能,卸载所有和MySQL有关的程序 二.找到你的MysQL安装路径,看还有没有和MySQL有关的文件夹, ...

  2. Node调试

    之前调试node代码简单粗暴,直接在代码打印日志,控制台观察日志,效率低下~ 原来后端node代码也可以通过Chrome断点调试,以下是调试方法. (1)找到node启动的进程 ps aux|grep ...

  3. 写 5 个你知道的 HTML5 标签,说明他们的意义

    1:<canvas>标签   定义图形.图像,是基于javascript的绘图API 2:<video>标签   定义视频 3:<audio>标签  定义音频内容 ...

  4. daterangepicker的个性化使用技巧

    由于该模板不自动将时间戳添加到input中去,始终为NaN,所以,自己选取起始时间与截止时间 var startTime =new Date(new Date().toLocaleDateString ...

  5. 百度地图热力图--批量地址转换应用(基于百度api)

    需求:把外卖订餐地址做个用户分布热力图 思路分析:第一步去百度地图api开放平台找例子 http://lbsyun.baidu.com/jsdemo.htm#c1_15 首先从百度API的demo例子 ...

  6. web安全入门笔记

    0x01 前言 这正邪两字,原本难分. 正派弟子若是心术不正,便是邪徒. 邪派中人只要一心向善,便是正人君子. 0x01 信息安全的定义 信息安全,意为保护信息及信息系统免受未经授权的进入.使用.披露 ...

  7. C语言下的错误处理问题

    今天来分享我认为比较好的几种在C语言下的错误处理方式 方式一: int example(int num) { ) { ; } ; } 在不符合条件的情况下使用return终止程序 方式二: void ...

  8. 【非原创】ISBN码

    #include<stdio.h>int main(void){ char a[14],mod[12]="0123456789X"; #include <stdi ...

  9. 解决 vboxdrv.sh: failed: Cannot change group vboxusers for device /dev/vboxdrv.

    来自:https://blog.csdn.net/su_cicada/article/details/86773043 virtualbox 报错 ,看提示让执行以下 sudo /sbin/vboxc ...

  10. 执行Go程序的三种方式及Go语言关键字

    执行 Go 程序的三种方式及 Go 语言关键字 执行 Go 程序的三种方式 一.使用 go run 命令 二.使用 go build 命令 Step1. 对 go 源码源文件执行 go build 命 ...