社区
C#
帖子详情
如何从数据库读到的字段,生成一个pdf文档
Insmnia
2009-03-13 10:24:34
现在有个合同,合同内容保存在数据库里,有300多个字段的内容,
我现在要把这份合同生成PDF,具体是怎么做的,请说一下详细流程。
直接转PDF是不是不容易,那么先生成WORD文档,再转成PDF格式?
主要问题是,300多个字段怎么排版,在WORD,在PDF,不知道该怎么做,合同里面有表格什么的,不知道怎么画。
我现在已经取出这300个字段了,接下去不知道该怎么做。
...全文
272
11
打赏
收藏
如何从数据库读到的字段,生成一个pdf文档
现在有个合同,合同内容保存在数据库里,有300多个字段的内容, 我现在要把这份合同生成PDF,具体是怎么做的,请说一下详细流程。 直接转PDF是不是不容易,那么先生成WORD文档,再转成PDF格式? 主要问题是,300多个字段怎么排版,在WORD,在PDF,不知道该怎么做,合同里面有表格什么的,不知道怎么画。 我现在已经取出这300个字段了,接下去不知道该怎么做。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
880820
2011-04-26
打赏
举报
回复
如何把数据库中二进制流(由程序如写入的word文件)生成pdf文件???
hanjoe109
2009-03-25
打赏
举报
回复
學習,一定得留名!
Insmnia
2009-03-13
打赏
举报
回复
6L的回答我很满意
Insmnia
2009-03-13
打赏
举报
回复
英文的。。。
vfan2010
2009-03-13
打赏
举报
回复
http://itextsharp.sourceforge.net/tutorial/index.html
看一下这个就知道了。
vfan2010
2009-03-13
打赏
举报
回复
http://itextsharp.sourceforge.net/
Insmnia
2009-03-13
打赏
举报
回复
能不能说一下过程,代码贴了一大段的。baidu都有
Soloboy1020
2009-03-13
打赏
举报
回复
简单点就用水晶报表吧 里面有 导出PDF 功能
hongqi162
2009-03-13
打赏
举报
回复
//write by wenhui.org
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); 中国网管联盟www、bitsCN、com
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);
中国网管联盟www_bitscn_com
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" ;
54com.cn
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";
54com.cn
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++)
中国网管联盟www、bitsCN、com
{
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();
}
}
}
hongqi162
2009-03-13
打赏
举报
回复
http://www.bitscn.com/dotnet/c/200605/24661.html
lucene3.5全文检索案例lucene+demo
lucene3.5全文检索案例lucene+demo
数据库
文档
生成
,
生成
所有表
文档
,表各种属性,
字段
属性都包含,支持mysql,oracle
文档
生成
,支持word,
pdf
格式文件。
数据库
文档
生成
支持mysql,oracle,word,
pdf
。
最好用的
数据库
代码自动
生成
工具DataDoc,免费开源可
生成
数据库
设计报告
PDF
/HTML
DataDoc自动
生成
数据库
文档
的工具,可通过
数据库
自动
生成
报告,最好用的
数据库
代码自动
生成
工具。通过设置
数据库
连接信息,即可
生成
该
数据库
的
文档
。
生成
的
文档
包含
数据库
所有表以及表中
字段
、类型、长度、允许空值、主键、默认值、说明等,目前支持的
数据库
包含MySQL,MariaDB。由于本人每年经手的项目达几十个,在项目交付时要提供该项目的
数据库
设计
文档
,通过该工具可以快速
生成
,节省大量时间。在Windows电脑中运行,如果你的电脑没有安装环境,需要安装一下。提供先进的推理,复杂的指令,更多的创造力。
mysql
文档
生成
器_最好用的
数据库
文档
生成
工具
一 前言本文介绍一些比较流行的
数据库
文档
生成
工具,什么是
数据库
文档
? 其实在工作中进行项目交付的时候经常用到;简单来说
数据库
文档
就是对整个
数据库
设计说明的
文档
,比如使用了哪个
数据库
,每张表的
字段
,类型说明等,然后整理成
一个
设计
文档
,这个
文档
多种多样,最常见的就是word,有了
数据库
文档
对以后的
数据库
维护,或者进行二次开发都很方便;二 流行的
数据库
文档
生成
工具2.1 screw最近比较火的一款
数据库
...
mysql
数据库
文档
生成
_最好用的
数据库
文档
生成
工具
一 前言本文介绍一些比较流行的
数据库
文档
生成
工具,什么是
数据库
文档
? 其实在工作中进行项目交付的时候经常用到;简单来说
数据库
文档
就是对整个
数据库
设计说明的
文档
,比如使用了哪个
数据库
,每张表的
字段
,类型说明等,然后整理成
一个
设计
文档
,这个
文档
多种多样,最常见的就是word,有了
数据库
文档
对以后的
数据库
维护,或者进行二次开发都很方便;二 流行的
数据库
文档
生成
工具2.1 screw最近比较火的一款
数据库
...
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章