相关文章推荐
痛苦的领带  ·  在 Node.js 中使用 Async ...·  1 年前    · 
import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.util.ArrayList;  
import com.itextpdf.text.Document;  
import com.itextpdf.text.DocumentException;  
import com.itextpdf.text.Image;  
import com.itextpdf.text.PageSize;  
import com.itextpdf.text.Paragraph;  
import com.itextpdf.text.pdf.PdfWriter;  
public class PdfManager {  
    public static File Pdf(ArrayList<String> imageUrllist,String mOutputPdfFileName) {  
        String TAG = "PdfManager";  
        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;  
        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;  

生成pdf图片

public class ToPDF {
    public static void main(String[] args) {
        // TODO Auto-generated method stub  
        ArrayList<String> imageUrllist = new ArrayList<String>();
        imageUrllist.add("C:\\Users\\Administrator\\Desktop\\zq.jpg");
        String pdfUrl = "C:\\Users\\Administrator\\Desktop\\zqzq.pdf";
        File file = PdfManager.Pdf(imageUrllist, pdfUrl);
        try {
            file.createNewFile();
        } catch (IOException e) {
            // TODO Auto-generated catch block  
            e.printStackTrace();

demo
http://download.csdn.net/download/qq_26296197/10254883
开发者文档
https://developers.itextpdf.com/tutorials
如果想看官方更加多的文档可以参考这个链接
https://developers.itextpdf.com/examples/image-examples-itext5

实现 图像转化为pdf把图片转化为pdf实现效果图itext 逻辑代码import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayL...
在使用itext 导出pdf 的过程中,可能会遇到这样的需求,就是导出文字加图片。使用我们前面写的程序,确实是可以导出图片,如果针对于类似简历的需求,图片填充单元格,会满足效果,如下图所示: 但在实际的很多需求中,可能需要的是小图标,此时我们就需要去控制图片的大小了。 使用com.lowagie.text.Image 控制图片大小的几种方式: //5、创建图片对象,加入headerTable中...
* signDetail 前端canvas 获取的图片信息 private static Image buildImageFromSource(String signDetail, float width, float height) { try { signDetail = clearPreffix(signDetail);
itext的使用也是从itext 5开始,一点一点的拼凑出来的。做到后面发现业务上需要对图片进行处理,一直没有找到比较好的解决办法,最后入了itext 7的坑。 先说一说 itext 7的优点吧。代码量比较少,很简洁。对于图片的处理也比较优雅。哈哈哈哈哈哈哈哈说的太闷骚了 废话不多说,开干吧。刚吧嘚 首先pom导入itext 7大礼包: <dependencies> <dependency> <groupId>com.itextpdf</groupId
import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.L...
iTextPDF是一个Java库,用于创建和操作PDF文档。该库是一个广泛使用的PDF API,提供了丰富的功能和灵活性,可以让开发人员轻松地生成和编辑PDF文档。 iTextPDF-5.4.2.jar是该库的一个版本,可以从iTextPDF的官方网站上下载。该版本包含了所有为创建和编辑PDF文档所需的类和方法,可以用于在Java应用程序中创建和定制PDF文档。将iTextPDF库导入到Java项目中,可以轻松地将文本、图像、表格和其他对象添加到PDF文档中,并进行格式设置和排版。 该库还提供了广泛的PDF编辑功能,可用于添加和删除页面、添加水印和标签、合并和拆分PDF文档等。iTextPDF的API非常强大,可以通过多种方式自定义PDF文档的外观和行为。 总体而言,iTextPDF-5.4.2.jar是一个非常有用的Java库,适用于需要在应用程序中生成、编辑和操作PDF文档的开发人员。使用该库可以大大简化PDF文档的创建和编辑过程,并轻松地实现定制化和个性化的PDF文档。