Tôi có một trang web nơi người dùng tải lên ảnh và tạo sách ảnh. Ngoài ra, họ có thể thêm văn bản ở vị trí tuyệt đối, xoay và sắp xếp. Văn bản có thể có các dòng mới.Xoay các đoạn hoặc ô một số số độ tùy ý - Itext
Tôi đã sử dụng Thư viện nội dung để tự động hóa việc tạo Sách ảnh chất lượng cao Pdfs được in sau này.
Việc thêm hình ảnh do người dùng tải lên tệp PDF thực sự đơn giản, sự cố xảy ra khi tôi cố gắng thêm văn bản. Về lý thuyết điều tôi cần làm là xác định một đoạn của một số chiều rộng và chiều cao được xác định, đặt văn bản người dùng, phông chữ, kiểu phông chữ, căn chỉnh (giữa, trái, phải, biện minh) và cuối cùng đặt Vòng xoay.
Đối với những gì tôi đã đọc về Itext, tôi có thể tạo một đoạn đặt thuộc tính người dùng và sử dụng đối tượng ColumnText để đặt vị trí tuyệt đối, chiều rộng và chiều cao. Tuy nhiên nó không thể thiết lập vòng quay của bất cứ thứ gì lớn hơn một dòng.
tôi không thể sử dụng tế bào bảng hoặc, bởi vì phương pháp luân chuyển chỉ cho phép độ đó là bội số của 90.
Có cách nào để thêm một đoạn văn với một số vòng quay (nói 20 độ) mà không cần phải thêm dòng văn bản theo dòng sử dụng phương pháp ColumnText.showTextAligned()
và tất cả các phép toán liên quan đến?
---- Edit: 08-trước năm 2013 ----
Nếu nó giúp mọi người, đây là đoạn code tôi sử dụng để giải quyết vấn đề này (nhờ Bruno):
//Create the template that will contain the text
PdfContentByte canvas = pdfWriter.getDirectContent();
PdfTemplate textTemplate = canvas.createTemplate(imgWidth, imgHeight); //The width and height of the text to be inserted
ColumnText columnText = new ColumnText(textTemplate);
columnText.setSimpleColumn(0, 0, imgWidth, imgHeight);
columnText.addElement(paragraph);
columnText.go();
//Create de image wraper for the template
Image textImg = Image.getInstance(textTemplate);
//Asign the dimentions of the image, in this case, the text
textImg.setInterpolation(true);
textImg.scaleAbsolute(imgWidth, imgHeight);
textImg.setRotationDegrees((float) -textComp.getRotation()); //Arbitrary number of degress
textImg.setAbsolutePosition(imgXPos, imgYPos);
//Add the text to the pdf
pdfDocument.add(textImg);
Edited các câu hỏi với các mã tôi sử dụng. – BernalCarlos