制作PDF文件我用的是IText,网络上有苟安延的中文教程,讲的比较详细。利用ITEXT读取PDF文件也是可以的,本人没有摸索成功,用PDFBOX读取的。用这两个插件都需要在引用里添加,并在源文件中用using包含。ITEXT的排版我还没有解决,现在暂时用插入空格的方法来代替,应该直接有调整文本居左,居右的方法的。官方网站有ITEX IN ACTION这本书,讲的比较详细,使用JAVA语言介绍的,没有中文版本。
ITEXT生成PDF:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using iTextSharp.text;using iTextSharp.text.pdf;using System.IO;namespace MakePdf{ class Program { public static void MakPdf(string LogText, string FilePath)//FilePath“/”需要转义 { Document document = new Document(PageSize.A4); DateTime Tnow = DateTime.Now; string LogTime = Convert.ToDateTime(Tnow).ToString("yyyy-MM-dd HH-mm-ss"); //LogTime日志文件名 string TextTime = Tnow.ToString(); //写入PDF的时间 FilePath = FilePath + "\\"+LogTime + ".pdf"; PdfWriter.getInstance(document, new FileStream(@FilePath, FileMode.Create)); //以系统时间命名 document.Open(); BaseFont FontSong = BaseFont.createFont(@"c:\windows\fonts\SIMSUN.TTC,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //字体设置 Font FontTitle = new Font(FontSong, 16); Paragraph Title = new Paragraph("RFID安全漏洞扫描报告", FontTitle); Title.IndentationLeft = 175;//在段落左边插入175个空格 Title.setAlignment("3"); document.Add(Title); Font FontText = new Font(FontSong, 12); string PTextTime = "日期:" + TextTime; Paragraph Date = new Paragraph(PTextTime, FontText); Date.IndentationLeft = 370; document.Add(Date); //pdf文件中的时间以冒号显示 //LogText = "主窗口提供的日志内容!";//正文 LogText = " " + LogText; document.Add(new Paragraph(LogText, FontText)); document.Close(); } static void Main(string[] args) { string a = "主窗口提供的日志内容" ; string b = "d:"; MakPdf(a, b); } }}
用PDFBOX读取PDF:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using org.pdfbox.pdmodel;using org.pdfbox.util;using System.IO;namespace ReadPdf{ class Program { public static string Pdf2txt(FileInfo PdfFile) { PDDocument doc = PDDocument.load(PdfFile.FullName); PDFTextStripper PdfStripper = new PDFTextStripper();//参加PDF获取器 string LogText = PdfStripper.getText(doc);//获取文本 return LogText; } static void Main(string[] args) { string LogText = Pdf2txt(new FileInfo(@"d:\\2011-05-14 15-56-51.pdf")); Console.WriteLine(LogText); Console.ReadLine(); } }}
没有评论:
发表评论