`

C#实现生成PDF文档

    博客分类:
  • C#
阅读更多
using System;
using System.IO;
using System.Text;
using System.Collections;

namespace PDFGenerator
{

public class PDFGenerator
{
static float pageWidth = 594.0f;
static float pageDepth = 828.0f;
static float pageMargin = 30.0f;
static float fontSize = 20.0f;
static float leadSize = 10.0f;


static StreamWriter pPDF=new StreamWriter("E:\\myPDF.pdf");

static MemoryStream mPDF= new MemoryStream();

static void ConvertToByteAndAddtoStream(string strMsg)
{
Byte[] buffer=null;
buffer=ASCIIEncoding.ASCII.GetBytes(strMsg);
mPDF.Write(buffer,0,buffer.Length); 
buffer=null;
}

static string xRefFormatting(long xValue)
{
string strMsg =xValue.ToString();
int iLen=strMsg.Length;
if (iLen<10)
{
StringBuilder s=new StringBuilder();
int i=10-iLen;
s.Append('0',i);
strMsg=s.ToString() + strMsg;
}
return strMsg;
}

static void Main(string[] args)
{
ArrayList xRefs=new ArrayList();
//Byte[] buffer=null;
float yPos =0f;
long streamStart=0;
long streamEnd=0;
long streamLen =0;
string strPDFMessage=null;
//PDF文档头信息
strPDFMessage="%PDF-1.1\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="1 0 obj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="<< /Length 2 0 R >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="stream\n";
ConvertToByteAndAddtoStream(strPDFMessage);
////////PDF文档描述
streamStart=mPDF.Length;
//字体
strPDFMessage="BT\n/F0 " + fontSize +" Tf\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档实体高度
yPos = pageDepth - pageMargin;
strPDFMessage=pageMargin + " " + yPos +" Td\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= leadSize+" TL\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);

//实体内容
strPDFMessage= "(http://www.wenhui.org)Tj\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= "ET\n";
ConvertToByteAndAddtoStream(strPDFMessage);
streamEnd=mPDF.Length;

streamLen=streamEnd-streamStart;
strPDFMessage= "endstream\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档的版本信息
xRefs.Add(mPDF.Length);
strPDFMessage="2 0 obj\n"+ streamLen + "\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="3 0 obj\n<</Type/Page/Parent 4 0 R/Contents 1 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="4 0 obj\n<</Type /Pages /Count 1\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Kids[\n3 0 R\n]\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Resources<</ProcSet[/PDF/Text]/Font<</F0 5 0 R>> >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/MediaBox [ 0 0 "+ pageWidth + " " + pageDepth + " ]\n>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="5 0 obj\n<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="6 0 obj\n<</Type/Catalog/Pages 4 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

streamStart=mPDF.Length;
strPDFMessage="xref\n0 7\n0000000000 65535 f \n";
for(int i=0;i<xRefs.Count;i++)
{
strPDFMessage+=xRefFormatting((long) xRefs[i])+" 00000 n \n";
}
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="trailer\n<<\n/Size "+ (xRefs.Count+1)+"\n/Root 6 0 R\n>>\n";
ConvertToByteAndAddtoStream(strPDFMessage);

strPDFMessage="startxref\n" + streamStart+"\n%%EOF\n";
ConvertToByteAndAddtoStream(strPDFMessage);
mPDF.WriteTo(pPDF.BaseStream);

mPDF.Close();
pPDF.Close();
}
}
} 
分享到:
评论

相关推荐

    用C#实现生成PDF文档(附源码)

    在本文中,我们将深入探讨如何使用C#编程语言来生成PDF文档。提供的代码示例是一个简单的C#程序,它利用文本流(StreamWriter 和 MemoryStream)直接创建一个基本的PDF文件。这个程序展示了PDF文档的基本结构,并...

    用C#实现生成PDF文档(原码)

    "用C#实现生成PDF文档(原码)" 本文主要介绍如何使用C#语言生成PDF文档,并提供了完整的源代码。通过阅读本文,读者可以了解如何使用C#语言来生成PDF文档,并掌握相关的技术和技巧。 首先,本文介绍了C#语言中...

    用C#实现生成PDF文档 源代码

    ### 一、C#生成PDF文档概述 在日常的软件开发工作中,生成PDF文档的需求无处不在,无论是报表生成、发票打印还是合同文档的创建,PDF格式因其跨平台兼容性和格式稳定性而被广泛采用。C#作为一种功能强大的面向对象...

    用C#.NET实现生成PDF文档和将WORD转换为PDF

    本文将详细探讨如何使用C#.NET技术实现生成PDF文档和将WORD文档转换为PDF格式。 首先,我们来了解如何在C#.NET中生成PDF文档。在.NET平台上,有多种库可以用来创建PDF文件,例如iTextSharp、PdfSharp、EPPlus等。...

    用C#实现生成PDF文档

    本篇文章将详细探讨如何用C#来生成PDF文档。 首先,你需要了解的是C#本身并不直接支持PDF的生成,而是依赖于第三方库或者.NET框架中的特定组件。常见的库有iTextSharp、PDFsharp、Syncfusion等,它们提供了API接口...

    C#生成pdf文件

    首先,我们需要了解C#生成PDF的基本原理。这通常涉及到使用第三方库或者.NET框架自带的组件。虽然.NET Framework本身并不直接支持PDF生成,但有许多开源和商业库可供选择,如iTextSharp、PDFsharp、Syncfusion ...

    在c#中生成PDF文件

    在C#中生成PDF文件是一项常见的任务,尤其是在开发企业级应用程序时,可能需要自动生成报告、合同或发票等文档。为了实现这一目标,我们可以利用.NET Framework或者.NET Core提供的库和工具。本文将深入探讨如何在C#...

    用C#实现生成PDF文档TmT

    在C#编程环境中,生成PDF文档是一项常见的任务,特别是在软件开发和报告生成中。本教程将探讨如何使用C#来创建PDF文档,主要基于提供的标题和描述中的信息。我们将不涉及具体的代码实现,而是深入讨论相关技术和库。...

    自动生成PDF文件,C#源码

    总结起来,这个C#项目提供了一个自动创建PDF文件的解决方案,借助iTextSharp库实现了在C#环境中高效、灵活地生成PDF文档。通过深入学习和理解这些源代码,开发者可以定制自己的PDF生成逻辑,满足各种业务场景的需求...

    用C#实现生成PDF文档(原码)

    本文将详细介绍如何使用C#生成PDF文档,并基于提供的代码片段"his.Size = new System.Drawing.Size(300,300);"来讨论相关知识点。 首先,我们需要了解生成PDF的基本流程。通常,我们会选择一个PDF库,如iTextSharp...

    C#实现PDF的自主生成

    Paragraph paragraph = new Paragraph("这是使用C#生成的PDF文档"); document.Add(paragraph); // 关闭文档 document.Close(); ``` 接下来,我们讨论JSON的解析。JSON(JavaScript Object Notation)是一种轻量级...

    C#使用itextsharp生成PDF文件

    C#是一种广泛用于构建Windows应用程序和Web服务的编程语言,而iTextSharp是一个强大的库,允许开发者在C#环境中生成和编辑PDF文件。在这个场景中,我们将深入探讨如何使用iTextSharp在C#中创建PDF。 首先,我们需要...

    用C# Builder实现生成PDF文档

    总之,"用C# Builder实现生成PDF文档"这个项目展示了如何在C#环境中利用特定库和控件来创建PDF文件,这对于开发者来说是一个实用的示例,有助于理解和掌握PDF生成的技术。通过研究提供的源码,我们可以学习到如何在...

    VS2010 C#生成PDF417条码源代码

    在VS2010中使用C#生成PDF417条码,我们可以借助特定的库或API来实现这一功能。 首先,我们需要理解C#编程环境。Visual Studio 2010是微软公司推出的一款强大的开发工具,支持.NET Framework 4.0,为C#程序员提供了...

    c#生成各种PDF文件

    在压缩包中的"Test"文件可能包含了示例代码、测试用例或者已经生成的PDF文件,用于验证和展示C#生成PDF的正确性和效果。通过分析这些文件,开发者可以更好地理解和学习如何利用C#来生成各种PDF文件。 总的来说,C#...

    iTextSharp教程C#生成PDF文件

    这个教程主要聚焦于使用C#编程语言来生成PDF文件,通过iTextSharp库实现各种功能,如添加文本、图像、表格以及复杂的布局。下面将详细介绍如何使用iTextSharp实现这些功能。 1. **创建PDF文档** - 首先,你需要...

    C# 生成pdf文档 <一>

    在本篇内容中,我们将聚焦于如何利用iText库在C#环境中生成PDF文档。iText是一个强大的开源库,专门用于创建和处理PDF文件。 首先,你需要引入iText库到你的C#项目中。这通常通过NuGet包管理器完成,搜索...

    C#网页导出PDF文件

    本话题主要探讨如何利用C#将网页内容导出为PDF文件,这在报告生成、电子文档制作等方面非常实用。这里我们将详细讲解这个过程,以及涉及到的关键技术——wkhtmltopdf。 wkhtmltopdf是一个开源命令行工具,它可以将...

Global site tag (gtag.js) - Google Analytics