Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用itext在java中将Tiff转换为Pdf_Java_Pdf_Itext_Tiff_Pdfbox - Fatal编程技术网

使用itext在java中将Tiff转换为Pdf

使用itext在java中将Tiff转换为Pdf,java,pdf,itext,tiff,pdfbox,Java,Pdf,Itext,Tiff,Pdfbox,我正在使用下面的代码将tiff转换为pdf 它适用于尺寸为850*1100的tiff图像。但当我尝试给出尺寸为的输入tiff图像(例如:-1574*732、684*353或其他850*1100)时,我得到以下错误。请帮助我如何将不同尺寸的tiff图像转换为pdf 以下代码出现错误。压缩JPEG仅支持单个条带。此图像有45条条纹。 RandomAccessFileOrArray myTifFile = null; com.itextpdf.text.Document tiffToPDF= null

我正在使用下面的代码将tiff转换为pdf 它适用于尺寸为850*1100的tiff图像。但当我尝试给出尺寸为的输入tiff图像(例如:-1574*732、684*353或其他850*1100)时,我得到以下错误。请帮助我如何将不同尺寸的tiff图像转换为pdf

以下代码出现错误。压缩JPEG仅支持单个条带。此图像有45条条纹。

RandomAccessFileOrArray myTifFile = null;
com.itextpdf.text.Document tiffToPDF= null;
PdfWriter pdfWriter = null;
try{
        myTifFile = new RandomAccessFileOrArray(fileName);
        int numberOfPages = TiffImage.getNumberOfPages(myTifFile);
        tiffToPDF = new com.itextpdf.text.Document(PageSize.LETTER_LANDSCAPE);      
        String temp = fileName.substring(0, fileName.lastIndexOf("."));
        pdfWriter = PdfWriter.getInstance(tiffToPDF, new FileOutputStream(temp+".pdf"));
        pdfWriter.setStrictImageSequence(true);
        tiffToPDF.open();
        for(int tiffImageCounter = 1;tiffImageCounter <= numberOfPages;tiffImageCounter++) 
             {
                Image img = TiffImage.getTiffImage(myTifFile, tiffImageCounter);

                img.setAbsolutePosition(0,0);

                img.scaleToFit(612,792);

                tiffToPDF.add(img);

                tiffToPDF.newPage();
            } 

        }
RandomAccessFileOrArray myTifFile=null;
com.itextpdf.text.Document tifftopf=null;
PdfWriter PdfWriter=null;
试一试{
myTifFile=新的随机访问文件或阵列(文件名);
int numberOfPages=TiffImage.getNumberOfPages(myTifFile);
tiffToPDF=new com.itextpdf.text.Document(PageSize.LETTER_);
字符串temp=fileName.substring(0,fileName.lastIndexOf(“.”);
pdfWriter=pdfWriter.getInstance(tiffToPDF,新文件输出流(temp+“.pdf”);
pdfWriter.SetStritimagesequence(真);
tiffToPDF.open();

对于(int tiffImageCounter=1;tiffImageCounter,此代码将解释如何将tiff转换为pdf。有关更多信息,请参阅

import com.itextpdf.text.pdf.randomAccessFileOrray;
//读取Tiff文件,获取页数
导入com.itextpdf.text.pdf.codec.TiffImage;
//我们需要下面的库来写期末考试
//将图像转换为PDF的PDF文件
导入java.io.FileOutputStream;
//用于从Tiff图像中提取单独图像的图像类
导入com.itextpdf.text.Image;
//PdfWriter对象来编写PDF文档
导入com.itextpdf.text.pdf.PdfWriter;
//用于将逻辑图像文件添加到PDF的文档对象
导入com.itextpdf.text.Document;
公共类TiffToPDF{
公共静态void main(字符串参数[]){
试一试{
//读取Tiff文件
RandomAccessFileOrray myTiffFile=新的RandomAccessFileOrray(“c:\\java\\test.tif”);
//查找Tiff文件中的图像数
int numberOfPages=TiffImage.getNumberOfPages(myTiffFile);
System.out.println(“Tiff文件中的图像数”+页面数);
文档TifftoPDF=新文档();
getInstance(TifftoPDF,新文件输出流(“c:\\java\\tiff2Pdf.pdf”);
TifftoPDF.open();
//运行for循环以从Tiff文件提取图像
//并递归地添加到PDF中

对于(int i=1;iI已使用上述代码检查它适用于尺寸为850*1100的tiff图像。但它显示了不同尺寸tiff的错误。异常转换器:java.io.eofexception请参阅links@byr同时我也检查了链接,同样的错误仍然存在ytifile.read();但问题仍然存在。您能提供错误吗?请编辑您的问题以提供错误。异常转换器:com.lowagie.text.pdf.RandomAccessFileOrArray.readUnsignedShort(未知源)com.lowagie.text.pdf.codec.TIFFDirectory.GetNumDirectory(未知源)com.viewer.download.DocumentConversion.generatePDFFromTIF(DocumentConversion.java:218)com.viewer.download.DocumentConversion.main(DocumentConversion.java:271)上的com.lowagie.text.pdf.codec.TiffImage.getNumberOfPages(未知源代码)您使用的是什么iText版本?许多TIFF已损坏或与规范不符,我最近在iText中添加了回退。我看到您在这里的代码示例中使用了com.itextpdf.text.Document,但作为对答案的注释,您似乎使用了2.x:“com.lowagie.text.pdf.randomAccessFileOrray”。那么它是哪个版本呢?在我的代码中,我使用的是itextpdf-5.4.1.jar。你能分享你的TIFF吗?你能升级到5.5.2吗?我应该提到的是,仅使用iText可能不起作用。例外信息非常清楚:压缩JPEG仅支持一个条带。此图像有45条带。[链接].我将用最新版本替换jar并检查它。
   import com.itextpdf.text.pdf.RandomAccessFileOrArray;
//Read Tiff File, Get number of Pages
import com.itextpdf.text.pdf.codec.TiffImage;
//We need the library below to write the final 
//PDF file which has our image converted to PDF
import java.io.FileOutputStream;
//The image class to extract separate images from Tiff image
import com.itextpdf.text.Image;
//PdfWriter object to write the PDF document
import com.itextpdf.text.pdf.PdfWriter;
//Document object to add logical image files to PDF
import com.itextpdf.text.Document;
public class TiffToPDF {
public static void main(String args[]){
    try{
        //Read the Tiff File
        RandomAccessFileOrArray myTiffFile=new RandomAccessFileOrArray("c:\\java\\test.tif");
        //Find number of images in Tiff file
        int numberOfPages=TiffImage.getNumberOfPages(myTiffFile);
        System.out.println("Number of Images in Tiff File" + numberOfPages);
        Document TifftoPDF=new Document();
        PdfWriter.getInstance(TifftoPDF, new FileOutputStream("c:\\java\\tiff2Pdf.pdf"));
        TifftoPDF.open();
        //Run a for loop to extract images from Tiff file
        //into a Image object and add to PDF recursively
        for(int i=1;i<=numberOfPages;i++){
            Image tempImage=TiffImage.getTiffImage(myTiffFile, i);
            TifftoPDF.add(tempImage);
        }
        TifftoPDF.close();
        System.out.println("Tiff to PDF Conversion in Java Completed" );
    }
    catch (Exception i1){
        i1.printStackTrace();
    }      
    }    
}