一个具有强大PDF处理能力的.Net开源项目

PDF具有跨平台、可读性强、不可修改性、无需特定阅读软件、内容安全等好处,在工作中经常都会用到。

所以,我们在项目开发中,经常需要生成PDF的文件,或者把Html、Xml等文件转化为PDF格式。

今天给大家推荐一个具有PDF处理能力的.Net开源项目:itext7-dotnet,就可以满足我们开发需求。

01 项目简介

itext7-dotnet是一个功能强大的库,专门为.Net设计,用于创建、编辑和操作PDF文件,可以帮我们快速、高效得处理PDF文件。

该项目支持创建各种类型的PDF文件,包含基本文本文档、表格、图像、连接等。还具有强大的编辑功能,比如调整页面布局、添加水印等。

此外还支持加密功能、国际化等特性、支持PDF/A、PDF/UA等。

02 项目功能

**1、核心功能:**布局引擎、合并PDF、数字签名、表单创建与操作、PDF/A、PDF/UA、FIPS加密、条形码生成、支持SVG;

**2、其他插件功能:**支持XML/Html转为PDF、隐藏PDF敏感信息、支持国际化、可压缩PDF大小提高性能、XFA表单转为PDF、PDF诊断;

**3、文档:**针对以上功能,该项目都有详细的代码示例。

图片

03 使用示例

1、安装依赖库

图片

2、示例代码

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;// 创建一个新的PDF文档  
PdfDocument pdf = new PdfDocument(new PdfWriter("output.pdf"));
Document document = new Document(pdf);// 添加一个表格到PDF中  
Table table = new Table(3); // 3列的表格  
table.SetWidth(100); // 设置表格宽度为100%  
table.SetHorizontalAlignment(HorizontalAlignment.CENTER); // 居中对齐  
table.AddCell("Name"); // 添加表头  
table.AddCell("Age");
table.AddCell("Country");
table.AddCell("John Doe"); // 添加行数据  
table.AddCell("30");
table.AddCell("USA");
table.AddCell("Jane Smith");
table.AddCell("25");
table.AddCell("UK");
table.AddCell("Bob Johnson");
table.AddCell("40");
table.AddCell("Canada");
document.Add(table);// 关闭文档  
document.Close();

3、生成效果

图片

04

项目地址

https://github.com/itext/itext7-dotnet

更多开源项目: https://github.com/bianchenglequ/NetCodeTop

我是编程乐趣,一个.Net开发经验老程序员,欢迎“关注”我,每天为你分享开源项目和编程知识。
也欢迎加入【.Net技术编程交流社区】,和大家共同学习交流!,点击加入:https://bbs.csdn.net/topics/613465368

- End -

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优思学院|质量工程师需要学习什么软件?

初入职质量工程师的朋友常常会问:质量工程师需要学习什么软件?在质量控制和管理的世界里,拥有强大的数据分析工具是走向成功的关键,因此,对于质量工程师来说,掌握正确的软件不仅能提升工作效率,…

lv20 QT对话框3

1 内置对话框 标准对话框样式 内置对话框基类 QColorDialog, QErrorMessage QFileDialog QFontDialog QInputDialog QMessageBox QProgressDialogQDialog Class帮助文档 示例:各按钮激发对话框实现基类提供的各效果 第一步:实现组件布局&…

Go 如何控制并发的goroutine数量?

为什么要控制goroutine并发的数量? 在开发过程中,如果不对goroutine加以控制而进行滥用的话,可能会导致服务整体崩溃。比如耗尽系统资源导致程序崩溃,或者CPU使用率过高导致系统忙不过来。 用什么方法控制goroutine并发的数量&a…

Pyhton的组合数据类型

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 生命对某些人来说是美丽的&#xff0c…

尝鲜18倍速大模型Groq和世界第二AI Mistral(Le Chat)

01 尝鲜 中午,一边吃饭,一边尝试一下最新的AI:Groq,它使用了重新设计的LPU,据说比英伟达的GPU快了18倍。 运行了开源的Mixtral-8x7b模型,屏幕上的文字回复几乎是瞬间的,那种速度感,让人心跳加速。 接着,我尝试了来自欧洲的新贵——Mistral AI的Le Chat。 这个三天前…

python学习笔记-内置异常

概述 Python 中的异常(Exception)是指在程序执行过程中遇到的错误或异常情况。当程序出现异常时,解释器会停止当前代码的执行,并试图找到匹配的异常处理器来处理异常。如果没有找到合适的异常处理器,程序就会终止并打…

