Generate a PDF document with C # (attachment code)

xiaoxiao2021-03-06  20

// Write by wenhui.orgusing system; 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 = 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 document header information strpdfMessage = "% PDF-1.1 / N"; ConvertTobyTeandAddTStream (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 document describes streamStart = mPDF.Length; // font strPDFMessage =" BT / n / F0 " fontSize " Tf / n "; ConvertToByteAndAddtoStream (strPDFMessage); // PDF document entity highly yPos = pageDepth - pageMargin; strPDFMessage = pageMargin "" yPos "Td / n"; ConvertToByteAndAddtoStream (strPDFMessage); strPDFMessage = leadSize "TL / n"; ConvertToByteAndAddtoStream (strPDFMessage); // substantial contents strPDFMessage = "(http: / / www.wenhui.org )TJ/N "; ConvertTobyteandAddTREAM (strpdfMessage); strpdfMessage =" et / n "; convertTobyTeandAddTream (StrPdfMessage); streamend = mpdf.length;

streamLen = streamEnd-streamStart; strPDFMessage = "endstream / nendobj / n"; ConvertToByteAndAddtoStream (strPDFMessage); // Version information xRefs.Add PDF document (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"; ConvertTobyteandAddTREAM (STRPDFMESSAGE);

Xrefs.add (MPDF.LENGTH); strpdfMessage = "4 0 obj / n << / type / pages / count 1 / n"; convertTOBYTEANDDTOSTREAM (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"; convertTOBYTEANDDTOSTREAM (STRPDFMESSAGE); XREFS.ADD (MPDF.Length); strpdfMessage = "5 0 obj / n << / type / Font / Subtype / Type1 / BaseFont / Courier / Encoding / Winansiencoding >> / NENDOBJ / N "; ConvertTobyteandAddTStream (StrpdfMessage);

Xrefs.add (MPDF.LENGTH); StrpdfMessage = "6 0 obj / n << / type / catalog / pages 4 0 r >> / NENDOBJ / N"; ConvertTobyteandAddTREAM (STRPDFMESSAGE);

streamstart = MPDF.LENGTH; STRPDFMESSAGE = "XREF / N0 7 / N000000000000 65535 f / n"; for (int i = 0; i > / n" ConvertTobyTeandAddTostream (StrpdfMessage);

StrpdfMessage = "startxref / n" streamstart "/ n %% EOF / N"; ConvertTobyTeandAddTStream (StrpdfMessage); MPDF.Writeto (PPDF.BaseStream);

MPDF.Close (); ppdf.close ();}}}

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 = 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 document header information strpdfMessage = "% PDF-1.1 / N"; ConvertTobyTeandAddTStream (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 document describes streamStart = mPDF.Length; // font strPDFMessage =" BT / n / F0 " fontSize " Tf / n "; ConvertToByteAndAddtoStream (strPDFMessage); // PDF document entity highly yPos = pageDepth - pageMargin; strPDFMessage = pageMargin "" yPos "Td / n"; ConvertToByteAndAddtoStream (strPDFMessage); strPDFMessage = leadSize "TL / n"; ConvertToByteAndAddtoStream (strPDFMessage); // substantial contents strPDFMessage = "(http: / / www.wenhui.org )TJ/N "; ConvertTobyteandAddTREAM (strpdfMessage); strpdfMessage =" et / n "; convertTobyTeandAddTream (StrPdfMessage); streamend = mpdf.length;

streamLen = streamEnd-streamStart; strPDFMessage = "endstream / nendobj / n"; ConvertToByteAndAddtoStream (strPDFMessage); // Version information xRefs.Add PDF document (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"; ConvertTobyteandAddTREAM (STRPDFMESSAGE);

Xrefs.add (MPDF.LENGTH); strpdfMessage = "4 0 obj / n << / type / pages / count 1 / n"; convertTOBYTEANDDTOSTREAM (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"; convertTOBYTEANDDTOSTREAM (STRPDFMESSAGE); XREFS.ADD (MPDF.Length); strpdfMessage = "5 0 obj / n << / type / Font / Subtype / Type1 / BaseFont / Courier / Encoding / Winansiencoding >> / NENDOBJ / N "; ConvertTobyteandAddTStream (StrpdfMessage);

Xrefs.add (MPDF.LENGTH); StrpdfMessage = "6 0 obj / n << / type / catalog / pages 4 0 r >> / NENDOBJ / N"; ConvertTobyteandAddTREAM (STRPDFMESSAGE);

streamstart = MPDF.LENGTH; STRPDFMESSAGE = "XREF / N0 7 / N000000000000 65535 f / n"; for (int i = 0; i > / n" ConvertTobyTeandAddTostream (StrpdfMessage);

StrpdfMessage = "startxref / n" streamstart "/ n %% EOF / N"; ConvertTobyTeandAddTStream (StrpdfMessage); MPDF.Writeto (PPDF.BaseStream);

MPDF.Close (); ppdf.close ();}}}

转载请注明原文地址:https://www.9cbs.com/read-42508.html

New Post(0)