public void printOrder(List <Product> productsCart) { var file = Path.GetTempFileName(); string filepath = Path.GetTempPath(); string strFilename = MainUtils.getCurrentTime("h_mm_ss") + ".pdf"; using (MemoryStream ms = new MemoryStream()) { iTextSharp.text.Document document = new iTextSharp.text.Document(getPageSize(), 20, 20, 15, 15); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(Path.Combine(filepath, strFilename), FileMode.Create)); document.AddTitle("Document Title"); document.Open(); iTextSharp.text.pdf.BaseFont Vn_Helvetica = iTextSharp.text.pdf.BaseFont.CreateFont(@"C:\Windows\Fonts\arial.ttf", "Identity-H", iTextSharp.text.pdf.BaseFont.EMBEDDED); iTextSharp.text.Font titleFont = new iTextSharp.text.Font(Vn_Helvetica, 18, iTextSharp.text.Font.BOLD); iTextSharp.text.Font subTitleFont = new iTextSharp.text.Font(Vn_Helvetica, 14, iTextSharp.text.Font.NORMAL); iTextSharp.text.Font boldTableFont = new iTextSharp.text.Font(Vn_Helvetica, 12, iTextSharp.text.Font.BOLD); iTextSharp.text.Font endingMessageFont = new iTextSharp.text.Font(Vn_Helvetica, 10, iTextSharp.text.Font.NORMAL); iTextSharp.text.Font bodyFont = new iTextSharp.text.Font(Vn_Helvetica, 12, iTextSharp.text.Font.NORMAL); document.Add(new iTextSharp.text.Paragraph(Properties.Settings.Default.ShopName, titleFont)); var orderInfoTable = new PdfPTable(2); orderInfoTable.HorizontalAlignment = 0; orderInfoTable.SpacingBefore = 10; orderInfoTable.SpacingAfter = 10; orderInfoTable.DefaultCell.Border = 0; orderInfoTable.SetWidths(new int[] { 70, 150 }); //Id of Order orderInfoTable.AddCell(new iTextSharp.text.Phrase("Mã đơn hàng: ", boldTableFont)); orderInfoTable.AddCell(""); double totalPrice = 0; //Products for (int i = 0; i < productsCart.Count; i++) { int c = i + 1; orderInfoTable.AddCell(new iTextSharp.text.Phrase("Sản phẩm " + c + ": ", boldTableFont)); orderInfoTable.AddCell(new iTextSharp.text.Phrase(productsCart[i].getName(), bodyFont)); orderInfoTable.AddCell(new iTextSharp.text.Phrase("Mã sản phẩm " + c + ": ", boldTableFont)); orderInfoTable.AddCell(productsCart[i].getpID()); orderInfoTable.AddCell(new iTextSharp.text.Phrase("Số lượng " + c + ": ", boldTableFont)); orderInfoTable.AddCell(productsCart[i].getQuantity().ToString()); totalPrice += double.Parse(productsCart[i].getPrice()); } //Total price orderInfoTable.AddCell(new iTextSharp.text.Phrase("Tổng giá:", boldTableFont)); orderInfoTable.AddCell(Convert.ToDecimal(totalPrice).ToString("###,###,###.00") + " dong"); document.Add(orderInfoTable); document.Close(); } System.Diagnostics.Process.Start(filepath + strFilename); }
public static void SavePDF(int idm, int idp, string text, DataContext dc = null) { using (dc = dc ?? new DataContext()) { MemberMaster mm = dc.MemberMaster.Where(x => x.MasterId == idm && x.MemberId == idp).First(); Member master = Members.GetMemberAt(idm); Member padawan = Members.GetMemberAt(idp); byte[] bytes; using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { using (iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4.Rotate())) { using (iTextSharp.text.pdf.PdfWriter w = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, ms)) { doc.Open(); doc.NewPage(); doc.Add(new iTextSharp.text.Paragraph(text)); doc.AddTitle(master.Name + " " + master.Surname + " report about " + padawan.Name + " " + padawan.Surname + " " + DateTime.Now.ToShortDateString()); doc.Close(); bytes = ms.ToArray(); } } } Report r = new Report { Text = bytes, Time = DateTime.Now, MemberMasterId = mm.MemberMasterId }; dc.Reports.Add(r); dc.SaveChanges(); } }
// Background worker public void PDFBackgroundWorker_DoWork_TextPDF(object sender, DoWorkEventArgs e) { int i = 0; int ii = 1; exportFilePath = string.Empty; if (JobType == PDFJobType.TextPDF) { exportFilePath = directoryName + "\\" + FileNoExt + ".pdf"; while (System.IO.File.Exists(exportFilePath)) { exportFilePath = directoryName + "\\" + FileNoExt + "_" + ii + ".pdf"; ii++; } using (FileStream fs = new FileStream(exportFilePath, FileMode.Create, FileAccess.Write, FileShare.None)) { iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.B4); // iTextSharp.text. Document doc = new Document(PageSize.A2); // doc.SetMargins(100, 200, 0, 0); //Document doc = new Document(PageSize.A5, 36, 72, 108, 180); //Document doc = new Document(PageSize.A3.Rotate(),400,0,0,0); //var doc = new Document(new iTextSharp.text.Rectangle(100f, 300f)); iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, fs); iTextSharp.text.pdf.BaseFont bfTimes = iTextSharp.text.pdf.BaseFont.CreateFont(iTextSharp.text.pdf.BaseFont.TIMES_BOLD, iTextSharp.text.pdf.BaseFont.CP1252, false); // doc.SetPageSize(PageSize.A1); // doc.SetMargins(76, 0, 0, 0); doc.SetMarginMirroring(false); iTextSharp.text.Font times = new iTextSharp.text.Font(bfTimes, 14, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.CYAN); if (PDFBackgroundWorker.CancellationPending) { e.Cancel = true; PDFBackgroundWorker.ReportProgress(i); return; } using (StreamReader read = new StreamReader(InputFilename)) { string text = read.ReadToEnd(); // AddDocMetaData(); doc.AddTitle(GameTitle); doc.AddSubject(""); doc.AddKeywords(GameTitle + ", " + FileNoExt + " : by Hypermint, "); doc.AddCreator("HLM-Chk"); doc.AddAuthor(GameTitle); doc.AddHeader(FileNoExt, GameTitle); doc.Open(); iTextSharp.text.Paragraph paragraph = new iTextSharp.text.Paragraph(); paragraph.Alignment = iTextSharp.text.Element.ALIGN_MIDDLE; paragraph.Add(text); doc.Add(paragraph); //Paragraph paragraph = new Paragraph(text); doc.Close(); } } } }
public Boolean MergePdfFiles(String[] pdfFiles, String outputPath) { // Optional ByVal authorName As String = "", _ // Optional ByVal creatorName As String = "", _ // Optional ByVal subject As String = "", _ // Optional ByVal title As String = "", _ // Optional ByVal keywords As String = "") Boolean result = false; int pdfCount = 0; //'total input pdf file count int f = 0; //'pointer to current input pdf file string fileName = String.Empty; // 'current input pdf filename iTextSharp.text.pdf.PdfReader reader = null; int pageCount = 0; //'cureent input pdf page count iTextSharp.text.Document pdfDoc = null; // 'the output pdf document iTextSharp.text.pdf.PdfWriter writer = null; iTextSharp.text.pdf.PdfContentByte cb = null; // 'Declare a variable to hold the imported pages iTextSharp.text.pdf.PdfImportedPage page = null; int rotation = 0; bool unethicalreading = false; // 'Declare a font to used for the bookmarks iTextSharp.text.Font bookmarkFont = iTextSharp.text.FontFactory.GetFont(iTextSharp.text.FontFactory.HELVETICA, 12, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.BLUE); // Try pdfCount = pdfFiles.Length; if (pdfCount > 1) { // 'Open the 1st pad using PdfReader object fileName = pdfFiles[f]; reader = new iTextSharp.text.pdf.PdfReader(fileName); // reader. iTextSharp.text.pdf.PdfReader.unethicalreading = unethicalreading; // 'Get page count pageCount = reader.NumberOfPages; // 'Instantiate an new instance of pdf document and set its margins. This will be the output pdf. // 'NOTE: bookmarks will be added at the 1st page of very original pdf file using its filename. The location // 'of this bookmark will be placed at the upper left hand corner of the document. So you'll need to adjust // 'the margin left and margin top values such that the bookmark won't overlay on the merged pdf page. The // 'unit used is "points" (72 points = 1 inch), thus in this example, the bookmarks' location is at 1/4 inch from // 'left and 1/4 inch from top of the page. pdfDoc = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1), 18, 18, 18, 18); // 'Instantiate a PdfWriter that listens to the pdf document writer = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, new System.IO.FileStream(outputPath, System.IO.FileMode.Create)); //added system // 'Set metadata and open the document // With pdfDoc pdfDoc.AddAuthor(""); pdfDoc.AddCreationDate(); pdfDoc.AddCreator(""); pdfDoc.AddProducer(); pdfDoc.AddSubject(""); pdfDoc.AddTitle(""); pdfDoc.AddKeywords(""); pdfDoc.Open(); // End With // 'Instantiate a PdfContentByte object cb = writer.DirectContent; // 'Now loop thru the input pdfs while (f < pdfCount) { // 'Declare a page counter variable int i = 0; // 'Loop thru the current input pdf's pages starting at page 1 while (i < pageCount) { i += 1; // 'Get the input page size pdfDoc.SetPageSize(reader.GetPageSizeWithRotation(i)); // 'Create a new page on the output document pdfDoc.NewPage(); // 'If it is the 1st page, we add bookmarks to the page // 'If i = 1 Then // ' 'First create a paragraph using the filename as the heading // ' Dim para As New iTextSharp.text.Paragraph(IO.Path.GetFileName(fileName).ToUpper(), bookmarkFont) // ' 'Then create a chapter from the above paragraph // ' Dim chpter As New iTextSharp.text.Chapter(para, f + 1) // ' 'Finally add the chapter to the document // ' pdfDoc.Add(chpter) // 'End If // 'Now we get the imported page page = writer.GetImportedPage(reader, i); // 'Read the imported page's rotation rotation = reader.GetPageRotation(i); // 'Then add the imported page to the PdfContentByte object as a template based on the page's rotation if (rotation == 90) { cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height); } else if (rotation == 270) { cb.AddTemplate(page, 0, 1.0F, -1.0F, 0, reader.GetPageSizeWithRotation(i).Width + 60, -30); } else { cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0); } } //End While 2 // 'Increment f and read the next input pdf file f += 1; if (f < pdfCount) { fileName = pdfFiles[f]; reader = new iTextSharp.text.pdf.PdfReader(fileName); pageCount = reader.NumberOfPages; } // End If } //end while 1 // 'When all done, we close the document so that the pdfwriter object can write it to the output file pdfDoc.Close(); result = true; }// End If Principal // Catch ex As Exception // Throw New Exception(ex.Message) // End Try return(result); }
static void Main(string[] args) { Console.WriteLine("GVD.dat extractor for \"Ni no kuni\"\t-> by pleonex\n"); #region Get arguments if (args.Length < 3) { Show_Help(); return; } for (int i = 0; i < args.Length - 2; i++) { switch (args[i]) { // Modes case "-x": mode = 0; break; case "-en": if (i + 1 == args.Length) { Show_Help(); return; } mode = 1; // Get number of pages to extract string[] nums = args[++i].Split(','); pages_num = new int[nums.Length]; for (int n = 0; n < nums.Length; n++) { try { pages_num[n] = Convert.ToInt32(nums[n]); } catch { Show_Help(); return; } } break; case "-es": mode = 2; pages_name = args[++i].Split(','); break; // Options case "-bx": blocked = 0; break; case "-bb": blocked = 1; break; case "-bu": blocked = 2; break; case "-q": try { quality = Convert.ToInt32(args[++i]); } catch { Show_Help(); return; } break; case "-pdf": convert = 1; break; case "-nofol": nofolder = true; break; default: Show_Help(); return; } } fileIn = args[args.Length - 2]; folderOut = args[args.Length - 1]; if (!Directory.Exists(folderOut)) { Directory.CreateDirectory(folderOut); } #endregion DateTime start = DateTime.Now; // Convert to PDF, initialize it if (convert == 1) { string pdf_file = Path.Combine(folderOut, Path.GetFileNameWithoutExtension(fileIn) + ".pdf"); if (File.Exists(pdf_file)) { File.Delete(pdf_file); } pdf = new iTextSharp.text.Document(); PdfWriter.GetInstance(pdf, new FileStream(pdf_file, FileMode.Create)); pdf.Open(); pdf.AddAuthor("Studio Ghibli - Level 5"); pdf.AddTitle("Ni no kuni - Vademecum"); pdf.AddSubject("Book extracted from the PS3 version of Ni no kuni."); } // WORK! Read_BookPack(fileIn, folderOut); if (convert == 1) { if (pdf.PageNumber == 0) { pdf.NewPage(); pdf.Add(iTextSharp.text.Paragraph.GetInstance("No pages!")); } pdf.Close(); } Console.WriteLine("\nFinished in {0}!", (DateTime.Now - start).ToString()); Console.ReadKey(true); }
/// <summary> /// 引用iTextSharp.dll导出pdf数据库字典文档 /// </summary> /// <param name="databaseName"></param> /// <param name="tables"></param> public static void ExportPdfByITextSharp(string fileName, string fontPath, string databaseName, List <TableDto> tables) { // TODO 创建并添加文档信息 iTextSharp.text.Document pdfDocument = new iTextSharp.text.Document(); pdfDocument.AddTitle(fileName); iTextSharp.text.pdf.PdfWriter pdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDocument, new System.IO.FileStream(fileName, System.IO.FileMode.Create)); pdfDocument.Open(); // 打开文档 // TODO 标题 iTextSharp.text.Paragraph title = new iTextSharp.text.Paragraph("数据库字典文档\n\n", BaseFont(fontPath, 30, iTextSharp.text.Font.BOLD)); title.Alignment = iTextSharp.text.Element.ALIGN_CENTER; pdfDocument.Add(title); iTextSharp.text.Paragraph subTitle = new iTextSharp.text.Paragraph(" —— " + databaseName, BaseFont(fontPath, 20, iTextSharp.text.Font.NORMAL)); subTitle.Alignment = iTextSharp.text.Element.ALIGN_CENTER; pdfDocument.Add(subTitle); // TODO PDF换页 pdfDocument.NewPage(); // TODO 创建添加书签章节 int chapterNum = 1; // TODO 全局字体设置,处理iTextSharp中文不识别显示问题 iTextSharp.text.Font pdfFont = BaseFont(fontPath, 12, iTextSharp.text.Font.NORMAL); // TODO log table iTextSharp.text.Chapter chapter1 = new iTextSharp.text.Chapter(new iTextSharp.text.Paragraph(AppConst.LOG_CHAPTER_NAME, pdfFont), chapterNum); pdfDocument.Add(chapter1); pdfDocument.Add(new iTextSharp.text.Paragraph("\n", pdfFont)); // 换行 CreateLogTable(pdfDocument, pdfFont, tables); // TODO PDF换页 pdfDocument.NewPage(); // TODO overview table iTextSharp.text.Chapter chapter2 = new iTextSharp.text.Chapter(new iTextSharp.text.Paragraph(AppConst.TABLE_CHAPTER_NAME, pdfFont), (++chapterNum)); pdfDocument.Add(chapter2); pdfDocument.Add(new iTextSharp.text.Paragraph("\n", pdfFont)); // 换行 CreateOverviewTable(pdfDocument, pdfFont, tables); // TODO PDF换页 pdfDocument.NewPage(); // TODO table structure // TODO 添加书签章节 iTextSharp.text.Chapter chapter3 = new iTextSharp.text.Chapter(new iTextSharp.text.Paragraph(AppConst.TABLE_STRUCTURE_CHAPTER_NAME, pdfFont), (++chapterNum)); chapter3.BookmarkOpen = true; pdfDocument.Add(chapter3); pdfDocument.Add(new iTextSharp.text.Paragraph("\n", pdfFont)); // 换行 foreach (var table in tables) { string docTableName = table.TableName + " " + (!string.IsNullOrWhiteSpace(table.Comment) ? table.Comment : ""); // TODO 添加书签章节 iTextSharp.text.Section selection = chapter3.AddSection(20f, new iTextSharp.text.Paragraph(docTableName, pdfFont), chapterNum); pdfDocument.Add(selection); pdfDocument.Add(new iTextSharp.text.Paragraph("\n", pdfFont)); // 换行 // TODO 遍历数据库表 // TODO 创建表格 iTextSharp.text.pdf.PdfPTable pdfTable = new iTextSharp.text.pdf.PdfPTable(10); // TODO 添加列标题 pdfTable.AddCell(CreatePdfPCell("序号", pdfFont)); pdfTable.AddCell(CreatePdfPCell("列名", pdfFont)); pdfTable.AddCell(CreatePdfPCell("数据类型", pdfFont)); pdfTable.AddCell(CreatePdfPCell("长度", pdfFont)); pdfTable.AddCell(CreatePdfPCell("小数位", pdfFont)); pdfTable.AddCell(CreatePdfPCell("主键", pdfFont)); pdfTable.AddCell(CreatePdfPCell("自增", pdfFont)); pdfTable.AddCell(CreatePdfPCell("允许空", pdfFont)); pdfTable.AddCell(CreatePdfPCell("默认值", pdfFont)); pdfTable.AddCell(CreatePdfPCell("列说明", pdfFont)); // TODO 添加数据行,循环数据库表字段 foreach (var column in table.Columns) { pdfTable.AddCell(CreatePdfPCell(column.ColumnOrder, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.ColumnName, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.ColumnTypeName, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.Length, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.Scale, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.IsPK, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.IsIdentity, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.CanNull, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.DefaultVal, pdfFont)); pdfTable.AddCell(CreatePdfPCell(column.Comment, pdfFont)); } // TODO 设置表格居中 pdfTable.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER; pdfTable.TotalWidth = 520F; pdfTable.LockedWidth = true; pdfTable.SetWidths(new float[] { 50F, 60F, 60F, 50F, 50F, 50F, 50F, 50F, 50F, 50F }); // TODO 添加表格 pdfDocument.Add(pdfTable); // TODO PDF换页 pdfDocument.NewPage(); } // TODO 关闭释放PDF文档资源 pdfDocument.Close(); }