Я использую apache tika для преобразования файлов PDF в HTML, мне нужно извлечь html со стилями, такими как полужирный, курсив, верхний, левый, высота, ширина и семейство шрифтов элемента, но я использовал получить только необработанные html теги, которые содержат теги без стилей,
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.ExpandedTitleContentHandler;
import org.xml.sax.SAXException;
import com.google.common.io.Files;
public class Test4 {
public static void main(String[] args) throws IOException, TransformerConfigurationException, SAXException, TikaException {
byte[] file = Files.toByteArray(new File("src/main/java/test/test.pdf"));
AutoDetectParser tikaParser = new AutoDetectParser();
ByteArrayOutputStream out = new ByteArrayOutputStream();
SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
TransformerHandler handler = factory.newTransformerHandler();
handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "html");
handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
handler.getTransformer().setOutputProperty(OutputKeys.ENCODING, "UTF-8");
handler.setResult(new StreamResult(out));
ExpandedTitleContentHandler handler1 = new ExpandedTitleContentHandler(handler);
tikaParser.parse(new ByteArrayInputStream(file), handler1, new Metadata());
System.out.println(new String(out.toByteArray(), "UTF-8"));
}
}
На выходе я получаю только HTML как показано ниже,
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="date" content="2017-01-10T12:56:54Z"/>
<meta name="pdf:PDFVersion" content="1.5"/>
<meta name="pdf:docinfo:title" content="GROUP HEALTH INSURANCE"/>
<meta name="pdf:docinfo:created" content="2016-09-01T05:45:44Z"/>
<!-- some meta's here -->
<title>GROUP HEALTH INSURANCE</title>
</head>
<body>
<div class="page">
<p/>
<p> Group Personal Accident Policy for Optional Travel Insurance for E-ticket </p>
<p>Sample Registration Number:102
</p>
<p>Annexure 1
</p>
</div>
</body>
</html>
Как я могу извлечь содержимое как HTML из PDF с его собственными стилями, просьба дать свой ответ, заранее спасибо.