Yorumları: 273
Konuları: 18
Kayıt Tarihi: 11-10-2016
Rep Puanı: 1.302 Programcı
07-09-2024, Saat: 00:12
(Son Düzenleme: 07-09-2024, Saat: 11:09, Düzenleyen: Hayati .
Sebep: İmla
)
C# çözümü işinize yarayacaksa, bir çok tablodan ve parametre/tablo yapısı değişken olan karmaşık bir pdf kalıbı üzerine bir çok dille çokça zaman harcadım, kendi adıma en kusursuz çözümü şöyle elde ettim, kendi projemden düzenleyerek kopyalıyorum.
iTextSharp paketini kurun
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using static PdfHelper;
namespace PdfParser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webView2.CoreWebView2InitializationCompleted += (sender, e) =>
{
webView2.CoreWebView2.DownloadStarting += (s, args) =>
{
// İndirme başladığında indirme panelini temizle
args.Cancel = false;
};
};
}
string klasorYolu = "PDFLER";
public static string PDFtoText(string pdfFilePath)
{
using (PdfReader reader = new PdfReader(pdfFilePath))
{
int pageNumber = 1;
PdfDictionary page = reader.GetPageN(pageNumber);
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string pageText = PdfTextExtractor.GetTextFromPage(reader, pageNumber);
return pageText;
}
}
private async void button1_Click(object sender, EventArgs e)
{
string text;
string pdfDosyaYolu;
pdfDosyaYolu = "uc.pdf";
text = PDFtoText(pdfDosyaYolu);
MessageBox.Show(text);
}
}
}
Buna rağmen bolca regex metotları da yazmam gerekti, mutlaka daha iyi çözümler vardır.
Yorumları: 1.898
Konuları: 22
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 21.184 Üstad
07-09-2024, Saat: 10:51
(Son Düzenleme: 07-09-2024, Saat: 11:03, Düzenleyen: mrmarman .)
Merak edip Adobe API'lerini bir test edeyim dedim.
(örnek PDF'ler ve onların metin çıktılarını bu mesaj ekine bırakıyorum)
Word Dosya üretilip bir adet SaveToPDF yapıldı bir adet de PrintToPDF yapılarak iki farklı PDF dosya üretildi. Adobe gönderdiğiniz pdf'leri (1) günlük süreli dosya konumuna alıyor ve oradan işlem yapıyor. ertesi gün siliniyormuş.
C# ve Python örnekleriniz yerel çözümler ürettiği için (öyle görünüyor) mümkünse öncelikle yerel çözümlerin tercih edilmesini öneririm.
SaveAsPDF olanı ile
PrintToPDF olanında üretilen JSON'lar benzeri şekilde oldu. Bu mesaj ekinden indirip inceleyebilirsiniz. Standart dışı yazı tipi vs. TR harf sorunu olur mu bilemiyorum ayrıca denemek lazım.
File: C:\ARMAN.Study\Belgelerim\_ProgramSource\_AR-GE\VCL_AdobeAPI\Win32\Debug\Sample\TR_SaveAsPDF.pdf
urn:aaid:AS:EW1:f2bb92c4-751c-4b13-b662-eae5c3a960c3
https://pdf-services-ew1.adobe.io/operation/extractpdf/7WCC5lgKh1bdLpM5MgNldkHtXejpgBC5/status
{
"status": "in progress"
}
AssetId : urn:aaid:AS:EW1:ffcb5bb2-1f4a-48af-b2d9-824372c61ba2
MetaData: {"type":"application\/json","size":29574}
Content :
https://dcplatformstorageservice-prod-eu-west-1.s3.amazonaws.com/704285bfba4c4881a60baf4ac97e5511_25431D5D66DA91590A495E2D%40techacct.adobe.com/e2cbb132-0458-4487-8eda-45522598d130?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSJIMEYCIQC%2Fni50SHikLPdSudaHbvkngA5oCrY67P0MNmBwj4O7XwIhALyDbZncesJcj73PlrRrbqPoj%2BW0IOPYqYgq5iQ3XmWCKqsFCCgQABoMNDIwNTMzNDQ1OTgyIgxVyp0VX3yTIjM3z0sqiAUJZdSztCxF6u2wTipvKKWn6MfQcG%2BW8p%2BswyZYZZDzV4Nv4sehAMSVcWJOKHmleMwL%2FFPxntsUs5szjekla54baIYVkvoPpvCTWmpcAEuHdaRSqEuaLvoqTu4KejIgG56EEwSnfLPqSjDWyAdx9ufUw85LmuzN24HvIxfJF7c%2BhHHUB3dL7lsxINxOQ7Ad%2FQDoqcFoH%2FfHbEaylfmXnGDMSyyPr49Wl0f1fagRHs6rNKCcy2gFpmhX5dRUpD7w2PkvuT%2F0Xx5LwuWL8aYSCZSn7y7aOEwIeHqjOz3wXb2xp5g5WSFO8agvpUO8Ojqe3z%2BDCbO7AKQAZSMovnb%2B%2F2sunyUMMqMDUlFhpSNuV7QJ4%2FokC4Qtp1uOtmcvHbA3WUlLXk%2B5smKZHGDpOHxd%2F3lfUAYv94NVzJzYFDmGpA35z9dsKtIosP7EqaWZOaBKqnw0ZYPRRLMUHgwuFbVeJjovGiMyVYO1V%2BDFXLYemKorK7Vm7nR0UD8GKUjKE2htZjMyq%2Foo1zzr9CgZNm5hoQiCHeLwvtSOYSrayqCe1V3xQ19RVfTsG3CUtQrIqJV2S%2FxWzFkneZCtZtJR0xgrgNZKpdAOc9KJVvVU2BYktILurycLcoHXCwntRW0rEWiagV284X0uhWR5kKM8s2sicoew%2BHNL5EZ2MHAkCsKHjErhABvJqNEaU7L%2FDMISorljhMNw%2BxKCTrmeGCq4SlUVE70oz6CP0aLBw084XNhrLkR8xGNSLPuZjTmiEiKFo28V44OG1Dz6H%2F0WihV5%2FlILK9auV63qJd0ixsAzjwaHOEbLLKbJsQV8IXxuX8ZLyvetbMZ%2Fgh9TMktBNr7rB8q8%2Bsgc0JVvvY1%2BEjkwu%2FjvtgY6qAEjncEWc55W87NtTyoBraiqgeQmGzZEVjkuC4JW%2BCeQoq2giEU%2BDI44Wf3oXB9sox%2BnJOHOE%2FbxxEhbVXL1Ls6pROGdfX9geg33KqSvWLdglg9dNMmz989kMdspbY%2BShARDovmva1h50%2FMc7i6RILCdu%2FZW5neNkTMEdcJ%2F53s7MRDbVNQofysJoxcXzBT6uQQjkSxc9vA70Ys5pokbwosvY2C%2FSDIQ9QM%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240907T072629Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=ASIAWD2N7EVPNLF5H65Q%2F20240907%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Signature=4aa610f26e5d4b01700a4920b15f49d3720d500f952b187e214a96491358e39b
AssetId : urn:aaid:AS:EW1:a0797fec-cc8e-4e3c-a1b7-dd3a6c9cc0a4
metadata: {"type":"application\/zip","size":8256}
Resource :
https://dcplatformstorageservice-prod-eu-west-1.s3.amazonaws.com/704285bfba4c4881a60baf4ac97e5511_25431D5D66DA91590A495E2D%40techacct.adobe.com/fb457a3b-6cdb-4464-9129-0dac9ff19769?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSJIMEYCIQC%2Fni50SHikLPdSudaHbvkngA5oCrY67P0MNmBwj4O7XwIhALyDbZncesJcj73PlrRrbqPoj%2BW0IOPYqYgq5iQ3XmWCKqsFCCgQABoMNDIwNTMzNDQ1OTgyIgxVyp0VX3yTIjM3z0sqiAUJZdSztCxF6u2wTipvKKWn6MfQcG%2BW8p%2BswyZYZZDzV4Nv4sehAMSVcWJOKHmleMwL%2FFPxntsUs5szjekla54baIYVkvoPpvCTWmpcAEuHdaRSqEuaLvoqTu4KejIgG56EEwSnfLPqSjDWyAdx9ufUw85LmuzN24HvIxfJF7c%2BhHHUB3dL7lsxINxOQ7Ad%2FQDoqcFoH%2FfHbEaylfmXnGDMSyyPr49Wl0f1fagRHs6rNKCcy2gFpmhX5dRUpD7w2PkvuT%2F0Xx5LwuWL8aYSCZSn7y7aOEwIeHqjOz3wXb2xp5g5WSFO8agvpUO8Ojqe3z%2BDCbO7AKQAZSMovnb%2B%2F2sunyUMMqMDUlFhpSNuV7QJ4%2FokC4Qtp1uOtmcvHbA3WUlLXk%2B5smKZHGDpOHxd%2F3lfUAYv94NVzJzYFDmGpA35z9dsKtIosP7EqaWZOaBKqnw0ZYPRRLMUHgwuFbVeJjovGiMyVYO1V%2BDFXLYemKorK7Vm7nR0UD8GKUjKE2htZjMyq%2Foo1zzr9CgZNm5hoQiCHeLwvtSOYSrayqCe1V3xQ19RVfTsG3CUtQrIqJV2S%2FxWzFkneZCtZtJR0xgrgNZKpdAOc9KJVvVU2BYktILurycLcoHXCwntRW0rEWiagV284X0uhWR5kKM8s2sicoew%2BHNL5EZ2MHAkCsKHjErhABvJqNEaU7L%2FDMISorljhMNw%2BxKCTrmeGCq4SlUVE70oz6CP0aLBw084XNhrLkR8xGNSLPuZjTmiEiKFo28V44OG1Dz6H%2F0WihV5%2FlILK9auV63qJd0ixsAzjwaHOEbLLKbJsQV8IXxuX8ZLyvetbMZ%2Fgh9TMktBNr7rB8q8%2Bsgc0JVvvY1%2BEjkwu%2FjvtgY6qAEjncEWc55W87NtTyoBraiqgeQmGzZEVjkuC4JW%2BCeQoq2giEU%2BDI44Wf3oXB9sox%2BnJOHOE%2FbxxEhbVXL1Ls6pROGdfX9geg33KqSvWLdglg9dNMmz989kMdspbY%2BShARDovmva1h50%2FMc7i6RILCdu%2FZW5neNkTMEdcJ%2F53s7MRDbVNQofysJoxcXzBT6uQQjkSxc9vA70Ys5pokbwosvY2C%2FSDIQ9QM%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240907T072628Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3599&X-Amz-Credential=ASIAWD2N7EVPNLF5H65Q%2F20240907%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Signature=e4e86eb02bf5370cd3925f78711d70387a84c029ada6b93add802b1195734aeb
{
"version": {
"json_export": "203",
"page_segmentation": "5",
"schema": "1.1.0",
"structure": "1.1099.0",
"table_structure": "5"
},
"extended_metadata": {
"ID_instance": "C9 FC 35 85 C5 BA B2 11 0A 00 67 45 8B 6B C6 23 ",
"ID_permanent": "45 37 20 37 32 20 33 33 20 38 35 20 43 35 20 42 41 20 42 32 20 31 31 20 30 41 20 30 30 20 36 37 20 34 35 20 38 42 20 36 42 20 43 36 20 32 33 20 ",
"has_acroform": false,
"has_embedded_files": false,
"is_XFA": false,
"is_certified": false,
"is_encrypted": false,
"is_digitally_signed": false,
"language": "tr",
"page_count": 1,
"pdf_version": "1.6",
"pdfa_compliance_level": "",
"pdfua_compliance_level": ""
},
"elements": [
{
"Bounds": [
76.58399963378906,
576.3399963378906,
395.0777893066406,
770.1139221191406
],
"ObjectID": 159,
"Page": 0,
"Path": "\/\/Document\/Sect\/Table",
"attributes": {
"BBox": [
71.03709999999774,
590.0499999999884,
259.6689999999944,
771.4829999999783
],
"NumCol": 2,
"NumRow": 14,
"Placement": "Block",
"SpaceAfter": 11.25
},
"filePaths": [
"tables\/fileoutpart0.xlsx"
]
},
{
"Bounds": [
76.58399963378906,
757.4400024414062,
118.62393188476562,
770.1139221191406
],
"ObjectID": 270,
"Page": 0,
"Path": "\/\/Document\/Sect\/Table\/TR\/TD",
"attributes": {
"BBox": [
70.79709999999977,
756.8429999999935,
259.6689999999944,
770.7629999999772
],
"BlockAlign": "Middle",
"ColIndex": 0,
"Height": 13.875,
"InlineAlign": "Start",
"RowIndex": 0,
"Width": 188.875
}
},
{
"Bounds": [
76.58399963378906,
757.4400024414062,
118.62393188476562,
770.1139221191406
],
"Font": {
"alt_family_name": "Calibri",
"embedded": true,
"encoding": "Identity-H",
"family_name": "Calibri",
"font_type": "CIDFontType2",
"italic": false,
"monospaced": false,
"name": "BCDEEE+Calibri",
"subset": true,
"weight": 400
},
"HasClip": true,
"ObjectID": 123,
"Page": 0,
"Path": "\/\/Document\/Sect\/Table\/TR\/TD\/P",
"Text": "SATIR-01 ",
"TextSize": 11.039993286132812,
"attributes": {
"LineHeight": 13.25
}
},
....
....
....
uzun bir json içerik olduğundan seçilen içeriği aşağıda vereyim
]
}
"Text": "SATIR-01 ",
"Text": "ĞĞĞĞĞĞĞĞĞĞĞĞĞĞĞĞĞĞ ",
"Text": "SATIR-02 ",
"Text": "ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ",
"Text": "SATIR-03 ",
"Text": "ŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞŞ ",
"Text": "SATIR-04 ",
"Text": "İİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİ ",
"Text": "SATIR-05 ",
"Text": "ÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ ",
"Text": "SATIR-06 ",
"Text": "ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ ",
"Text": "SATIR-07 ",
"Text": "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ",
"Text": "SATIR-08 ",
"Text": "ğğğğğğğğğğğğğğğğğğğğğğğ ",
"Text": "SATIR-09 ",
"Text": "üüüüüüüüüüüüüüüüüüüüü ",
"Text": "SATIR-10 ",
"Text": "şşşşşşşşşşşşşşşşşşşşşşşşşşşş ",
"Text": "SATIR-11 ",
"Text": "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ",
"Text": "SATIR-12 ",
"Text": "ööööööööööööööööööööö ",
"Text": "SATIR-13 ",
"Text": "çççççççççççççççççççççççççç ",
"Text": "SATIR-14 ",
"Text": "ıııııııııııııııııııııııııııııııııııııııııııııııı ",
Ek Dosyalar
Sample.zip (Dosya Boyutu: 268,89 KB / İndirme Sayısı: 7)
Saygılarımla
Muharrem ARMAN