- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Vui lòng gợi ý cho tôi một số thư viện có thể giúp tôi in các tệp PDF chứa hình ảnh được mã hóa JBIG2. Trình kết xuất PDF
,Hộp PDF
Không giúp được gì cho tôi. Các thư viện này có thể in các tệp PDF đơn giản, nhưng không thể in các tệp PDF chứa hình ảnh JBIG2. Trình kết xuất PDF
Đã thử sửa nó (theo vấn đề lỗi trên trình theo dõi lỗi của PDFRedndrer), nhưng vẫn còn một số trang (đặc biệt là những trang có mã vạch) mà tôi không muốn in.
P.S. Tôi sử dụng nó trong một chương trình nhỏ javax.print
API
Cảm ơn!
gia hạn: Tôi cũng đã thử ICEPdf, nhưng tôi không muốn làm việc.
Tôi đi đến kết luận rằng tất cả các thư viện này (PDFRenderer, ICEPdf, PDFBox) đều sử dụng JPedal
bộ giải mã jbig2 .Lỗi (một số trang không in được) xuất phát từ thư viện giải mã này. Các phiên bản mã nguồn mở của codec này (dành cho PDFRenderer, ICEPdf, PDFBox) không còn được hỗ trợ nữa, nhưng JPedal
Có một nhánh thương mại mới của dự án và họ viết rằng lỗi đã được sửa trong phiên bản thương mại mới, có giá 9000 USD.
Có ý tưởng gì không?
更新 2: Hôm qua tôi đã cố gắng thay thế Thư viện miễn phí của JPedalvới nguồn mở khác jbig2-imageio
thư viện. Nhưng tôi không nhận được kết quả thành công nào, vì vậy tôi đã tìm kiếm trên trang dự án của họ (diễn đàn của google-code - đây) đã tạo một chủ đề mới trên. Bất kỳ trợ giúp sẽ được đánh giá rất cao.
tôi vẫn ở đây Hộp PDF của Apache
Tìm thấy một số cuộc thảo luận hữu ích về trình theo dõi lỗi:đâyVà đây .
câu trả lời hay nhất
thông qua bạn trong ừm Các ý kiến trong câu trả lời viz. "Nhưng tôi có thể sử dụng thư viện nào để trích xuất hình ảnh và (quan trọng hơn) đưa chúng trở lại định dạng PDF?"
Đây là một minh chứng đơn giản
1) Trích xuấtjbig2
Hoặc bạn có thể nóipdf
Tất cả hình ảnh ở định dạng .
2) sẽ jbig2
Chuyển đổi hình ảnh sang bất kỳ định dạng nào khác, trong trường hợp của tôi là jpeg
.
3) Tạo một gói chứajpeg
的新pdf
.
Sử dụng thư viện jbig2-imageioVà văn bản .
Trong ví dụ dưới đây, hãy thay đổitài nguyênVàđường dẫn thư mục.
Để làm điều này, tôi phải xem qua một số tài nguyên mà tôi sẽ đính kèm ở cuối. Hy vọng điều này sẽ giúp.
nhập com.itextpdf.text.Document;
nhập com.itextpdf.text.Image;
nhập com.itextpdf.text.pdf.PdfPCell;
nhập com.itextpdf.text.pdf.PdfPTable;
nhập com.itextpdf.text.pdf.PdfReader;
nhập com.itextpdf.text.pdf.PdfWriter;
nhập com.itextpdf.text.pdf.parser.*;
nhập com.levigo.jbig2.JBIG2ImageReader;
nhập com.levigo.jbig2.JBIG2ImageReaderSpi;
nhập com.levigo.jbig2.JBIG2ReadParam;
nhập com.levigo.jbig2.io.DefaultInputStreamFactory;
nhập java.awt.image.BufferedImage;
nhập java.io.*;
nhập javax.imageio.ImageIO;
nhập javax.imageio.stream.ImageInputStream;
lớp công khai JBig2Image {
đường dẫn tệp chuỗi riêng tư;
hình ảnh int riêng tư Index;
công khai JBig2Image() {
this.filepath = "/home/blackadmin/Desktop/pdf/demo18.jbig2";
this.imageIndex = 0;
extractImgFromPdf();
ConvertJBig2ToJpeg();
createPDF();
}
trích xuất khoảng trống riêng tưImgFromPdf() {
thử {
/////////// Trích xuất tất cả hình ảnh từ pdf //////////////////////////
Trình đọc PdfReader = PdfReader mới("/home/blackadmin/Desktop/pdf/orig.pdf");
Trình phân tích cú pháp PdfReaderContentParser = new PdfReaderContentParser(reader);
MyImageRenderListener listen = new MyImageRenderListener("/home/blackadmin/Desktop/pdf/demo%s.%s");
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
trình phân tích cú pháp.processContent(i, người nghe);
}
} bắt (IOException cũ) {
System.out.println(ex);
}
}
khoảng trống riêng tư chuyển đổiJBig2ToJpeg() {
InputStream inputStream = null;
thử {
///////// Đọc hình ảnh jbig2 ///////////////////////////////////////////////////// // //
inputStream = FileInputStream mới (Tệp mới (đường dẫn tệp));
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream imageInputStream = disf.getInputStream(inputStream);
JBIG2ImageReader imageReader = JBIG2ImageReader mới(JBIG2ImageReaderSpi mới());
imageReader.setInput(imageInputStream);
JBIG2ReadParam param = imageReader.getDefaultReadParam();
BufferedImage bufferedImage = imageReader.read(imageIndex, param);
////////// jbig2 sang jpeg //////////////////////////////////////////////////// /// //////
ImageIO.write(bufferedImage, "jpeg", Tệp mới ("/home/blackadmin/Desktop/pdf/demo18.jpeg"));
} bắt (IOException cũ) {
System.out.println(ex);
} finally {
thử {
inputStream.close();
} bắt (IOException cũ) {
System.out.println(ex);
}
}
}
khoảng trống công khai createPDF() {
Tài liệu tài liệu = Tài liệu mới();
thử {
PdfWriter.getInstance(tài liệu,
FileOutputStream mới ("/home/blackadmin/Desktop/pdf/output.pdf"));
tài liệu.open();
Bảng PdfPTable = cột PdfPTable mới (1); //1.
Hình ảnh = Image.getInstance("/home/blackadmin/Desktop/pdf/demo18.jpeg");
image.scaleToFit(800f, 600f);
image.scaleAbsolute(800f, 600f); // Cung cấp kích thước hình ảnh bạn muốn in trên pdf
PdfPCell lồngImgCell = PdfPCell mới (hình ảnh);
bảng.addCell(nestedImgCell);
document.add(bảng);
document.close();
System.out.println(
"======== PDF được tạo thành công ==========");
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) ném IOException {
JBig2Image mới();
}
}
lớp MyImageRenderListener triển khai RenderListener {
/**
* Tài liệu mới mà chúng tôi đã thêm hình chữ nhật có viền.
*/
đường dẫn chuỗi được bảo vệ = "";
/**
* Tạo một RenderListener để tìm kiếm hình ảnh.
*/
công khai MyImageRenderListener (Đường dẫn chuỗi) {
this.path = đường dẫn;
}
/**
* @xem com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock()
*/
khoảng trống công khai BeginTextBlock() {
}
/**
* @xem com.itextpdf.text.pdf.parser.RenderListener#endTextBlock()
*/
khoảng trống công khai endTextBlock() {
}
/**
* @xem com.itextpdf.text.pdf.parser.RenderListener#renderImage(
* com.itextpdf.text.pdf.parser.ImageRenderInfo)
*/
public void renderImage(ImageRenderInfo renderInfo) {
thử {
Tên tệp chuỗi;
Hệ điều hành FileOutputStream;
Hình ảnh PdfImageObject = renderInfo.getImage();
nếu (hình ảnh == null) {
return;
}
tên tệp = String.format(path, renderInfo.getRef().getNumber(), image.getFileType());
os = FileOutputStream mới (tên tệp);
os.write(image.getImageAsBytes());
os.flush();
os.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
/**
* @xem com.itextpdf.text.pdf.parser.RenderListener#renderText(
* com.itextpdf.text.pdf.parser.TextRenderInfo)
*/
public void renderText(TextRenderInfo renderInfo) {
}
}
引用资料:
1) từ pdf
( trích xuất hình ảnh ) ( Trình nghe MyImageRender ) được chiết xuất từ jbig2
.
2) Chuyển đổijbig2
(JBIG2ImageReaderDemo)
Về java - in PDF chứa hình ảnh JBIG2, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/12056315/
Có cách nào tốt hơn để xuất dữ liệu sang trang html bằng PHP không? Nếu tôi muốn tạo một div với một số var trong php, tôi sẽ viết một cái gì đó như print (''.$var.''); hoặc echo "''.$v
Tôi có thể sử dụng java awt print để in tài liệu/tệp thay vì sử dụng javax print không? Tôi thấy rằng trong java awt print có một tùy chọn sử dụng AttributionString để in nội dung
Hiện tại tôi chạy tập lệnh R thông qua: R --slave đối số1 đối số2 ... Tôi muốn biết các phương pháp hay nhất trong R về cách thoát tập lệnh có cảnh báo, liệu q() có làm được điều này không? nếu (! tập tin.
Ai có thể cho tôi biết cách viết chương trình in c khi được biên dịch bằng gcc và c++ khi được biên dịch bằng g++? Câu trả lời hay nhất #ifdef __cplusplus printf("c++\n");
Tôi cần hỗ trợ in trên thiết bị KitKat nhưng SDK mục tiêu của tôi là 13 (không thể thay đổi). Cụ thể là tôi cần in một lượt xem web. Đây là API để in chế độ xem web: http://developer
Tôi đang cố gắng tạo một hàm đơn giản trong đó python sẽ tính tuổi dựa trên dữ liệu nhập năm của bạn. Tôi đã thử một số phương pháp nhưng tôi không gặp may mắn. P.S. Xin lỗi, tôi là người mới. ame = input("Nhập n của bạn
JavaFX 2.0 có hỗ trợ in không? Tôi có một vùng văn bản nơi tôi lấy văn bản và sau đó tôi muốn in nó, nhưng dường như không có chức năng nào cho việc này. Tất nhiên, tôi đang nói về việc in ra máy in ở đây. :) Câu trả lời hay nhất chưa được hỗ trợ. Để giải quyết vấn đề này, bạn có thể sử dụng Ja
Tôi đang cố gắng tìm hiểu ý nghĩa của printOn. Tôi đã xem xét một số lớp triển khai nó và có vẻ như nó chỉ giúp in các đơn vị in thuộc các loại dữ liệu khác nhau. Điều này có chính xác không? Nếu vậy, có ai có thể chỉ cho tôi hướng đi đúng về cách triển khai điều này cho lớp học của riêng tôi không? Tôi sẽ làm khi có thể
Tôi không thể tải IE để in Canvas của mình (được tạo bằng excanvas)...Tôi đang sử dụng phiên bản excanvas mới nhất. http://dl.dropbox.com/u/997831/canvas.ht
Tôi đã tìm kiếm rất nhiều nhưng không ai trả lời câu hỏi của tôi, tôi đọc được rằng việc sử dụng cout trong trình xử lý tín hiệu như thế này là không an toàn: void ctrlZHandler(int sig_num) { //SIGTSTP-18
Tôi quan tâm đến việc in một loạt các truy vấn. Tôi có đoạn mã sau. bắt đầu = datetime.datetime(2012, 2, 2, 6, 35, 6, 764) kết thúc = datetime.datetime(201
lớp công khai javaClass { public static void main(String [] arg) { String row1 = "A____A"
Tôi cần một lệnh ghi dòng trước đó, như print() không có\n. Đây là một số mã mẫu: a=0 print("Random string value") if a==0: print_to_prev
Tôi có một ứng dụng iOS cũ sử dụng UIKit và Objective C mà tôi hiện đang chuyển sang SwiftUI và Swift. Mọi thứ đang diễn ra tuyệt vời, tôi yêu Swift và SwiftUI. Ứng dụng này có
Tôi đã tạo một hàm tính tổng lấy số bắt đầu và số kết thúc rồi trả về kết quả tổng giữa hai điểm đó def print_sum_equations(start_number,end_number):
Trong Perl 6, sự khác biệt giữa in và ? , đặt và nói ? Làm thế nào tôi có thể thấy in 5 khác nhau, nhưng đặt 5 và nói 5 trông giống nhau. Câu trả lời hay nhất đặt $a giống như in $a.Str
Tôi đang sử dụng thư viện getOrgChart từ đây và tôi đang cố in toàn bộ biểu đồ chứ không chỉ phần hiển thị. Thật không may khi sử dụng chức năng in thư viện chuẩn nó chỉ in ra phần đầu tiên và tôi không biết cách in toàn bộ biểu đồ (biểu đồ khá rộng và lớn).
Tôi đã tạo Chế độ xem hoàn hảo cho các trang A4. Bây giờ tôi muốn in nó. Lưu ý rằng tôi không sử dụng drawRect hoặc bất kỳ thứ gì tương tự, chỉ là Chế độ xem bình thường với chế độ xem phụ và nhãn văn bản. Vấn đề của tôi là, tôi có Chế độ xem này
Vì Cocoa-Java không được dùng nữa nên tôi đang di chuyển mã Cocoa-Java của mình sang Cocoa + JNI. Mã này in hình ảnh được lưu trữ trong tập tin. Mã Cocoa mới về cơ bản là: NSImage *image =
Câu hỏi này đã có câu trả lời: In TDBGrid (4 câu trả lời) Đã đóng 6 năm trước. Làm cách nào để in DBGrid mà không cần cài đặt hoặc tải xuống các thành phần? Hoặc cách đưa dữ liệu DBGrid vào RichE
Tôi là một lập trình viên xuất sắc, rất giỏi!