Files
Dokumenten-Check/dc-backend/target/classes/de/frigosped/dc/service/DocumentProcessingService.class

106 lines
12 KiB
Plaintext
Raw Normal View History

2026-04-27 14:57:33 +02:00
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>AF
 java/lang/Object<init>()V
 
1de/frigosped/dc/service/DocumentProcessingServiceresolveMimeType8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;  LOGLorg/jboss/logging/Logger;Extrahiere Text: %s (%s)
 org/jboss/logging/Loggerdebugf9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
 java/lang/StringhashCode()I application/pdf
" #$equals(Ljava/lang/Object;)Z&Gapplication/vnd.openxmlformats-officedocument.wordprocessingml.document(application/msword*'application/vnd.oasis.opendocument.text,
text/plain. text/markdown
0 12extractFromPdf([B)Ljava/lang/String;
4 52extractFromDocx
7 82extractFromOdt :;< =>!java/nio/charset/StandardCharsetsUTF_8Ljava/nio/charset/Charset;
@ A([BLjava/nio/charset/Charset;)VC/Unbekannter MIME-Typ '%s' versuche als Text
E FGwarnf'(Ljava/lang/String;Ljava/lang/Object;)VIjava/lang/ExceptionKFehler bei Textextraktion (%s)
M NOerrorf<(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)VQjava/lang/RuntimeException
HS TU
getMessage()Ljava/lang/String;W XYmakeConcatWithConstants&(Ljava/lang/String;)Ljava/lang/String;
P[ \*(Ljava/lang/String;Ljava/lang/Throwable;)V^Starte PDF-OCR...
` abdebug(Ljava/lang/Object;)Vdjava/lang/StringBuilder
c
ghi jkorg/apache/pdfbox/LoaderloadPDF*([B)Lorg/apache/pdfbox/pdmodel/PDDocument;m'org/apache/pdfbox/rendering/PDFRenderer
lo p)(Lorg/apache/pdfbox/pdmodel/PDDocument;)V
rst u$org/apache/pdfbox/pdmodel/PDDocumentgetNumberOfPageswPDF hat %d Seite(n)
y z(Ljava/lang/String;I)V|OCR Seite %d/%d
~ (Ljava/lang/String;II)VCH <00><00><00> <00><00>%org/apache/pdfbox/rendering/ImageTypeRGB'Lorg/apache/pdfbox/rendering/ImageType;
l<00> <00><00>renderImageWithDPII(IFLorg/apache/pdfbox/rendering/ImageType;)Ljava/awt/image/BufferedImage;<00>java/io/ByteArrayOutputStream
<00><00>PNG
<00><00><00> <00><00>javax/imageio/ImageIOwriteI(Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljava/io/OutputStream;)Z
<00><00><00> <00><00>java/util/Base64
getEncoder()Ljava/util/Base64$Encoder;
<00><00> <00><00> toByteArray()[B
<00><00><00> <00>2java/util/Base64$EncoderencodeToString
<00> <00><00>ocrPage((Ljava/lang/String;II)Ljava/lang/String;
c<00> <00><00>append-(Ljava/lang/String;)Ljava/lang/StringBuilder;<00>
r<00> <00>close<00>java/lang/Throwable
<00><00> <00><00> addSuppressed(Ljava/lang/Throwable;)V
c<00> <00>UtoString
<00> <00>Utrim<00>$dev/langchain4j/data/message/Content<00> image/png
<00><00><00> <00><00>)dev/langchain4j/data/message/ImageContentfromQ(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;<00> X<00>(II)Ljava/lang/String;
<00><00><00> <00><00>(dev/langchain4j/data/message/TextContent>(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;
<00><00><00> <00><00>(dev/langchain4j/data/message/UserMessageS([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage; <00> <00><00>ocrModel.Ldev/langchain4j/model/chat/ChatLanguageModel; <00><00><00> <00><00>java/util/Listof$(Ljava/lang/Object;)Ljava/util/List; <00><00><00> <00><00>,dev/langchain4j/model/chat/ChatLanguageModelgenerate9(Ljava/util/List;)Ldev/langchain4j/model/output/Response;
<00><00><00> <00><00>%dev/langchain4j/model/output/Responsecontent()Ljava/lang/Object;<00>&dev/langchain4j/data/message/AiMessage
<00><00> <00>Utext<00> Konvertiere DOCX → Markdown...<00>*org/apache/poi/xwpf/usermodel/XWPFDocument<00>java/io/ByteArrayInputStream
<00><00> <00>([B)V
<00><00> <00>(Ljava/io/InputStream;)V
<00><00> <00><00>getBodyElements()Ljava/util/List; <00> iterator()Ljava/util/Iterator;   java/util/IteratorhasNext()Z   <00>next*org/apache/poi/xwpf/usermodel/IBodyElement+org/apache/poi/xwpf/usermodel/XWPFParagraph
 paragraphToMarkdownA(Lorg/apache/poi/xwpf/usermodel/XWPFParagraph;)Ljava/lang/String;
'org/apache/poi/xwpf/usermodel/XWPFTable
 tableToMarkdown=(Lorg/apache/poi/xwpf/usermodel/XWPFTable;)Ljava/lang/String;
<00><00>
  UgetText
" # isBlank%
' (UgetStyle*Heading1
, -.equalsIgnoreCase(Ljava/lang/String;)Z0 berschrift1W3Heading25 berschrift2W8Heading3: berschrift3W=Heading4? berschrift4W
B CD
getNumIlvl()Ljava/math/BigInteger;W
G H<00>getRows <00>J K isEmpty <00>M NOget(I)Ljava/lang/Object;Q*org/apache/poi/xwpf/usermodel/XWPFTableRowS|
PU V<00> getTableCellsX YZaccept8(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer; <00>\ ]^forEach (Ljava/util/function/Consumer;)V`
|X <00>c dsize XgKonvertiere ODT → Markdown...
ijk lm)org/odftoolkit/odfdom/doc/OdfTextDocument loadDocumentB(Ljava/io/InputStream;)Lorg/odftoolkit/odfdom/doc/OdfTextDocument;
io pq getContentDom+()Lorg/odftoolkit/odfdom/dom/OdfContentDom;stext:p
uvw xy'org/odftoolkit/odfdom/dom/OdfContentDomgetElementsByTagName*(Ljava/lang/String;)Lorg/w3c/dom/NodeList; {|} ~org/w3c/dom/NodeList getLength {<01> <01><01>item(I)Lorg/w3c/dom/Node; <01><01><01> <01>Uorg/w3c/dom/NodegetTextContent <01><01> <01><01> getAttributes()Lorg/w3c/dom/NamedNodeMap;<01>text:style-name <01><01><01> <01><01>org/w3c/dom/NamedNodeMap getNamedItem&(Ljava/lang/String;)Lorg/w3c/dom/Node; <01><01> <01>U getNodeValue<01> Heading_20_1
<01> <01>.
startsWith<01># <01> Heading_20_2<01>## <01> Heading_20_3<01>###
i<00><01>application/octet-stream
<01> <01>U toLowerCase<01>.pdf
<01> <01>.endsWith<01>.docx<01>.doc<01>.odt<01>.txt<01>.md
<01><01>+org/apache/poi/xwpf/usermodel/XWPFTableCell<01> | <01>---|
<01> <01><01> getLogger-(Ljava/lang/Class;)Lorg/jboss/logging/Logger;OCR_DPIF ConstantValueRuntimeVisibleAnnotationsLjakarta/inject/Inject;Ljakarta/inject/Named;valueocrCodeLineNumberTableLocalVariableTablethis3Lde/frigosped/dc/service/DocumentProcessingService; extractText:([BLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;eLjava/lang/Exception; fileBytes[BmimeTypeLjava/lang/String;filename effectiveMime StackMapTable<01>MethodParametersimageLjava/awt/image/BufferedImage;baosLjava/io/ByteArrayOutputStream; base64ImagepageTextiIrenderer)Lorg/apache/pdfbox/rendering/PDFRenderer; pageCountpdf&Lorg/apache/pdfbox/pdmodel/PDDocument;resultLjava/lang/StringBuilder;
ExceptionspageNum
totalPagesmessage*Ldev/langchain4j/data/message/UserMessage;para-Lorg/apache/poi/xwpf/usermodel/XWPFParagraph;table)Lorg/apache/poi/xwpf/usermodel/XWPFTable;element,Lorg/apache/poi/xwpf/usermodel/IBodyElement;doc,Lorg/apache/poi/xwpf/usermodel/XWPFDocument;mdstylesbrowsLjava/util/List;header,Lorg/apache/poi/xwpf/usermodel/XWPFTableRow;LocalVariableTypeTable>Ljava/util/List<Lorg/apache/poi/xwpf/usermodel/XWPFTableRow;>; styleAttrLorg/w3c/dom/Node;node
paragraphsLorg/w3c/dom/NodeList;odfDoc+Lorg/odftoolkit/odfdom/doc/OdfTextDocument;lowerlambda$tableToMarkdown$2I(Ljava/lang/StringBuilder;Lorg/apache/poi/xwpf/usermodel/XWPFTableCell;)Vc-Lorg/apache/poi/xwpf/usermodel/XWPFTableCell;lambda$tableToMarkdown$1lambda$tableToMarkdown$0<clinit>
SourceFileDocumentProcessingService.java.Ljakarta/enterprise/context/ApplicationScoped;BootstrapMethods Textextraktion fehlgeschlagen: yDu bist ein OCR-Spezialist. Extrahiere den gesamten Text aus diesem Dokument-Bild (Seite  von ).
Regeln:
- Formatiere den Text als Markdown
- Überschriften als # / ## / ###
- Tabellen als Markdown-Tabellen
- Listen als - oder 1. 2. 3.
- Behalte den Originaltext exakt (keine Korrekturen, keine Zusammenfassungen)
- Antworte NUR mit dem extrahierten Markdown, ohne Präambel# ## !### ##### %- b(
) +0(Lorg/apache/poi/xwpf/usermodel/XWPFTableCell;)V-
. 0
1  3
456 X7$java/lang/invoke/StringConcatFactory<00>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;9
:;< =>"java/lang/invoke/LambdaMetafactory metafactory<00>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; InnerClassesEncoderB%java/lang/invoke/MethodHandles$LookupDjava/lang/invoke/MethodHandlesLookup!<01><01><01><00><00><00><01><01><01><01>s<01> <01>/*<2A><01><01>&<01> <01><01><01><01><01>9*,-<2D>:<04> -<04>:6<05><19><00><06><>k2i<><69><EFBFBD><EFBFBD>9<>\<5C><>I<>8<EFBFBD><38><00>0<EFBFBD><30>hy5<79><35>OY<1F>!<21>V6<06>P%<25>!<21>F6<06>@'<27>!<21>66<06>0)<29>!<21>&6<06> +<2B>!<21>6<06>-<2D>!<21>6<06>K%--5==*+<2B>/<2F>6*+<2B>3<>.*+<2B>6<>&<26>Y+<2B>9<>?<3F><18> B<04>D<>Y+<2B>9<>?<3F>:<05> J-<2D>L<>PY<05>R<>V<05>Z<>H<01>6 >?B<00>D<00>G<00>I<00>KM NBQR%S<01>><01><01>9<01><01>9<01><01>9<01><01>9<01><01>1<01><01><01>4<0E>X & <0A><01>@H<01> <01><01><01>12<01><01> <00><> ]<5D>_<>cY<63>eM+<2B>fN<66>lY-<2D>n:-<2D>q6<05> v<05>x6<05>_<> {`<05>}<12><><00><><00>:<07><00>Y<EFBFBD><00>:<12><08><00>W<EFBFBD><00><08><00><><00>: * `<05><00>:
,
<EFBFBD><00><12><><00>W<EFBFBD><01><><EFBFBD>-<2D>#-<2D><00><>:-<2D>-<2D><00><> :<05><00><04>,<2C><00><><00><><00><00><00><00><00><00><00><01>J\]_`a%b/d9eGfUi^jhkum<00>n<00>d<00>p<00>_<00>r<01>p U:<01><01>^1<01><01>u<01><01> <00> <01><01>
2c<01><01>v<01><01>%p<01><01><00><01><01><00><01><01><00><01><01><00><01><01><01>><06>2<01>crl<00>bJ<00><> <01>cr<00><00><08><01>H<01><01><00><00><01><00>7<05><00>Y+<12><><00>SY<1D><00><00><00>S<EFBFBD><00>:*<2A><00><04>ٹ<00><00><00><><00><><00><><01>y z{y<00><01>47<01><01>7<01><01>7<01><01>7<01><01><01><01><01> <01><01><01>52<01><01><00><> <12><>_<>cY<63>eM<65><00>Y<EFBFBD><00>Y+<2B><00><><00>N-<2D><00><>:<04><00>U<04>
<00> :<05><0F><05>:,*<06><11><00><15><00>W<EFBFBD>#<05><17><05>:,*<07><19><00><15><00>W<EFBFBD><57><EFBFBD>-<2D><1D>:-<2D><1D> :<05><00><04>,<2C><00><><00><> <00><00><00><00><00><00><00><01>2 <00><00><00> <00>A<00>P<00>d<00>s<00><00><00><00><00><00><00><00><00><01>HP<01><01>s<01><01>AC<01><01> <00><01><01><00><01><01><00><01><01><00><01><01><01>;<08>+c<00><05>8 <0A><1F>F<00><><01>c<00><00><00><08><01>H<01><01><01>9<00>+<2B>M,<2C>
,<2C>!<21>$<24>+<2B>&N-<2D>,<2C>-)<29>+<2B> -/<2F>+<2B>
,<2C>1<00>-2<>+<2B> -4<>+<2B>
,<2C>6<00>-7<>+<2B> -9<>+<2B>
,<2C>;<00>-<<3C>+<2B> -><3E>+<2B>
,<2C>@<00>+<2B>A<>
,<2C>E<00>,<2C><01>><00><00><00><00><00>3<00>:<00>N<00>U<00>i<00>p<00><00><00><00><00><00><00><00><00><01>*<00><01><01><00><01><01><00><00><01><00><01><01><01> <0C><03>
 <01><01><01>a<00><>cY<63>eM+<2B>FN-<2D>I<00>$<24>-<03>L<00>P:,R<><00>W<04>T,<2C>W<00>[,_<><00>W<04>T,<2C>a<00>[,<15><00>W6-<2D>b<00>2,R<><00>W-<05>L<00>P<>T,<2C>e<00>[,<15><00>W<EFBFBD><01><><EFBFBD>,<2C><00><><01>><00><00> <00><00>&<00>.<00>><00>F<00>V<00>^<00>l<00>t<00><00><00><00><00><00><00><01>>a:<01><01><00><01><01><00><01><01><00><01><01> <00><01>&z  <00><01><01><03>c<00><>FP<01>9<01><01>82<01><02>
A<> f<>_<>cY<63>eM<65><00>Y+<2B><00><>hN-<2D>nr<>t:6<04>z<00><00><05>:<06><01>:<07><00><07>!<21><00><06><01><01><><01>:<08> <08><01><00>$:  <01><><01><> )<29><01><>,<01><><00><07><00><15><00>W<EFBFBD>h <01><><01><> 2<><01><>,<01><><00><07><00><15><00>W<EFBFBD>< <01><><01><> 7<><01><>,<01><><00><07><00><15><00>W<EFBFBD>,<07><00><15><00>W<EFBFBD><01><>-<2D>#-<2D><01><>:-<2D>-<2D><01><> :<05><00><04>,<2C><00><><00><> <00>&*-<00><01>^<00> <00><00><00>$<00>)<00>8<00>C<00>L<00>Y<00>c<00>j<00>~<00><00><00><00><00><00><00><00><00><00><00><00><00><00> <00>9<00><01>f
j<00>~<00><01><01> C<00>L<00><00><01>,<00><01><01>)<00> 
 A<01><01>A<01><01>0<01><01><01>o<0F>,<01>ci{<00>L<01><01>B<1A><15> <01>ci{<00>J<00><> <01>ci<00><00><08><01>H<01><01> <01><00>v+<2B>+<2B>!<21>+<01><>!<21>+<2B>,<2C><01><>,<2C><01>N-<01><><01><><1F>-<01><><01><>%<25>-<01><><01><>'<27>-<01><><01><>)<29>-<01><><01><>+<2B>-<01><><01><>-<2D><01><><01>2 $1>K X
e r <01>*v<01><01>v<01><01>v<01><01>$R <01><01><07> <01> <01><01>
 <01>D*+<2B><01><><00><01><><00>W<EFBFBD><01><00><01><01><01>
<01>= *<01><><00>W<EFBFBD><01><00><01> <01><01> 
<01>D*+<2B><01><><00><01><><00>W<EFBFBD><01><00><01><01><01><01>! <08>³ <0A><01>(<01>J
22222 2"2$8&'*8&,*8&/*?<00><00>@ ACE