using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;using System.Web.UI;
using System.Web.UI.WebControls;
using WebSupergoo.ABCpdf9;using System.Text;
namespace ABCpdfTest{
///
/// 官方网站:http://www.websupergoo.com/
/// demo用的是当前的最新版本ABCpdf .NET 9.1 X64,支持当前windows的主流操作系统,包括最新的win8,IE10(服务器版本)
/// ABCpdf有30天的试用期
/// 引用方式,安装ABCpdf组件,有两个DLL是有用的,需要对ABCpdf.dll添加引用,ABCpdf9-64.dll(引擎组件)放在bin目录下就可以了
/// 它有其他组件比如(iTextSharp)所不具备的功能,如能直接指定一个URL就可以将页面转换为PDF,这也是它的强大之处托福答案 www.jx-jf.com
/// 在选择版本时要注意,区分64位和32位,如果版本放错了,会发生错误,在IIS的部署上一定要注意,这里很可能会出现问题,请参考官方资料
/// 地址:http://www.websupergoo.com/support.htm 常见问题介绍的比较详细
///
public partial class Default : System.Web.UI.Page
{
string url = "http://www.websupergoo.com/support.htm";
private void DownloadPDF(string fileName, byte[] buffer)
{ Response.Buffer = false;
Response.AddHeader("Connection", "Keep-Alive");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", buffer.Length.ToString());
Response.BinaryWrite(buffer);
}
private string GetFileName()
{ return DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".pdf";
}
///
/// 指定URL生成PDF
///
///
///
protected void Button1_Click(object sender, EventArgs e)
{ string fileName = GetFileName();
Doc doc = new Doc();
doc.Page = doc.AddPage();//新建一个页面
doc.Rect.Inset(10, 10);//设置矩形边距 int id = doc.AddImageUrl(url, true, 800, false);//添加一个URL的页面返回一个页面ID
//以下这段代码很重要,关系到分页,如果不写这段代码,就无法分页 while (true)
{ //这个判断应该是判断id是否是页面对象,如果不是,就跳出循环 if (!doc.Chainable(id)) {break; }
doc.Page = doc.AddPage();
id = doc.AddImageToChain(id);//这里是将这个可链接的对象ID添加到页面并返回一个id }
doc.Flatten();//压缩pdf
doc.Save(Server.MapPath(fileName));//这里保存pdf到相对路径 //你也你可以这样做把文件输出 byte[]
buffer = doc.GetData();//得到bytes[] DownloadPDF(fileName, buffer);
} ///
/// 自定义页面
///
///
///
protected void Button2_Click(object sender, EventArgs e)
{ string fileName = GetFileName(); Doc doc = new Doc();
doc.Page = doc.AddPage();//新建一个页面
doc.Rect.Inset(10, 10);//设置矩形边距,这里Rect是一个重要的对象,你也可以doc.Rect.String来设置属性 doc.FontSize = 24; //设置默认字体大小
doc.Color.String = "89,89,254";
int id = doc.AddText("Hello World!!!");//添加文字
doc.FrameRect(); //添加边框操作
doc.Save(Server.MapPath(fileName));
byte[] buffer = doc.GetData();
DownloadPDF(fileName, buffer);
}
///
/// 支持HTML元素
///
///
///
protected void Button3_Click(object sender, EventArgs e)

{ string fileName = GetFileName();
Doc doc = new Doc();
doc.Page = doc.AddPage();
doc.Rect.Inset(10, 10); doc.AddHtml("
How to use the ABCpdf
"); doc.AddHtml("
"); doc.AddHtml(@"
Use ABCpdf to create Adobe PDF documents on the fly. You won't believe how simple - yet how powerful it truly is. Find out more…
If you've been using Version 8 you'll love Version 9. It includes many powerful new features designed to make your life easier. Find out more… or check out our Feature Chart…
ABCpdf .NET is a .NET Native product encapsulated in an easy-to-deploy set of DLLs. It also offers a virtualized COM interface designed for backwards compatibility with ABCpdf ASP and Classic ASP/COM.
ABCpdf is normally priced from $329. However as a special offer we'll give you a free license key - all you have to do is link back to our web site. For full details check out our link guidelines…
"); //这里是不是很神奇,html都支持,很灵活,赞一个 doc.Save(Server.MapPath(fileName)); byte[] buffer = doc.GetData(); DownloadPDF(fileName, buffer);
}
///
/// 自定义页眉页脚
///
///
///
protected void Button4_Click(object sender, EventArgs e)
{ string fileName = GetFileName(); Doc doc = new Doc();
doc.Page = doc.AddPage(); doc.Rect.Inset(20, 40); doc.AddHtml("
How to use the ABCpdf
"); doc.AddHtml("
"); //自定义页眉
doc.Rect.String = "24 750 588 778"; //记得这里要定位哦
doc.HPos = 0; //居中, 0代表居左, 1代表居右
doc.VPos = 0.5; //居中, 0代表靠上, 1代表靠下
doc.Color.String = "blue"; //蓝色 for (int i = 1; i <= doc.PageCount; i++) {
doc.PageNumber = i; doc.AddHtml("" + "Laozhao learn ABCpdf,Save time for" + DateTime.Now.ToString() + "");
doc.AddLine(24, 750, 588, 750); //画一条分隔线 } //页脚
doc.Rect.String = "24 12 588 40";
doc.HPos = 1.0; //Right
doc.VPos = 0.5; //Middle doc.Color.String = "black";
for (int i = 1; i <= doc.PageCount; i++)
{ doc.PageNumber = i;
doc.AddHtml("Page: " + i.ToString() + " / " +
doc.PageCount.ToString());
doc.AddLine(24, 40, 588, 40); }
doc.Save(Server.MapPath(fileName));
byte[] buffer = doc.GetData();
DownloadPDF(fileName, buffer);
}
/*
* Doc还支持AddImageHtml
* 参数说明;
* html 需要添加的html * paged 是否分页,true启用分页 * width 页面的宽度(浏览器解析html时浏览器的宽度) * disableCache 是否忽略缓存,true不启用缓存,false启用缓存
*/
}}

c#中使用ABCpdf处理PDF的更多相关文章

  1. c#中使用ABCpdf处理PDF,so easy

    QQ交流群:276874828  (ABCpdf ) 这几天项目中需要将页面导成PDF,刚开始使用iTextSharp,觉得在分页处理上比较复杂,后来无意中看到了ABCpdf,使用非常简单,并将一些常 ...

  2. 在C#.NET中,如何生成PDF文件?主要有以下几个途径

    1.使用.NET文件流技术:若通过.NET的文件流技术生成PDF文件,必须对PDF文件的语法很清楚,例如BT表示实体内容开始:ET表示实体内容结束:TD表示换行等等.我们可以从Adobe的官方网站上下 ...

  3. 在Java代码中使用iTextPDF生成PDF

    1. 生成PDF 载入字体 static { FontFactory.register("/fonts/msyh.ttf"); FontFactory.register(" ...

  4. MVC中使用RazorPDF创建PDF

    这篇文章主要介绍使用Nuget package中的RazorPDF简单的创建PDF的方法. 关于RazorPDF 这个Nuget Package由Al Nyveldt创建.它内部使用ITextShar ...

  5. c# 中crystal report输出PDF文件

    工程中引入以下crystal report的类库crystaldecisions.crystalreports.enginecrystaldecisions.reportsourcecrystalde ...

  6. iOS 应用中加载文档pdf/word/txt

    一.加载PDF文档:应用内打开文档.手机中其他应用打开文档 Demo 首先拖入一个文档pdf.word.txt,打开不同的文档知识 文件名字.类型修改即可 #import "ReadView ...

  7. 网页中自适应的显示PDF

    PDF格式呢,是一个高大的新式,如何在不同的浏览器中自适应显示,是一个值得研究的问题. 这里说明重点部分:获取浏览器宽高. IE中: document.body.clientWidth ==> ...

  8. Docker中部署puppeteer导出pdf

    最近在做puppeteer容器化的过程中发现问题. 在容器中npm install puppeteer仍然会报错,不能launch 随后错误提示中也给出了官方的文档,https://github.co ...

  9. Java中常用的操作PDF的类库

    iText iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用 ...

随机推荐

  1. POJ-2774-Long Long Message(后缀数组-最长公共子串)

    题意: 给定两个字符串 A 和 B,求最长公共子串. 分析: 字符串的任何一个子串都是这个字符串的某个后缀的前缀. 求 A 和 B 的最长公共子串等价于求 A 的后缀和 B 的后缀的最长公共前缀的最大 ...

  2. 【转】Android中设置TextView的颜色setTextColor

    原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html android中设置TextView的颜色有方法setText ...

  3. 数学(莫比乌斯函数):BZOJ 2440 完全平方数

    Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些 数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而 这丝毫不影响他对其他数的热爱. 这 ...

  4. Android通过类对象的方式实现JSON数据的解析

    1.通过主Activity的Button按钮实现数据的解析 public class MainActivity extends Activity { //定义一个包含Json格式的字符对象 priva ...

  5. Unicode 字符集及UTF-8 UTF-16编码

    很久以前发在他处的一篇博文,今天翻出来重新整理了一下 Unicode 字符集 共分为 17 个平面(plane), 分别对应 U+xx0000 - U+xxFFFF 的 code points, 其中 ...

  6. poj1611 并查集

    题目链接:http://poj.org/problem?id=1611 #include <cstdio> #include <cmath> #include <algo ...

  7. 吉哥系列故事--完美队形 - HDU 4513 (Manacher)

    分析:刚开始的想法是匹配出来每个点的最大回文串,然后用每个点的最大不下降序找一个最小值,不过不明白为什么不对....很无奈,再匹配的时候加一些判断就可以过,或许还有什么没想到的地方吧.....   代 ...

  8. poj2287

    田忌赛马的题目- - 贪心策略: 1,如果田忌的最快马快于齐王的最快马,则两者比. (因为若是田忌的别的马很可能就赢不了了,所以两者比) 2,如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的 ...

  9. poj 1458 Common Subsequence【LCS】

    Common Subsequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 43132   Accepted: 17 ...

  10. java中的代理

    package cn.itcast.day3; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationHan ...