Я пытаюсь удалить QR-код с каждой страницы с помощью iText7, но он искажает все остальные текстовые значения и компоненты страницы. Есть ли способ сделать это правильно? Ниже приведен код, который я использую:
LoopStarts{
PdfPage page = pdfDoc.getPage(i);
PdfDictionary resources = page.getResources().getPdfObject();
// Retrieve all image objects on the page
PdfDictionary xObjects = resources.getAsDictionary(PdfName.XObject);
if (xObjects != null) {
for (PdfName name : xObjects.keySet()) {
PdfObject obj = xObjects.get(name);
if (obj instanceof PdfStream) {
PdfStream stream = (PdfStream) obj;
PdfImageXObject image = new PdfImageXObject(stream);
// Get the width and height from the image dictionary
float width = image.getWidth();
float height = image.getHeight();
// Check if the image dimensions match those of a typical QR code
if (isLikelyQRCode(width, height)) {
// Clear image content to effectively remove it
stream.clear();
}
}
}
}
LoopEnds}
// Method to determine if an image matches the typical size of a QR code
`private static boolean isLikelyQRCode(float width, float height) {
// QR codes are typically square or nearly square
return width >= 50f && width = 50f && height
Подробнее здесь: [url]https://stackoverflow.com/questions/79129253/is-there-a-way-to-remove-only-qr-codes-from-each-page-of-a-pdf-using-itext7[/url]
Я пытаюсь удалить QR-код с каждой страницы с помощью iText7, но он искажает все остальные текстовые значения и компоненты страницы. Есть ли способ сделать это правильно? Ниже приведен код, который я использую: [code]LoopStarts{
// Retrieve all image objects on the page PdfDictionary xObjects = resources.getAsDictionary(PdfName.XObject); if (xObjects != null) { for (PdfName name : xObjects.keySet()) { PdfObject obj = xObjects.get(name); if (obj instanceof PdfStream) { PdfStream stream = (PdfStream) obj; PdfImageXObject image = new PdfImageXObject(stream);
// Get the width and height from the image dictionary float width = image.getWidth(); float height = image.getHeight();
// Check if the image dimensions match those of a typical QR code if (isLikelyQRCode(width, height)) { // Clear image content to effectively remove it stream.clear(); } } } }
LoopEnds}
// Method to determine if an image matches the typical size of a QR code `private static boolean isLikelyQRCode(float width, float height) { // QR codes are typically square or nearly square return width >= 50f && width = 50f && height
Я использую PDF-файл с несколькими страницами, в котором поверх каждой страницы есть таблица, от которой я хочу избавиться. Поэтому я обрезаю PDF-файл после верхней таблицы.
Я не знаю, как объединить или сохранить его как один PDF-файл после...
Я использую PDF-файл с несколькими страницами, в котором поверх каждой страницы есть таблица, от которой я хочу избавиться. Поэтому я обрезаю PDF-файл после верхней таблицы.
Я не знаю, как объединить или сохранить его как один PDF-файл после...
Я использую PDF-файл с несколькими страницами, в котором поверх каждой страницы есть таблица, от которой я хочу избавиться. Поэтому я обрезаю PDF-файл после верхней таблицы.
Я не знаю, как объединить или сохранить его как один PDF-файл после...
Я использую PDF-файл с несколькими страницами, в котором поверх каждой страницы есть таблица, от которой я хочу избавиться. Поэтому я обрезаю PDF-файл после верхней таблицы.
Я не знаю, как объединить или сохранить его как один PDF-файл после...
Я хочу удалить все короткие горизонтальные строки из файла PDF. Образец PDF:
string outputPath = output.pdf ;
using (PdfWriter writer = new PdfWriter(outputPath))
using (PdfDocument pdfDoc = new PdfDocument(writer))
{...