我正在尝试将HTMLl文件转换为PDF。为此,我正在使用iText。如果HTML的主体中有一些图像,则iText无法将该图像放入PDF中,并引发以下异常。
ExceptionConverter: java.io.FileNotFoundException: D:\cid:870001313@01022011-2B8B (The system cannot find the file specified).
如果HTML的主体中有一些图像,是否可以读取该图像并将其作为该PDF文件的附件?这是我的源代码(Truncate.java):
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Paragraph;
import com.lowagie.text.html.simpleparser.HTMLWorker;
import com.lowagie.text.pdf.PdfWriter;
public class Truncate {
public static void main(String[] args) throws DocumentException {
// TODO Auto-generated method stub
FileReader fr = null;
Document document = new Document();
document.open();
PdfWriter writer = null;
try {
String file_name = "C:\\Documentum\\Viewed\\911.htm";
fr = new FileReader(file_name);
PdfWriter.getInstance(document, System.out);
writer = PdfWriter.getInstance(document, new FileOutputStream(
"C:\\Documentum\\Viewed\\RH\\RH.pdf"));
document.add(new Paragraph("RH Mail"));
ArrayList htmlContentList = HTMLWorker.parseToList(fr, null);
//fetch the html content line by line
for (int htmlDataCntr = 0; htmlDataCntr < htmlContentList.size(); htmlDataCntr++) {
Element htmlDataElement = (Element) htmlContentList
.get(htmlDataCntr);
document.add(htmlDataElement);
}
fr.close();
document.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch(Exception e){
System.out.println(e);
}
}
}
答案 0 :(得分:1)
从附件的名称来看,您的html似乎是从电子邮件中导出的。确保您应该以不同方式解析电子邮件,并将图像与其他内容区分开来。
编辑:正如我所说,我认为问题在于上游。cid
表示法对应于邮件中的嵌入图像(例如,请参阅here)。因此,如果upteam邮件解析器没有将图像文件作为附件提供给你,你就无法做任何事情。