abcPdf 用法
1
using System;2
using System.Collections.Generic;3
using System.Text;4
using WebSupergoo.ABCpdf5;5

6
namespace *****.model7


{8
public class PdfHelper : IDisposable9

{10

/**//// <summary>11
/// save pdf file as a local file12
/// </summary>13
/// <param name="htmlContext"></param>14
/// <param name="pdfSavePath"></param>15
public static void SaveAsFile(string htmlContext, string pdfSavePath)16

{17
using (Doc pdfDoc = new Doc())18

{19
string tempFile = System.Web.HttpContext.Current.Server.MapPath("~/Calculator/temp/") + "temp." + DateTime.Now.Millisecond.ToString() + "." + DateTime.Now.ToString("MM-dd-yyyy-hh") + ".html";20
System.IO.StreamWriter strWriter = new System.IO.StreamWriter(tempFile);21
strWriter.Write(htmlContext);22
strWriter.Close();23
strWriter = null;24
int pdfId = 0;25
pdfDoc.HPos = .3;26
double scale = .8;27
int x = 30;28
int y = 50;29
pdfDoc.Rect.Magnify(1 / scale, 1 / scale);30
pdfDoc.Transform.Magnify(scale, scale, 0, 0);31
pdfDoc.Rect.Inset(x, y);32
try33

{34
pdfId = pdfDoc.AddImageUrl("file:///" + tempFile);35
while (pdfDoc.Chainable(pdfId))36

{37
pdfDoc.Page = pdfDoc.AddPage();38
pdfId = pdfDoc.AddImageToChain(pdfId);39
}40
for (int i = 0; i < pdfDoc.PageCount - 1; i++)41

{42
pdfDoc.PageNumber = i;43
pdfDoc.Flatten();44
}45
pdfDoc.Save(pdfSavePath);46
}47
catch (Exception ex)48

{49

50
throw ex;51
}52
finally53

{54
System.IO.File.Delete(tempFile);55
pdfDoc.Delete(pdfId);56
pdfDoc.Clear();57
}58

59
}60
}61

62

/**//// <summary>63
/// get the pdf byte[]64
/// </summary>65
/// <param name="htmlContext"></param>66
/// <returns></returns>67
public static byte[] GetBytes(string htmlContext)68

{69
byte[] context = null;70
Doc pdfDoc = new Doc();71
string tempFile = System.Web.HttpContext.Current.Server.MapPath("~/Calculator/temp/") + "temp." + DateTime.Now.Millisecond.ToString() + "." + DateTime.Now.ToString("MM-dd-yyyy-hh") + ".html";72
System.IO.StreamWriter strWriter = new System.IO.StreamWriter(tempFile);73
strWriter.Write(htmlContext);74
strWriter.Close();75
strWriter = null;76
int pdfId = 0;77
pdfDoc.HPos = .3;78
double scale = .8;79
int x = 30;80
int y = 50;81
pdfDoc.Rect.Magnify(1 / scale, 1 / scale);82
pdfDoc.Transform.Magnify(scale, scale, 0, 0);83
pdfDoc.Rect.Inset(x, y);84
try85

{86
pdfId = pdfDoc.AddImageUrl("file:///" + tempFile);87
while (pdfDoc.Chainable(pdfId))88

{89
pdfDoc.Page = pdfDoc.AddPage();90
pdfId = pdfDoc.AddImageToChain(pdfId);91
}92
for (int i = 0; i < pdfDoc.PageCount - 1; i++)93

{94
pdfDoc.PageNumber = i;95
pdfDoc.Flatten();96
}97
context = pdfDoc.GetData();98
}99
catch (Exception ex)100

{101

102
throw ex;103
}104
finally105

{106
System.IO.File.Delete(tempFile);107
pdfDoc.Delete(pdfId);108
pdfDoc.Clear();109
}110

111
return context;112
}113

114
public static byte[] PdfBytes(StringBuilder htmlcontext)115

{116
byte[] temp = null;117
using (Doc pdf = new Doc())118

{119
int pdfId = 0;120
pdf.HPos = .3;121
double scale = .8;122
int x = 30;123
int y = 50;124
pdf.Rect.Magnify(1 / scale, 1 / scale);125
pdf.Transform.Magnify(scale, scale, 0, 0);126
pdf.Rect.Inset(x, y);127
try128

{129
//pdfId = pdfDoc.AddImageUrl("file:///" + tempFile);130
pdfId = pdf.AddImageHtml(htmlcontext.ToString());131
while (pdf.Chainable(pdfId))132

{133
pdf.Page = pdf.AddPage();134
pdfId = pdf.AddImageToChain(pdfId);135
}136
for (int i = 0; i < pdf.PageCount - 1; i++)137

{138
pdf.PageNumber = i;139
pdf.Flatten();140
}141
temp = pdf.GetData();142
}143
catch (Exception ex)144

{145

146
throw ex;147
}148
finally149

{150
pdf.Delete(pdfId);151
pdf.Clear();152

153
} return temp;154
}155
}156

IDisposable Members#region IDisposable Members157

158
public void Dispose()159

{160
}161

162
#endregion163
}164
}165

H.Wong
-2010
浙公网安备 33010602011771号