-1

以下程序使用 itext-library(版本 2.1.7)将 TIF 文件转换为 PDF 文件。

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Image;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.pdf.RandomAccessFileOrArray;
import com.lowagie.text.pdf.codec.TiffImage;
import java.io.File;
import java.io.FileOutputStream;

public class Tiff2Pdf {

    public static File convert(String tifPath, String pdfPath) {
        File pdfFile = null;
        String imgeFilename = tifPath;
        Document document = new Document();
        try {
            PdfWriter writer = PdfWriter.getInstance(
                    document,
                    new FileOutputStream(pdfPath));
            writer.setStrictImageSequence(true);
            Image image;
            document.open();
            RandomAccessFileOrArray ra = new RandomAccessFileOrArray(imgeFilename);
            int pagesTif = TiffImage.getNumberOfPages(ra);
            for (int i = 1; i <= pagesTif; i++) {
                image = TiffImage.getTiffImage(ra, i);
                image.scaleAbsolute(PageSize.A4.getWidth(), PageSize.A4.getHeight());
                Rectangle pageSize = new Rectangle(633, 842);
                document.setPageSize(pageSize);
                document.newPage();
                document.add(image);
            }
            pdfFile = new File(pdfPath);
            document.close();
            PdfReader read = new PdfReader(pdfPath);
        } catch (Exception ex) {
            //do nothing
        }
        return pdfFile;
    }
}

但 PDF 文件未居中对齐。

转换后的 TIF 文件如何在 PDF 文件中居中对齐?

4

1 回答 1

0

解决方案是:

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Image;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.pdf.RandomAccessFileOrArray;
import com.lowagie.text.pdf.codec.TiffImage;
import java.io.File;
import java.io.FileOutputStream;

/**
 *
 * @author Rahman
 */
public class Tiff2Pdf {

    public static File convert(String tif, String pdf) {
        File pdfFile = null;
        String imgeFilename = tif;
        Document document = new Document();
        try {
            PdfWriter writer = PdfWriter.getInstance(
                    document,
                    new FileOutputStream(pdf));
            writer.setStrictImageSequence(true);
            Image image;
            document.open();
            RandomAccessFileOrArray ra = new RandomAccessFileOrArray(imgeFilename);
            int pagesTif = TiffImage.getNumberOfPages(ra);
            for (int i = 1; i <= pagesTif; i++) {
                image = TiffImage.getTiffImage(ra, i);
                image.scaleAbsolute(PageSize.A4.getWidth(), PageSize.A4.getHeight());
                document.setMargins(0, 0, 0, 0);
                document.newPage();
                document.add(image);
            }
            pdfFile = new File(pdf);
            document.close();
        } catch (Exception ex) {
            //do nothing
        }
        return pdfFile;
    }
}
于 2013-09-02T07:34:34.107 回答