PDF to XML

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
PDF formatında olan dosyayı Inputbox ile seçecek
Sonra kayıt yeri belirleyecek ve isim yazmamıza müsaade edecek. ve XML formatında kayıt edecek vba koduna ihtiyacım var.
Rica etsem yardımcı olabilir 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
XML mi, XLSX veya XLSM mi? Bir yanlışlık olmasın?

.
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Reisim,
firmaların muhasebeci aracılığı ile kesip kuruma gönderdiği PDF
faturaları XML formatına çevirip sisteme yüklememiz lazım. Bu sebeple böyle bir talepte bulundum.
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
XXX nedir bilmem. Ama bilenler var ki gülmüşler. Estağfurullah size kızmadım. Ne olduğunu, neyi temsil ettiğini bilmediğim kendime kızdım.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
XXX nedir bilmem. Ama bilenler var ki gülmüşler. Estağfurullah size kızmadım. Ne olduğunu, neyi temsil ettiğini bilmediğim kendime kızdım.
Çok önemli değil, ufak bir şakaydı sadece ama siz yine de google da xxx falan diye arama yapmayın.

Faturaların xml formatları oto oluşuyor diye biliyorum yani e-faturalarda .. Aslında çok bilgim yok ama dediğim gibiyse size pdf yollarken xml dosyasını da yollayabilirler. Bunun yanında Adobe Acrobat'ta direkt pdf to xml var file menüsünde ama readerda var mı bilmiyorum. Belki seçim yapınca dışarı aktarmada çıkıyor olabilir. Yani vba ile pdf kütüphanleri kullanılabilir. @Zeki Gürsoy üstadın pdf ile ilgili bir çalışması vardı, belki kendisi yardımcı olur ya da en azından fikir verebilir.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
firmaların muhasebeci aracılığı ile kesip kuruma gönderdiği PDF
faturaları XML formatına çevirip sisteme yüklememiz lazım.
Normalde; entegratör yazılımlar faturaları imzalı XML oluşturur, bir şematron dahilinde PDF yazıcısı veya harici kütüphanaler ile görsele dönüşür. Ki, bu şema zaten XML içine gömülüdür. Eğer sisteme yüklenip orada işleniyorsa PDF dosyasından bunu tersine çevirmek çok zor, belki de imkansızıdr.

Bunun tek yolu, karşı taraftan XML dosyasını da talep etmek olacaktır. Hatta sistemden toplu olarak bile çekip gönderebilirler; bunun zahmet çekilecek bir yanı da yok... eğer personel nazlı değilse...

.
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Zeki Abi,
talepte bulunduk aslında dönüş pek iç açısı olmadı. Yine de teşekkür ederim.
Selam ve Dua ile
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
İşte ben de tam olarak bunu demeye çalıştım. Karşı taraf, içinde özel bilgi olmadığı halde devlet sırrı gibi esirgiyor her nedense...
Maalesef PDF > XML olarak da durum iç açıcı değil...

.
 
Katılım
6 Mart 2024
Mesajlar
80
Excel Vers. ve Dili
Excel 2013 TR & Excel 2016 TR
Merhaba,

karşı taraftan XML dosyasını da talep etmek olacaktır
@Zeki Gürsoy dediği gibi en doğrusu bu gözüküyor.

Muhasebeci arkadaşa sordum ( Logo programı için )
fatura oluşturduktan sonra UBL , Pdf, Html formattan herhangi biri ile fatura çıktısı alabiliyormuş
UBL sizin istediğiniz XML formatı

@sirkülasyon şu işlemi bir test edermisiniz.

Manuel olarak

Xml formatına dönüştürmek istediğiniz herhangi bir Pdf dosyasını Microsoft Word ile açıp
Not:
Açılışta Pdf i düzgün görüntülenemiye bilir uyarı penceresi açılırsa
Birdaha göstermeyi tıklayıp
öyle tamam a tıklayınız

sonra direk Farklı kaydetden word XML belgesi olarak kaydedin.

Yeni oluşan XML dosyası İŞE YARAR bir dosyamı yoksa ÇÖP mü kontrol edermisiniz.

Büyük ihtimalle ÇÖP olacak ( w3.org standartlarında XML dosyası istiyorlardır sanırım )

Küçük bir ihtimal İŞE YARAR bir dosya ise

