iTextSharp 绘制pdf

2024-06-23 17:28
文章标签 pdf 绘制 itextsharp

本文主要是介绍iTextSharp 绘制pdf,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、新建项目:pdfdemo

<ItemGroup><PackageReference Include="iTextSharp.LGPLv2.Core" Version="3.4.20" />
</ItemGroup>

二、HomeController.cs

using iTextSharp.text;
using iTextSharp.text.pdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using pdfdemo.Models;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;namespace pdfdemo.Controllers
{public class HomeController : Controller{private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;}public IActionResult Index(){var path = $"{AppDomain.CurrentDomain.BaseDirectory}/{DateTime.Now.ToFileTime()}.pdf";var document = new Document(PageSize.A4.Rotate());document.SetMargins(10, 10, 50, 10);using (var fileStream = new FileStream(path, FileMode.Create)){var writer = PdfWriter.GetInstance(document, fileStream);document.Open();var rowHeight = 25;var table = new PdfPTable(6);table.WidthPercentage = 100;var cellTdDes = new PdfPCell(new Phrase("A"));cellTdDes.Colspan = 3;cellTdDes.HorizontalAlignment = Element.ALIGN_LEFT;cellTdDes.VerticalAlignment = Element.ALIGN_MIDDLE;cellTdDes.FixedHeight = rowHeight;table.AddCell(cellTdDes);var cellQuantityHeader = new PdfPCell(new Phrase("B"));WrapCell(rowHeight, cellQuantityHeader);var cellPriceHeader = new PdfPCell(new Phrase("C"));WrapCell(rowHeight, cellPriceHeader);var cellAmountHeader = new PdfPCell(new Phrase("D"));WrapCell(rowHeight, cellAmountHeader);table.AddCell(cellQuantityHeader);table.AddCell(cellPriceHeader);table.AddCell(cellAmountHeader);var baseFont = BaseFont.CreateFont(@"c:/windows/fonts/SIMHEI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);var font = new iTextSharp.text.Font(baseFont, 10, iTextSharp.text.Font.NORMAL);var fixedHeight = 40;for (int i = 0; i < 8; i++){var cellTd = new PdfPCell(new Phrase("你好", font));cellTd.Colspan = 3;cellTd.FixedHeight = fixedHeight;cellTd.VerticalAlignment = Element.ALIGN_MIDDLE;table.AddCell(cellTd);var cellQuantity = new PdfPCell(new Phrase("66"));WrapCell(fixedHeight, cellQuantity);var cellPrice = new PdfPCell(new Phrase("666"));WrapCell(fixedHeight, cellPrice);var cellAmount = new PdfPCell(new Phrase("666"));WrapCell(fixedHeight, cellAmount);table.AddCell(cellQuantity);table.AddCell(cellPrice);table.AddCell(cellAmount);}document.Add(table);writer.Flush();document.Close();document.Dispose();}return View();}private static void WrapCell(int fixedHeight, PdfPCell cell){cell.HorizontalAlignment = Element.ALIGN_RIGHT;cell.VerticalAlignment = Element.ALIGN_MIDDLE;cell.FixedHeight = fixedHeight;}}
}

运行效果:

这篇关于iTextSharp 绘制pdf的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087802

相关文章

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Python实现一键PDF转Word(附完整代码及详细步骤)

《Python实现一键PDF转Word(附完整代码及详细步骤)》pdf2docx是一个基于Python的第三方库,专门用于将PDF文件转换为可编辑的Word文档,下面我们就来看看如何通过pdf2doc... 目录引言:为什么需要PDF转Word一、pdf2docx介绍1. pdf2docx 是什么2. by

Python实现pdf电子发票信息提取到excel表格

《Python实现pdf电子发票信息提取到excel表格》这篇文章主要为大家详细介绍了如何使用Python实现pdf电子发票信息提取并保存到excel表格,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录应用场景详细代码步骤总结优化应用场景电子发票信息提取系统主要应用于以下场景:企业财务部门:需

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮

C#实现查找并删除PDF中的空白页面

《C#实现查找并删除PDF中的空白页面》PDF文件中的空白页并不少见,因为它们有可能是作者有意留下的,也有可能是在处理文档时不小心添加的,下面我们来看看如何使用Spire.PDFfor.NET通过C#... 目录安装 Spire.PDF for .NETC# 查找并删除 PDF 文档中的空白页C# 添加与删

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField