Czy ma ktoś może pit8 w wersji HTML bądź docx, który może zostać zsczytany przez biblioteke Apache POI ??
Dziękuję bardzo za pomoc.
K
Bądź może ktoś zasugeruję inny sposób, ponieważ potrzebuje wypełnić ponad 2000 pitów 8c.
Czy ma ktoś może pit8 w wersji HTML bądź docx, który może zostać zsczytany przez biblioteke Apache POI ??
Dziękuję bardzo za pomoc.
K
Bądź może ktoś zasugeruję inny sposób, ponieważ potrzebuje wypełnić ponad 2000 pitów 8c.
A po co chcesz go czytać za pomocą POI skoro chcesz je wypełnić? Patrzyłem na to kilka lat temu i można było iTextem wypełniać e-deklaracje.
Poza tym Apache Tika integruje w sobie PDFbox i potrafi wczytać pdfa.
A można prosić o więcej szczegółów.
Pomysł był ty tworzyć wzory umów w html/css, wypełniać i zapisywać do pdf używając ITEXT.
? To chcesz tworzyć wzory umów czy wypełniać pity?
Potrzebuje wypenic pit, a nastepnie zapisać go do bazy danych SQL w formacie PDF.
No dobrze, ale w takim razie po co ci czytanie tego pdfa za pomocą POI czy Tika? e-deklaracje do ściągnięcia na stronie ministerstwa da się przecież wypełniać. Mają normalne pola tekstowe które można wypełnić wartościami a potem zapisać :)
http://itextpdf.com/examples/iia.php?id=157
Właśnie próbuję Twojej metody na tym formularzu http://www.finanse.mf.gov.pl/documents/766655/1481810/PIT-8C(7)_v1-0E.pdf
,tylko nie wiem jak uzyskać dostęp do nazw we formularzu.
Probowałem metod naleących do obiektu AcroFields, ale wszystkie zwracają zero lub null
Jednak gdy usunę linijkę PdfReader.unethicalreading = true;, to wyświetla mi sie wyjatek
BadPasswordException: PdfReader not opened with owner password
try {
PdfReader.unethicalreading = true;
PdfReader reader = new PdfReader(new FileInputStream("/root/TestPit8/web/notmod.pdf"));
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("/root/TestPit8/web/testpdf.pdf"));
AcroFields form = stamper.getAcroFields();
form.setField("text_1", "666");
form.setField("text_2", "666");
form.setField("text_3", "666");
form.setFieldProperty("text_3", "clrfflags", TextField.PASSWORD, null);
form.setFieldProperty("text_3", "setflags", PdfAnnotation.FLAGS_PRINT, null);
form.setField("text_3", "12345678", "xxxxxxxx");
form.setFieldProperty("text_4", "textsize", new Float(12), null);
form.regenerateField("text_4");
stamper.close();
reader.close();
} catch( Exception ex) {
ex.printStackTrace();
}
dodanie znacznika <code class="java">
- @furious programming
Robiłem to bardzo bardzo dawno temu i nie mam już tych kodów, ale generalnie rozkminiałem to tak, ze otwarłem sobie to pod debugerem a potem przeglądałem właściwości obiektów żeby wyczaić jak sie dobrać do parametrów. Niemniej jednak na 100% takie wypełnianie było możliwe.