Hallo zusammen,
ich möchte gerne eine PDF in einem BLOB umwandeln (dies funktioniert soweit) und anschließend durch ein anderes Programm ausgeben lassen (dies funktioniert nicht).
Zunächst beschreibe ich einfach mal, wie ich vorgegangen bin:
Ich hoffe, ihr könnt mein Problem verstehen. Wichtig ist, dass ich die PDFs durch mein Testing Tool anzeigen lassen (Code Snippet 2) und somit nicht ausreichend ist, wenn das ganze Rückwärst mit Java klappen würden.
Der Vollständigkeit halber sei Erwähnt, dass ich Java für die Android Entweckelung nutze (mit der IDE Android Studio) und das Testen durch ein PHP Script stattfindet.
Solltet ich noch etwas vergessen haben, werde ich es nachreichen.
Glückauf aus dem Ruhrgebiet
Tobias
Code Snippet 1
Code Snippet 2
ich möchte gerne eine PDF in einem BLOB umwandeln (dies funktioniert soweit) und anschließend durch ein anderes Programm ausgeben lassen (dies funktioniert nicht).
Zunächst beschreibe ich einfach mal, wie ich vorgegangen bin:
- Ich habe die PDF als Byte - Array eingelesen und dazu Files.readAllBytes(Paths.get(this.dest)) der Libary import java.nio.file.Files; genutzt
- Über Stackoverflow habe ich eine Methode gefunden, die aus einem Byte - Array ein Hexadezimalstring baut (Siehe Code Snippet 1)
- Diesen Hexadezimalstring habe ich dann in die DB hochgeladen (siehe Bild, rechte Seite)
Ich hoffe, ihr könnt mein Problem verstehen. Wichtig ist, dass ich die PDFs durch mein Testing Tool anzeigen lassen (Code Snippet 2) und somit nicht ausreichend ist, wenn das ganze Rückwärst mit Java klappen würden.
Der Vollständigkeit halber sei Erwähnt, dass ich Java für die Android Entweckelung nutze (mit der IDE Android Studio) und das Testen durch ein PHP Script stattfindet.
Solltet ich noch etwas vergessen haben, werde ich es nachreichen.
Glückauf aus dem Ruhrgebiet
Tobias
Code Snippet 1
private String bytesToHex(byte[] bytes) {
char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
char[] hexChars = new char[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = HEX_ARRAY[v >>> 4];
hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
}
return new String(hexChars);
}
Code Snippet 2
<!-- In der Variable $file["File"] ist der BLOB aus der Datenbank -->
<object data="data:application/pdf;base64,<?= base64_encode($file["File"]) ?>" type="application/pdf" ></object>