• 使用itextsharp创建PDF文档——图片集合


    文档管理系统中 ,扫描模块将文档或证件扫描后。为了便于保存多个图片,拟将多个图片生成一个PDF文档进行保存。

    这里我们就需要PDF生成工具了。你可以在这里下载。PDFCreator

    主要使用了开源工具ITextSharp生成PDF文档。

    测试界面如下:


    选择图片,可多选



    生成PDF



    生成的PDF文件:



    目前只是生成图片的pdf文件,至于更高级的应用的探索,以后写文章再说吧。

    其中关键代码PDFCreator如下

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    
    namespace PDFCreator
    {
        public class PDFCreator
        {
            iTextSharp.text.Document pdfdoc;
            iTextSharp.text.Image pdfImg;
            iTextSharp.text.pdf.PdfWriter pdfwriter;
    
            string tmpFilePath;
            public PDFCreator()
            {
                pdfdoc = new iTextSharp.text.Document();
    
                try
                {
                    tmpFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"~tmpPdfCreatorFile.pdf";
                    if (File.Exists(tmpFilePath))
                        File.Delete(tmpFilePath);
                    pdfwriter = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfdoc, new FileStream(tmpFilePath, FileMode.CreateNew));
                    pdfdoc.Open();
                }
                catch
                {
                    throw new Exception("此文件已存在!");
                }
            }
            public bool AddURIImage(string imageUrl)
            {
                try
                {
                    //pdfdoc.Open();
                    pdfdoc.NewPage();
                    //String imageUrl = "http://jenkov.com/images/" +
                    //        "20081123-20081123-3E1W7902-small-portrait.jpg";
                    pdfImg = iTextSharp.text.Image.GetInstance(new Uri(imageUrl));
                    pdfImg.Alignment = iTextSharp.text.Image.MIDDLE_ALIGN;
                    //pdfImg.SetAbsolutePosition(500f, 650f);
                    pdfdoc.Add(pdfImg);
    
                    //pdfdoc.Close();
                }
                catch (Exception e)
                {
                    return false;
                }
                return true;
            }
    
            public bool AddImageFromFile(string imageFilePath)
            {
                try
                {
                    
    
                    pdfdoc.NewPage();
                    pdfImg = iTextSharp.text.Image.GetInstance(imageFilePath);
                    pdfImg.Alignment = iTextSharp.text.Image.MIDDLE_ALIGN;
                  //  pdfImg.SetAbsolutePosition((iTextSharp.text.PageSize.POSTCARD.Width - pdfImg.ScaledWidth) / 2,
                  //(iTextSharp.text.PageSize.POSTCARD.Height - pdfImg.ScaledHeight) / 2);
                  //  pdfwriter.DirectContent.AddImage(pdfImg);
                    pdfdoc.Add(pdfImg);
                    //pdfdoc.Close();
                }
                catch (Exception e)
                {
                    return false;
                }
                return true;
            }
    
            public void SaveToFile(string fileName)
            {
    
                //pdfwriter.Close();
                //pdfwriter.Dispose();
                pdfdoc.Dispose();
                File.Copy(tmpFilePath, fileName, true);
                File.Delete(tmpFilePath);
            }
        }
    }
    

    调用代码如下:

     private void btnCreatePDF_Click(object sender, EventArgs e)
            {
                SaveFileDialog sdiag = new SaveFileDialog();
                sdiag.Filter = "PDF文档|*.pdf";
                if (sdiag.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    PDFCreator creator = new PDFCreator();
                    foreach (object obj in listBox1.Items)
                    {
                        if (obj == null)
                            continue;
                        string imgFilePath = obj.ToString();
                        creator.AddImageFromFile(imgFilePath);
                       
                    }
                    //
                    creator.SaveToFile(sdiag.FileName);
                }
            }


    你可以在这里下载。PDFCreator

  • 相关阅读:
    Delphi6函数大全(1)
    chr码值对应列表大全
    delphi控制POS打印机
    java network programming 第七章
    loop msn 2
    java ftp 资源
    java network programming 第六章
    IM模型的几个概念
    TCP/IP网络互连技术 卷3 winsock篇
    看你网络安全的水平!!
  • 原文地址:https://www.cnblogs.com/riskyer/p/3243698.html
Copyright © 2020-2023  润新知