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

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
Merhaba,

14.340 adet tek sayfadan oluşan PDF dosyalarımız bulunmakta, fakat bunların sayfa boyutlarını excel'de toplu olarak görebilir miyim?

Görmem gereken alan;
PDF -> Dosya -> Özellikler -> Açıklama Alanındaki Dosya Adı ve Sayfa Boyutu


Saygılarımla,
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İnceleyiniz.

 

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
Aşağıdaki kod bu işi yapacaktır....

Kodun olduğu Excel dosyasını PDF'lerin olduğu klasöre yerleştirin, sonra "Test" isimli makroyu çalıştırın.....

C#:
Sub Test()
    Dim MyPath As String, MyFile As String
    Dim i As Long
    MyPath = ThisWorkbook.Path
    MyFile = Dir(MyPath & Application.PathSeparator & "*.pdf", vbDirectory)
    Range("A:B").ClearContents
    Range("A1:B1") = Array("File Name", "Pages")
    Range("A1:B1").Font.Bold = True
    i = 1
    Do While MyFile <> ""
        i = i + 1
        Cells(i, 1) = MyFile
        Cells(i, 2) = GetPageSize(MyPath & Application.PathSeparator & MyFile)
        MyFile = Dir
    Loop
    Columns("A:B").AutoFit
    MsgBox "Toplam " & i - 1 & " PDF dosyası bulundu!" & vbCrLf _
           & "Dosya isimleri ve sayfa boyutları " _
           & ActiveSheet.Name & " sayfasına yazıldı...", vbInformation, "Report..."
End Sub
'
Function GetPageSize(PDF_File As String)
'   Haluk 17/09/2021
'   sa4truss@gmail.com
'   https://excelhaluk.blogspot.com/

    Dim FileNum As Long
    Dim strRetVal As String
    Dim RegExp As Object, temp As String
    
    Set RegExp = CreateObject("VBscript.RegExp")
    RegExp.Global = False
    
'    RegExp.Pattern = "(MediaBox|BBox|CropBox)\[([^\]\[]+)\]"
    RegExp.Pattern = "(MediaBox\[)([^\]\[]+)\]"
    
    FileNum = FreeFile
    Open PDF_File For Binary As #FileNum
        strRetVal = Space(LOF(FileNum))
        Get #FileNum, , strRetVal
    Close #FileNum
    
    
    If RegExp.Test(strRetVal) = True Then
        temp = Trim(RegExp.Execute(strRetVal)(0).SubMatches(1))
        GetPageSize = Round(Val(Split(temp, " ")(2)) / 72 * 2.54, 0) & " cm X " & Round(Val(Split(temp, " ")(3)) / 72 * 2.54, 0) & " cm"
    Else
        GetPageSize = "#N/A cm X #N/A cm"
    End If
 End Function





.
 
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
Haluk bey, ben de denedim kodlarınız kendi bilgisayarımda.
Aşağıdaki satırda Invalid procedure call or argument hatası veriyor. Sebebini bulamadım.
Denediğim pdf ler kendi iblgisayarımdaki pdf dosyaları.

temp = Replace(Replace(RegExp.Execute(strRetVal)(0), "MediaBox[", ""), "]", "")


Resimde de görüldüğü üzere pdf özelliklerine bakınca sayfa boyutlarını göremiyorum.
Bendeki pdf lerin sayfa sayısı, sayfa boyutu, Klasör Yolunu, Dosya Boyutu özelliklerini nasıl alabilirim ?

230159
 

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
Ö. Faruk Bey, Windows7'de sayfa sayısını ben de özellikler penceresinden göremediğim için VBA ile çözüm yolu geliştirdim.

Benim bilgisayarda kod çalışıyor, sizde hata veren PDF'leri buraya eklerseniz üzerinde deneme yapayım ben de....

.
 

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
Valla bende çalışıyor....

3 No'lu mesajdaki kodda bir geliştirme yapmıştım, tekrar deneseniz ?

Fiziki olarak da ölçtüm, sizin PDF'in sayfa genişliği 21 cm.


Capture.PNG
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Win10 la ilgili bir durum o zaman. Ben halen göremiyorum.
 

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
VBA editörde "Missing Reference" varsa, bazen öyle şeyler olabiliyor...

.
 

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 ;

3 No'lu mesajdaki kodu revize ettim, tekrar deneyebilir misiniz?

.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Kodları denedim değişen bir şey yok.
"Missing Reference" hatası görülmüyor.
Yinede sizdeki Referensların görüntüsü paylaşırmısınız.
 

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
Ekstra hiçbir referans yok ...

Sizde hata mesajı yine aynısı mı?



Capture.PNG
.
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba,
Haluk bey sanırım sayfa sayısı 2 ve üzeri olunca o hatayı veriyor.
 

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
Necati Bey; 1 sayfada olsa, 75 sayfa da olsa bende çalışıyor.....

Sizde de çalışmadı mı?

.
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
Bir sayfalı dosyada çalışıyor. Çok sayfalıda aynı hatayı veriyor. Çok sayfalının ilk sayfasını dışarı alıp onun üzerinde denedim, çalıştı.
 

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
İlginç doğrusu..... bende hiç problem olmazken sizde nasıl oluyor anlamadım.

Aklıma gelen tek şey; Windows sistem ayarları..... Bende Windows ve bütün programlar İngilizce. Lokal olarak "Türkiye", saat biçimi, ondalık ayraçlar vs. de "Türkiye" için.

Bir de şunu yapabilirmisiniz? VBA kodunun yaptığını manuel yapalım.....

Sorunlu olduğunu söylediğiniz PDF dosyalarından birinin uzantısını "pdf" yerine "txt" yapın ve Notepad ile açın. Sonra, "Find" (Bul) komutuyla "MediaBox" kelimesini aratıp, aşağıdaki resimde belirtilen yeri bulduktan sonra ekran görüntüsünü paylaşırmısınız?





.
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
Sayfa sayısı tek olan ve çok olan başka dosyalarda da deneme yaptım. Problem sayfa sayısı değilmiş.
 

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
Necati Bey, sorunlu dosyaların birinde 16 No'lu mesajda dediğimi yapabilir misiniz?

.
 

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
Peki, çalıştığını söylediğiniz PDF de dener misiniz?

.
 
Üst