PDF -> Dosya -> Özellikler - Veri Çekme Hk.

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@ÖmerFaruk Bey,

Siz 3 No'lu mesajdaki kodu sizin "ABB-Otomasyon-Urunleri-Fiyat-Listesi.pdf" dosyası üzerinde denediğinizde hata alıyorsunuz, değil mi?


.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Evet Haluk Bey.

Bu arada şunu gördüm.
Txt doyasına çevirip açtığımda Txt içinde görünen
MediaBox[ 0 0 595.276 841.89]
VBA kodları içindeki strRetVal değişkeninde görülmüyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Aslında, bunu anlamanın en iyi yolu aşağıdaki kodu çalıştırmanız olacaktır.....

Excel dosyasının olduğu klasörde oluşturulacak "Data.txt" dosyasında, kodlarda dosya yolu belirtilen PDF dosyasının binary kodları yazılacaktır. Bu text dosyasının içinde eğer yine "MediaBox" bulamazsanız, artık benim yapabilecek birşeyim kalmadı demektir....

C#:
Sub Test3()
'   Haluk 19/09/2021
'   sa4truss@gmail.com
'   https://excelhaluk.blogspot.com/

    Dim FSO As Object, objFile As Object
    Dim PDF_File As String, strRetVal As String
    Dim temp As String
 
    Const ForReading = 1
    Const ForWriting = 2
    
    PDF_File = "C:\TestFolder\PDF\ABB-Otomasyon-Urunleri-Fiyat-Listesi.pdf"
 
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = FSO.OpenTextFile(PDF_File, ForReading, False, True)
    strRetVal = StrConv(objFile.ReadAll, vbUnicode)
    
    Set dataFile = FSO.OpenTextFile(ThisWorkbook.Path & "\Data.txt", ForWriting, True, True)
    
    dataFile.WriteLine strRetVal
    
    Set dataFile = Nothing
    Set objFile = Nothing
    Set FSO = Nothing
End Sub
.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Hakkınız helal edin.
Son gönderdiğiniz kodu denedikten sonra txt file oluştu ve strRetVal yazıldı.
Orada sorun görülmeyince, 2 gün önceki ilk dosyayı kontrol ettim.
Kodlar çalıştı.
Ne olduğunu anlamadım ama ilk kodlarınızla bu işlem
Win10 64 Bit ve Office 365 verisyonunda sorunsuz çalışmaktadır.

Bir çok pdf olan klasörde denedim. Sonuç ekteki resimde. Pdf özelliğine göre bazı pdflerden size bilgisi alınamamaktadır. Kodlarınız hata vermeden çalışmaktadır
230192
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Hakkım varsa helal olsun...

Bu arada, içinde gerçekten "MediaBox" gömülü olmayan PDF dosyaları için 40 No'lu mesajda belirttiğim gibi, o dosyaları düzeltmek gerekir.

.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
İkinci pdfi oluştururken kullandığınız pdf düzenleyiciden dolayı mı doğru sonuç alıyorsunuz?

Eğer öyleyse
Biz bu durumda her bir pdf ya da sayfa boyutu belli oluşmayan pdfleri bahsettiğiniz pdf düzenleyici uygulamasında açıp farklı kaydederek kodların çalışmasına devam ettirebiliriz. Diye anlıyorum
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Aynen o şekilde Ö. Faruk Bey,

Sayfa boyutu 3 No'lu mesajdaki kodlarla alınamayan, yani içinde "MediaBox" gömülü olmayan PDF'leri "Chrome" tarayıcıda açıp, aşağıdaki resimde belirttiğim gibi sağ üst köşedeki yazıcı simgesine tıklayıp, yine PDF olarak kaydederek bu işi halledebilirsiniz. Yani "sanal bir PDF yazıcı" kullanarak....

Oluşturulan yeni PDF dosyasını denediğinizde, bu kez sayfa boyutlarını alabileceksiniz.




.
 
Son düzenleme:

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
"Chrome" tarayıcıda açıp, aşağıdaki resimde belirttiğim gibi sağ üst köşedeki yazıcı simgesine tıklayıp,
Bunun kodlarla yapabilmek mümkün müdür?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Muhtemelen; bilgisayara bir sanal yazıcı kurup, VBA ile sözkonusu PDF dosyası bu yazıcıya gönderilip, yine PDF olarak kaydedilebilir.

Denemek gerekir...

.
 

AScru

Altın Üye
Katılım
24 Kasım 2008
Mesajlar
14
Excel Vers. ve Dili
Office2007 Tr
Altın Üyelik Bitiş Tarihi
19-03-2025
Haluk bey değerli vaktinizi ayırdığınız için çok teşekkür ederim. Kodlar sorunsuz çalıştı.
 
Üst