0
我試着用iText的,無法得到XML格式
我想將PDF轉換爲XML
我只是想文本(位置,大小),它可在XML格式等在使用JavaJava代碼到XML轉換
我試着用iText的,無法得到XML格式
我想將PDF轉換爲XML
我只是想文本(位置,大小),它可在XML格式等在使用JavaJava代碼到XML轉換
PDF到XML轉換任意一個幫助NE有一個圖書館pdf2htmlEX,它可以轉換的PDF格式,而不會丟失文本或格式的HTML。
希望這可以幫助你。
這是我在自己的應用程序中使用的代碼。我不記得我從哪裏得到它,但它確實像一個魅力。
public class ConvertPDFToXML {
static StreamResult streamResult;
static TransformerHandler handler;
static AttributesImpl atts;
public static void main(String[] args) throws IOException {
try {
Document document = new Document();
document.open();
PdfReader reader = new PdfReader("C:\\hello.pdf");
PdfDictionary page = reader.getPageN(1);
PRIndirectReference objectReference = (PRIndirectReference) page
.get(PdfName.CONTENTS);
PRStream stream = (PRStream) PdfReader
.getPdfObject(objectReference);
byte[] streamBytes = PdfReader.getStreamBytes(stream);
PRTokeniser tokenizer = new PRTokeniser(streamBytes);
StringBuffer strbufe = new StringBuffer();
while (tokenizer.nextToken()) {
if (tokenizer.getTokenType() == PRTokeniser.TK_STRING) {
strbufe.append(tokenizer.getStringValue());
}
}
String test = strbufe.toString();
streamResult = new StreamResult("data.xml");
initXML();
process(test);
closeXML();
document.add(new Paragraph(".."));
document.close();
} catch (Exception e) {
}
}
public static void initXML() throws ParserConfigurationException,
TransformerConfigurationException, SAXException {
SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory
.newInstance();
handler = tf.newTransformerHandler();
Transformer serializer = handler.getTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
serializer.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount", "4");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
handler.setResult(streamResult);
handler.startDocument();
atts = new AttributesImpl();
handler.startElement("", "", "data", atts);
}
public static void process(String s) throws SAXException {
String[] elements = s.split("\\|");
atts.clear();
handler.startElement("", "", "Message", atts);
handler.characters(elements[0].toCharArray(), 0, elements[0].length());
handler.endElement("", "", "Message");
}
public static void closeXML() throws SAXException {
handler.endElement("", "", "data");
handler.endDocument();
}
}
但我無法從上面的代碼中獲取數據(順便說一下Roseindia的這個代碼) – nikhil
哦,哦!是啊!它來自roseindia。我不記得我從哪裏得到它。無論如何,你無法獲得數據?我不明白。 – Swayam
我只是想要閱讀pdf文件中的文本形式的座標和文本,但是無法使用上面的代碼檢索文本可以幫助我 – nikhil