2013-06-05 2 views
0

내가 iText를 함께 노력하고 내가 XML 형식 등으로 볼 수 있습니다 난 그냥 텍스트 (위치, 크기) 원하는 XML
PDF로 변환 할 XML 형식
을 가져올 수 없습니다 PDF 자바자바 코드는

답변

3

를 사용 XML 의 변환에 하나 도움 네브라스카 텍스트 또는 형식을 잃지 않고 HTML로 PDF를 변환 할 수있는 라이브러리 pdf2htmlEX 있습니다.

희망이 도움이 될 수 있습니다.

1

이것은 내 응용 프로그램에서 사용하는 코드입니다. 나는 그것을 어디에서 얻었는지 기억하지 못한다. 그러나 그것은 매력처럼 작동한다.

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(); 
      } 
    } 
+0

위의 코드에서 데이터를 가져올 수 없지만 (이 코드는 roseindia에서이 코드로) – nikhil

+0

오, 오! 네! 로즈 인디아 출신이야. 나는 어디에서 왔는지 기억할 수 없다. 어쨌든 데이터를 가져올 수 없습니까? 나는 이해하지 못한다. – Swayam

+0

난 그냥 좌표와 텍스트의 형태로 PDF 파일 전체 텍스트를 읽을 수 있지만 텍스트는 위의 코드를 사용하여 검색 할 수 없습니다 내가 도울 수 – nikhil

관련 문제