Thao tác với File Pdf trong Java

thongdoanvan

Moderator
21/1/10
247
7
16
Hôm qua tình cờ có ông bạn hỏi muốn làm việc với file Pdf trong java. Thế là về vọc và chạy thử, thấy cũng khá hay.
Do java không cung cấp các API thao tác với file Pdf vì vậy chúng ta cần phải nhờ tới các api của hang thứ 3. Do đó chúng ta cần import gói itext-1.4.6. Gói này đã có trong Source code.
Bước 1:Tạo một project đặt tên là ungdung
Bước 2: Tạo một packeag là:ungdung
Bước 3 :Copy một file pdf vào trong packeag ứng dụng. Như trong ví dụ này là file vidu.pdf
Bước 4: import gói itext-1.46 vào Library
Bước 5:Viết các class thao tác với file pdf
1. Đọc các thông tin cơ bản về file Pdf
package ungdung;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
try {
PdfReader reader = new PdfReader("src//ungdung//vidu.pdf");
int n = reader.getNumberOfPages();
int i=0;
byte b[] = null;
Rectangle psize = reader.getPageSize(1);
System.out.println("Tong page"+n);
System.out.println("Vesion:"+reader.getPdfVersion());
System.out.println("FileLength:"+reader.getFileLength());
System.out.println("Height:"+psize.height());
System.out.println("Zight"+psize.width());
System.out.println("Size Pdf:"+reader.getPageSize(n));
System.out.println("Content:"+reader.getPageContent(3));
System.out.println("Permission"+reader.getPermissions());
while(i<n)
{
b=reader.getPageContent(i);
i++;
}
String str=new String(b);
System.out.print(str);
} catch (Exception ex) {
System.out.println("Co loi trong qua trinh doc");
}
}
}
2.Copy một file Pdf này sang file pdf khác
public class copy {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
PdfReader reader = new PdfReader("src//ungdung//vidu.pdf");
int n = reader.getNumberOfPages();

PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("src//ungdung//CopyVidu.pdf"));

int i = 0;

PdfContentByte over;
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);
while (i < n) {
i++;
over = stamp.getOverContent(i);
over.beginText();
over.setFontAndSize(bf, 18);
over.setTextMatrix(30, 30);
over.showText("page " + i);
over.setFontAndSize(bf, 32);
over.showTextAligned(Element.ALIGN_LEFT, "VanThong", 230, 430, 45);
over.endText();
}
stamp.close();
} catch (Exception de) {
de.printStackTrace();
}
}
}
3. Đọc nội dung của một file Pdf
package ungdung;

import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfReader;
public class Write {
public static void main(String[] args) {
System.out.println("");
try {
PdfReader reader = new PdfReader("src//ungdung//vidu.pdf");
int n = reader.getNumberOfPages();
PdfContentByte content;
int i=0;
while(i<n)
{
System.out.print(reader.getPageContent(i));
}
} catch (Exception de) {
de.printStackTrace();
}
}
}
 

tranhuyvc

Administrator
Staff member
21/1/10
6,248
231
63
Ðề: Thao tác với File Pdf trong Java

Hay quá ta, cái này huy cũng chưa biết ! Thanks
 

nopromis

New Member
4/6/10
4
0
0
Ðề: Thao tác với File Pdf trong Java

ban oi cho minh hoi!
Sao minh lam nhu ban huong dan,no khong hien ra chu ma chi hien ra cac ki tu lung tung
Minh muon load file PDF len textArea thi minh phai lam the nao?
Mong ban chi giup!!!