引入Nuget包

using iTextSharp.text;
using iTextSharp.text.pdf;
using System; using System.IO; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{ //生成pdf
Document document = new Document(); var fileStream = File.Create("aa.pdf");
PdfWriter pw = PdfWriter.GetInstance(document, fileStream); document.Open();
//写入数据
//注册字体
string fontpath = "a.ttf";
BaseFont customfont = BaseFont.CreateFont(fontpath, BaseFont.CP1252, BaseFont.EMBEDDED); var baseFont = new Font(customfont);
baseFont.Color = new BaseColor(System.Drawing.Color.Red);
baseFont.Size = 30; #region 头部
PdfPTable tableLogo = new PdfPTable(3);
tableLogo.DefaultCell.Border = Rectangle.NO_BORDER;
tableLogo.DefaultCell.MinimumHeight = 40f;
float[] headWidths = new float[] { 60f, 60f, 150f };
tableLogo.SetWidths(headWidths);
//logo
var logo = iTextSharp.text.Image.GetInstance(File.ReadAllBytes("aa.png"));
// logo.ScaleToFit(130 * 0.667f, 43 * 0.667f);
var logoCell = new PdfPCell();
logoCell.PaddingLeft = -1f;
logoCell.MinimumHeight = 45f;
logoCell.HorizontalAlignment = Element.ALIGN_LEFT;
logoCell.Border = 0;
logoCell.AddElement(logo);
tableLogo.AddCell(logoCell); var sCell = new PdfPCell(new Paragraph("SmartFind", baseFont));
sCell.Border = 0;
sCell.PaddingLeft = 3f;
sCell.PaddingBottom = 17f;
sCell.MinimumHeight = 45f;
sCell.HorizontalAlignment = Element.ALIGN_LEFT;
sCell.VerticalAlignment = Element.ALIGN_BOTTOM;
tableLogo.AddCell(sCell); var aCell = new PdfPCell();
aCell.Border = 0;
aCell.MinimumHeight = 45f;
aCell.PaddingBottom = 17f;
aCell.HorizontalAlignment = Element.ALIGN_LEFT;
aCell.VerticalAlignment = Element.ALIGN_BOTTOM; var acc = new Paragraph("| Accessories", baseFont);
aCell.AddElement(acc);
tableLogo.AddCell(aCell); document.Add(tableLogo);
#endregion document.Add(new Paragraph("")); //页脚
PDFFooter footer = new PDFFooter();
footer.OnEndPage(pw, document);
document.Close();
fileStream.Dispose();
}
//This implementation is obviously not very good --> Though it should be enough for everyone to implement their own. } public class PDFFooter : PdfPageEventHelper
{
// write on top of document
public override void OnOpenDocument(PdfWriter writer, Document document)
{
base.OnOpenDocument(writer, document);
PdfPTable tabFot = new PdfPTable(new float[] { 1F });
tabFot.SpacingAfter = 10F;
PdfPCell cell;
tabFot.TotalWidth = 300F;
cell = new PdfPCell(new Phrase("Header"));
tabFot.AddCell(cell);
tabFot.WriteSelectedRows(0, -1, 150, document.Top, writer.DirectContent);
} // write on start of each page
public override void OnStartPage(PdfWriter writer, Document document)
{
base.OnStartPage(writer, document);
} // write on end of each page
public override void OnEndPage(PdfWriter writer, Document document)
{
base.OnEndPage(writer, document);
//PdfPTable tabFot = new PdfPTable(new float[] { 1F });
//tabFot.TotalWidth = 700f;
//tabFot.DefaultCell.Border = 0;
//// var footFont = FontFactory.GetFont("Lato", 12 * 0.667f, new Color(60, 60, 60));
//string fontpath = HttpContext.Current.Server.MapPath("~/App_Data");
//BaseFont customfont = BaseFont.CreateFont(fontpath + "\\Lato-Regular.ttf", BaseFont.CP1252, BaseFont.EMBEDDED);
//var footFont = new Font(customfont, 12 * 0.667f, Font.NORMAL, new Color(170, 170, 170)); //PdfPCell cell;
//cell = new PdfPCell(new Phrase("@ 2016 . All Rights Reserved", footFont));
//cell.VerticalAlignment = Element.ALIGN_CENTER;
//cell.Border = 0;
//cell.PaddingLeft = 100f;
//tabFot.AddCell(cell);
//tabFot.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
} //write on close of document
public override void OnCloseDocument(PdfWriter writer, Document document)
{
base.OnCloseDocument(writer, document);
}
}
}

  

  