go并发模式之----阻塞/屏障模式

常见模式之一:阻塞/屏障模式 定义 顾名思义,就是阻塞等待所有goroutine,直到所有goroutine完成,聚合所有结果 使用场景 多个网络请求,聚合结果 大任务拆分成多个子任务,聚合结果 示例 package main ​…

go语言基础 -- 二维数组

二维数组 定义 先声明/定义,再赋值 var d2arr [4][6] int 以上二维数组有4个指针分别指向自己的地址空间,各个指针指向的地址空间也是连续的 也可以直接在声明的时候初始化,格式如下: var arr [2][2] int [2][2]{{0, 1}, {2, …

279.【华为OD机试真题】运输时间(贪心算法—JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-运输时间二.解题思路三.题解代码Python题解代码…

试题 算法训练 车的放置

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两个车都不能相互攻击,有多少中…

配电房轨道式巡检机器人方案

一、应用背景 在变电站、配电房、开关站等各种室内变配电场所内,由于变配电设备的数量众多、可能存在各类安全隐患,为了保证用电的安全可靠,都要进行日常巡检。 但目前配电房人工巡检方式有以下主要问题: 巡检工作量大、成本高 …

linux ecs 挂载分区

# 展示盘 lsblk # nvme0n1 259:3 0 1.8T 0 disk # nvme1n1 259:0 0 1.8T 0 disk # nvme2n1 259:2 0 1.8T 0 disk # nvme3n1 259:1 0 1.8T 0 disk # 为nvme1n1创建一个新的分区 sudo fdisk /dev/nvme1n1 # 使用fdisk的命令序列&…

机器学习-1

文章目录 前言机器学习基本定义 练习题 前言 在本片开始将为大家介绍机器学习相关的知识点。 机器学习基本定义 夏天,我们通常会去水果店里买西瓜,我们看到一个根蒂蜷缩、敲起来声音浑浊的青绿色的西瓜,我们提着西瓜就去结账了,…

关于StartAI本地部署相关问题解答

很多小伙伴们都有接入自己本地SD的需求,对此小编整理了一些相关问题~ 一、本地部署相关条件 对于想要本地部署的小伙伴要了解,相对于使用StartAI试用引擎本地部署更加考验电脑硬件配置备噢~ 流畅使用要nvidia显卡,6g以上显存(最…

Linux按键输入实验-测试新的设备树文件

一. 简介 前面一篇文章学习在设备树文件中创建按键的设备节点信息。文章地址如下: Linux键盘输入实验-创建按键的设备节点-CSDN博客 本文对创建了按键设备节点的设备树文件进行测试,确认按键的设备节点信息是否已创建好。 二. 测试创建的按键设备节点是否存在 1. 拷贝…

图解知识蒸馏

soft labels与soft predictions越接近越好,通过Loss Fn来实现,产生的数值叫做distillation loss,也叫soft loss。 hard label y与hard prediction越接近越好,通过Loss Fn来实现,产生的数值叫做student loss&#xff0c…

什么是VR虚拟现实元宇宙|VR设备购买|VR设备零售店

VR(Virtual Reality,虚拟现实)元宇宙是指基于虚拟现实技术构建的一个虚拟世界,这个世界可以模拟现实世界或者超出现实世界的一切事物和活动。在这个虚拟世界里,用户可以通过虚拟现实设备(如头戴式显示器、手…

本地搭建xss平台并获取cookie演练

前言 一般而言,搭建xss平台是不被允许的,但是由于教育的目的,搭建xss平台更能让学习者更加直观感受xss漏洞对我们的危害和它的重要性。 搭建xss平台 1.搭建xss平台的基础是在phpstudy一个集成环境上的,所有第一步要安装phpstudy&a…

vue3相关

vue3官方文档:Vue3 vue3创建应用实例 creatApp(根组件) vue3挂载全局组件、router、store use() 简介OptionsAPI与CompositionAPI的区别 1、OptionsAPI数据、方法、计算属性等,是分散在data、methods、computed中的,若想新增或者修改一…

XSS中级漏洞(靶场)

目录 一、环境 二、正式开始闯关 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0D 0x0E ​ 0x0F 0x10 0x11 0x12 一、环境 在线环境(gethub上面的) alert(1) 二、正式开始闯关 0x01 源码: 思路:闭…