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);
        }
示例#2
0
文件: MPs.cs 项目: n-mitic/portal
        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();
            }
        }
示例#3
0
        // 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();
                        }

                    }
                }
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
文件: PdfUtils.cs 项目: AESCR/DBCHM
        /// <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();
        }