.net core 使用 textSharp生成pdf的更多相关文章

  1. .net Core 使用 iTextSharp 生成PDF 简单示例

    在 Nuget 中导入需要的插件: 实现的代码: 1 [HttpGet, Route("CreatePdf")] 2 public Response CreatePdf() 3 { ...

  2. 使用Rotativa在ASP.NET Core MVC中创建PDF

    在本文中,我们将学习如何使用Rotativa.AspNetCore工具从ASP.NET Core中的视图创建PDF.如果您使用ASP.NET MVC,那么Rot​​ativa工具已经可用,我们可以使用 ...

  3. NET Core MVC中创建PDF

    使用Rotativa在ASP.NET Core MVC中创建PDF 在本文中,我们将学习如何使用Rotativa.AspNetCore工具从ASP.NET Core中的视图创建PDF.如果您使用ASP ...

  4. asp.net生成PDF文件参考 .

    TextSharp 是用来生成  PDF 的一个组件,在 1998 年夏天的时候,Bruno Lowagie ,iText 的创作者,参与了学校的一个项目,当时使用 HTML 来生成报告,但是,使用 ...

  5. java生成pdf

    介绍 本篇博客主要是为了介绍如何使用:flying-saucer+itext+freemark实现导出复杂点的pdf文件. 思路 先把pdf的内容以html形式准备好 使用freemarker将htm ...

  6. 如何在ASP.NET Core 中快速构建PDF文档

    比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间. 在本 ...

  7. C# Net Core 使用 itextsharp.lgplv2.core 把Html转PDF

    C# Net Core 使用 itextsharp.lgplv2.core 把Html转PDF 只支持英文(中文我不知道怎么弄,懂的朋友帮我看一下)!!!!![补充:评论区的小伙伴已解决] 引入包it ...

  8. 前端生成PDF,让后端刮目相看

    PDF 简介 PDF 全称Portable Document Format (PDF)(便携文档格式),该格式的显示与操作系统.分辨率.设备等因素没有关系,不论是在Windows,Unix还是在苹果公 ...

  9. 利用Java动态生成 PDF 文档

    利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...

随机推荐

  1. 《Sams Teach Yourself Windows® Workflow Foundation in 24 Hours》读书笔记目录

    目录 1 Part I - The Basics 1.1 Hour 1 - Understanding Windows Workflow Foundation 1.2 Hour 2 - A Spin ...

  2. SIGSEGV 和 SIGBUS & gdb看汇编

    参考这篇文章: http://blog.chinaunix.net/uid-24599332-id-2122898.html SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信 ...

  3. keil编译后生成的M51文件解析

    通过*.m51文件我们能够清楚的看到单片机存储器的使用情况,以及能够看到每一个变量包含局部变量的位置. 之前碰到一个问题,相同的程序,在small模式下编译后执行没问题,但在large模式下能够编译. ...

  4. 走进windows编程的世界-----画图相关

    Windows画图 1 图形绘制      1.1 图形绘制的方式      获取到画图句柄-设备描写叙述表(DC),使用对应的画图的API,在设备上绘制图形.          1.2 颜色     ...

  5. GCC编译uboot出现(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'错误的解决的方法

    /opt/arm-2010.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/armv4t/libgcc.a(_bswapsi2.o):(.ARM.exid ...

  6. Java推断和检查网络

    在实践项目中.常常要处理网络异常等问题.为此,专门设计一个类,随时能够使用. import java.io.IOException; import java.net.InetAddress; impo ...

  7. Codeforces Round #316 (Div. 2) C. Replacement(线段树)

    C. Replacement time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  8. LeetCode 953. Verifying an Alien Dictionary (验证外星语词典)

    题目标签:HashMap 题目给了我们一个 order 和 words array,让我们依照order 来判断 words array 是否排序. 利用hashmap 把order 存入 map, ...

  9. 递归,迭代,堆栈三种方式实现单链表反转(C++)

    #author by changingivan# 2016.04.12#include <iostream> #include <stack> using namespace ...

  10. 5313 [JL]判断邮箱地址 升级版

    5313 [JL]判断邮箱地址 升级版  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 正确的邮箱地 ...