Rich (BB code):
Option Explicit
'Biolight 2024 - Eppur Si Muove

Sub PdfToXmlWithWord()
    Dim PdfSecim As Variant
    Dim filePath As Variant
    Dim fileExistResponse As VbMsgBoxResult
    Dim WordApp As Object
    Dim WordDoc As Object
    Dim folderPath As String
    Dim defaultFileName As String

    ' PDF dosyasını seç
    PdfSecim = Application.GetOpenFilename("PDF dosyalar,*.pdf;*.PDF", , "XML'ye dönüştürmek istediğiniz PDF dosyasını seçiniz.", , False)

    ' Seçmekten vazgeçti, iptal etti mi?
    If PdfSecim <> False Then
        ' Seçilen PDF dosyasının adı ve yolu
        folderPath = Left(PdfSecim, InStrRev(PdfSecim, "\"))
        defaultFileName = Replace(PdfSecim, folderPath, "")
       
        ' BÜYÜK küçük HaRf dUYarSıZ olarak
        ' Dosya uzantısını kontrol et ve uygun şekilde değiştir
        If LCase(Right(defaultFileName, 4)) = ".pdf" Then
            defaultFileName = Replace(defaultFileName, (Right(defaultFileName, 4)), ".xml")
        End If
       
        ' Dosya kaydetme dialogunu varsayılan dosya ismiyle aç
        filePath = Application.GetSaveAsFilename(InitialFileName:=folderPath & defaultFileName, FileFilter:="XML Dosyaları (*.xml), *.xml", Title:="XML dosyası olarak KAYDET")
       
        ' Kullanıcı bir dosya ismi yazıp kaydet tıkladı
        If filePath <> False Then
            ' Eğer dosya adı uzantısız olarak girildiyse, .xml uzantısını ekle
            If Right(filePath, 4) <> ".xml" Then
                filePath = filePath & ".xml"
            End If
           
            ' Dosyanın var olup olmadığını kontrol et
            If Dir(filePath) <> "" Then
                fileExistResponse = MsgBox(filePath & vbCrLf & vbCrLf & "Bu dosya zaten mevcut. Varolan dosya ile değiştirilsin mi?", vbYesNo + vbExclamation, "Dosya Zaten Mevcut")
                If fileExistResponse = vbNo Then
                    MsgBox "İşlem iptal edildi", vbCritical
                    Exit Sub
                End If
            End If
           
            ' Microsoft Word'ü başlat
            On Error Resume Next
            Set WordApp = GetObject(, "Word.Application")
            If Err.Number <> 0 Then
                Set WordApp = CreateObject("Word.Application")
            End If
            On Error GoTo 0

            ' Word görünürlüğünü kapalı yap
            WordApp.Visible = False

            ' PDF dosyasını aç
            Set WordDoc = WordApp.Documents.Open(PdfSecim)

            ' PDF dosyasını XML olarak kaydet
            WordDoc.SaveAs2 filePath, 11 ' 11: wdFormatXML

            ' Word belgesini ve uygulamasını kapat
            WordDoc.Close False
            WordApp.Quit

            ' Temizleme
            Set WordDoc = Nothing
            Set WordApp = Nothing

            ' Dönüşüm başarılı olduysa mesaj göster
            MsgBox filePath & vbCrLf & vbCrLf & " XML dosyanız kaydedilmiştir.", vbInformation, "XML kaydedilmiştir."
            
            ' Yeni XML Dosyasının bulunduğu klasör
            folderPath = Left(filePath, InStrRev(filePath, "\"))

            ' Dosyanın bulunduğu klasörü aç
            Shell "explorer.exe " & folderPath, vbNormalFocus

        Else
            MsgBox "İşlem iptal edildi", vbCritical
            Exit Sub
        End If
       
    Else
        MsgBox "İşlem iptal edildi", vbCritical
        Exit Sub
    End If

End Sub
 
Son düzenleme:

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Masaüstüne XML olarak Kayıt işlemini gerçekleştirdi.
Emeğiniz için, ilginiz için, yardımınızı esirgemediğiniz için size çok çok teşekkür ederim.
 

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
XML olarak kaydedilen dosyanın içeriği yukarıda @Zeki Gürsoy 'un belirttiği formattan daha değişik olacağı için, büyük ihtimalle işe yaramayacaktır.

.
 
Üst