`
zhuyufufu
  • 浏览: 138765 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

文档展示:使用iText转换各种图片为PDF

阅读更多
如题:

下面这段代码可以处理各种格式的图片,代码的出处忘记了。

上代码:
/**
	 * 图片转PDF
	 * @param sourceFile
	 * @param destFile
	 * @return
	 */
	public static File picToPdf(String sourceFile, String destFile) {
		File inputFile = new File(sourceFile);
		if (!inputFile.exists()) {
			return null;// 找不到源文件, 则返回null
		}
		// 如果目标路径不存在, 则新建该路径
		File outputFile = new File(destFile);
		if (!outputFile.getParentFile().exists()) {
			outputFile.getParentFile().mkdirs();
		}
		ArrayList<String> imageUrllist = new ArrayList<String>();
		imageUrllist.add(sourceFile);
		return imgToPdf(imageUrllist, destFile);
	}
	
	 /**
     * iText转各种图片为pdf
     * @param imageUrllist
     * @param mOutputPdfFileName
     * @return
     */
    private static File imgToPdf(ArrayList<String> imageUrllist,String mOutputPdfFileName) { 
    	if(null == imageUrllist){
    		return null;
    	}
    	long beginTime = System.nanoTime();
        Document doc = new Document(PageSize.A4, 20, 20, 20, 20);  
        try {  
            PdfWriter.getInstance(doc, new FileOutputStream(mOutputPdfFileName));  
            doc.open();  
            for (int i = 0; i < imageUrllist.size(); i++) {  
                doc.newPage();  
//                doc.add(new Paragraph("简单使用iText"));  
                Image png1 = Image.getInstance(imageUrllist.get(i));  
                float heigth = png1.getHeight();  
                float width = png1.getWidth();  
                int percent = getPercent2(heigth, width);  
                png1.setAlignment(Image.MIDDLE);  
                png1.scalePercent(percent+3);// 表示是原来图像的比例;  
                doc.add(png1);  
            }  
            doc.close();  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (DocumentException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
  
        File mOutputPdfFile = new File(mOutputPdfFileName);  
        if (!mOutputPdfFile.exists()) {  
            mOutputPdfFile.deleteOnExit();  
            return null;  
        } 
        
        try {  
        	mOutputPdfFile.createNewFile();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        long endTime = System.nanoTime();
		System.out.println("图片转pdf耗时: " + (endTime - beginTime) / 1000000000 + " 秒  " + imageUrllist.toString());
        return mOutputPdfFile;  
    } 
/** 
     * 第一种解决方案 在不改变图片形状的同时,判断,如果h>w,则按h压缩,否则在w>h或w=h的情况下,按宽度压缩 
     * 
     * @param h 
     * @param w 
     * @return 
     */  
  
    public static int getPercent(float h, float w) {  
        int p = 0;  
        float p2 = 0.0f;  
        if (h > w) {  
            p2 = 297 / h * 100;  
        } else {  
            p2 = 210 / w * 100;  
        }  
        p = Math.round(p2);  
        return p;  
    }  
  
    /** 
     * 第二种解决方案,统一按照宽度压缩 这样来的效果是,所有图片的宽度是相等的,自我认为给客户的效果是最好的 
     * 
     * @param args 
     */  
    public static int getPercent2(float h, float w) {  
        int p = 0;  
        float p2 = 0.0f;  
        p2 = 530 / w * 100;  
        p = Math.round(p2);  
        return p;  
    }  


分享到:
评论

相关推荐

    itext7 pdf转图片

    - 转换PDF:除了基本的创建和编辑功能,iText 7还允许开发者将PDF文档转换为其他格式,例如HTML、XML或图像,以满足不同的应用场景需求。 2. 图像处理: - 图像在计算机中的表示:数字图像由像素组成,每个像素有...

    利用ITEXT、PDFBOX将PDF转为图片

    PDF转换为图片是一种常见的需求,特别是在处理PDF文档的可视化展示或者需要进行网页嵌入时。在Java编程环境中,我们可以利用ITEXT和PDFBOX这两个库来实现这个功能。这两个库都是处理PDF的强大工具,各有其特点和优势...

    使用itextpdf将excel转化为pdf + pdf加水印

    TestForExcel2PDF测试类可能包含这样的逻辑:首先,加载Excel文件,然后使用itextpdf的API将工作表的内容转换为PDF页面,最后保存为PDF文件。这个过程中可能涉及到对Excel表格的样式、字体、颜色等元素的保持,以...

    itext将图片生成PDF(高清版)

    以下是一个简单的步骤,展示如何使用`iText`将PNG图片转换为高清PDF: 1. 引入`iText`库:首先,确保你的项目中包含了`iText`库。在Java项目中,可以通过Maven或Gradle添加依赖。在提供的压缩包中,可能已经包含了...

    使用iText-2.0.8将Html转换为pdf,带图片功能

    总的来说,使用iText 2.0.8将HTML转换为PDF涉及HTML解析、图片处理、PDF对象构建和写入等多个环节。虽然这个过程相对复杂,但通过合理的代码组织和错误处理,可以实现高效且准确的转换。对于更复杂的HTML布局和样式...

    itext图片转pdf

    本篇文章将深入探讨如何使用iText工具jar包将图片转换为PDF,同时确保图片的等比伸缩,避免失真。 首先,我们需要了解iText的基本用法。iText库提供了一系列API,可以创建新的PDF文档、添加文本、图像、表格等内容...

    Android使用iText生成pdf并读取pdf内容

    总的来说,iText为Android开发者提供了一种便捷的方式去生成和读取PDF文档。通过学习和理解iText的基本API,开发者可以创建丰富的PDF文档,并从现有PDF中提取所需的信息。不过,考虑到Android的内存限制和性能,使用...

    itext7 html转换为pdf

    `iText`是一个强大的Java库,用于处理PDF文档,它的最新版本`iText 7`增加了对HTML到PDF转换的支持。本文将详细介绍如何利用`iText 7`在Windows系统上进行此操作,并讨论其关键特性,如中文支持、页眉和页脚的添加。...

    JAVA使用itextpdf实现HTML转PDF

    在IT行业中,将HTML页面转换为PDF文档是一个常见的需求,特别是在报表生成、电子书制作或者网页保存为离线阅读格式时。本主题聚焦于使用Java的iTextPDF库来完成这个任务。iTextPDF是一个强大的Java库,允许开发人员...

    使用IText生成PDF和WORD文档

    IText是一款广泛使用的Java库,专门用于创建和编辑PDF及Word文档。在本文中,我们将深入探讨如何利用IText库生成这两种格式的文档,并通过实际的源码示例来理解其工作原理。 首先,让我们从PDF(Portable Document ...

    利用poi+itextpdf进行word转pdf.rar

    5. 转换并添加内容:为每个Word段落创建`Paragraph`,设置相应样式,并将其添加到PDF文档中。 6. 处理表格:对于Word中的`XWPFTable`,需要转换为PDF的`PdfPTable`,并逐个单元格添加内容。 7. 保存PDF:最后,关闭`...

    java Itext 将tif转换成PDF 包含多页

    在IT行业中,处理图像文件和文档格式...总之,使用Java和iText库,可以方便地将多页的TIFF文件转换为多页的PDF文档,满足在不同场景下的文件格式需求。通过深入理解和实践,可以进一步定制功能,满足特定的业务需求。

    Itext中文使用说明+英文官方API文档

    Itext是一个强大的PDF处理工具,中文使用说明和API文档是其学习的重要资源。掌握Itext可以帮助开发者高效地生成和处理PDF文档,提升项目开发效率。无论是初学者还是经验丰富的开发者,都应该充分利用这些资源,深入...

    java利用iText转换jpg为PDF格式文件

    以下是一个简单的Java代码示例,展示如何使用iText将JPG转换为PDF: ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Image; import ...

    itext生成PDF图片文档

    iText生成PDF图片文档 iText是一个功能强大的Java类库,用于生成PDF文档。通过使用iText,我们可以轻松地生成PDF文档,...本文详细介绍了如何使用iText生成PDF图片文档,包括设置文档信息、添加图片、写入文字等步骤。

    iText中文文档.pdf

    iText中文文档.pdf iText是Java语言中一个功能强大的文档处理库,能够生成PDF、RTF、HTML等多种格式的文档。本文档旨在对iText进行详细的介绍,涵盖了iText的简单应用、高级应用、与Struts2的集成等多方面的内容。 ...

    使用POI和IText将Excel转换成PDF

    在IT行业中,转换数据格式是常见的任务之一,例如将Excel表格转换为PDF文档。这个过程可以方便用户在不使用特定应用程序(如Microsoft Excel)的情况下查看和打印数据。本篇文章将详细探讨如何使用Apache POI和iText...

    itextpdf不同版本的jar包

    1. **PDF生成**:你可以使用iTextPDF来动态地创建PDF文档,添加文本、图像、表格、链接、注释等元素。 2. **PDF编辑**:除了生成,iTextPDF还允许你修改已有的PDF文档,如添加或删除页面、更新内容、签署文档等。 3....

    利用itext将html转为pdf带图片所需jar

    总结起来,将HTML转换为PDF需要理解iText库的工作原理,特别是`HTMLWorker`的使用。同时,配置正确的字体以支持中文字符,以及处理图片的嵌入,都是关键的环节。通过`iText-2.0.8.jar`和`core-renderer-R8.jar`这两...

    Itext实现自动生成pdf word文件

    iText不仅限于PDF,还支持生成RTF(Rich Text Format)文档,并且具有将HTML和XML转换为PDF的功能。 iText的核心功能包括: 1. **PDF文档创建**:iText允许开发者从头开始构建PDF文档,通过添加各种元素如文本、...

Global site tag (gtag.js) - Google Analytics