PDF Dosyasından Sadece Sayfayı Makro İle Yazdırmak

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba arkadaşlar. Bir excel Makrosu ile PDF dosyasının sadece 2. sayfasını yazdırmak mümkün mü ?
 

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,406
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba,
işyerindeki kullandığım "atari" de active x objesi yaratılamıyor hatası aldım ama bu alıntı kod işinizi görebilir. Acrobat ili ilgi library referanslarını ekleyip aşağıdaki kodları deneyebilirsiniz. Kırmızı ile belirtilmiş olan bölümlerde ki syntax belirteçlerinde oynayarak sanırım istediğiniz sayfayı basabilirsiniz.

Kod:
Public Sub AcrobatPrint()
    Dim AcroExchApp As Acrobat.CAcroApp
    Dim AcroExchAVDoc As Acrobat.CAcroAVDoc
    Dim AcroExchPDDoc As Acrobat.CAcroPDDoc
    Dim num As Integer
     
    fpath = "c:/test.pdf"
    Set AcroExchApp = CreateObject("AcroExch.App")
    Set AcroExchAVDoc = CreateObject("AcroExch.AVDoc")
' Open the [strfpath] pdf file
    AcroExchAVDoc.Open fpath, ""
' Get the PDDoc associated with the open AVDoc
    Set AcroExchPDDoc = AcroExchAVDoc.GetPDDoc
' Get the number of pages for this pdf [and subtract one as zero based]
    num = 2 'AcroExchPDDoc.GetNumPages - 1
    Call [COLOR=Red]AcroExchAVDoc.PrintPages(0, num, 1, True, True)[/COLOR]
   'AcroExchApp.Show 'activate this line if you want to see the acrobat file
    AcroExchApp.Exit
    AcroExchAVDoc.Close (True)
    AcroExchPDDoc.Close
End Sub
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
757
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Dentex;

Arkadaşımızın açtığı konuyu bende daha önce bakmıştım ama bulamadım.Hazır konu açılmış madem bende denedim.Ama hata verdi.

Dim AcroExchApp As Acrobat.CAcroApp

bu satırda hata verdi.Acrobat access 3.0 library referansını ekledim ama olmadı.
 

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,406
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba,
"Adobe Acrobat 7.0 Type library" ya da varsa daha üst versiyonu ekleyin, hata vermeyecektir. Bendeki hata "activex component can't create object" hatasıdır. Araştırıyorum çözüm için...
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
757
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Dentex;

Bu referans bende yok.Nasıl bulabiliriz ?
 

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,406
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba Acrobat'ın son versiyonunu kurun, birlikte kurulacaktır.(Acrord32.dll)
Kolay gelsin.
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Sayın dentex yardımlarınız için çok teşekkürler. Bu kodun bir de sayfayı PDF veya XPS formatında kaydet versiyonu olabilir mi ?
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
757
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Dentex;

Acrobat reader en son sürüm kullanıyorum.Acrord32.dll dosyasını arattım.Bilgisayarımda mevcut.
 

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,406
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba,
Vb editöründe referanslardan Adobe "Acrobat X.X Type library" olması gerek, onu seçiniz. İşyerimdeki bilgisayarımda sonuca varmam mümkün değil. Akşam evde bakabilirim. İyi çalışmalar.
 
Katılım
20 Ağustos 2009
Mesajlar
520
Excel Vers. ve Dili
2010 - Türkçe
Dentex;

Acrobat reader en son sürüm kullanıyorum.Acrord32.dll dosyasını arattım.Bilgisayarımda mevcut.
"Acrobat X.X Type library" yoksa listede References den Browseyi tıklayıp bilgisayarınızda bulunduğunu söylediğiniz "AcrorD32.Dll" dosyasını gösterin. Sonra Listenize "Acrobat X.X Type library" eklenmesi lazım.
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
757
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Arkadaşlar;


Adobe acrobat 10.0 Type Library vardı referanslarda onu ekledim.İlk satırda hata vermedi.

Set AcroExchApp = CreateObject("AcroExch.App")

Bu satırda hata verdi.Hata mesajı;

ActiveX component can't create object

Ne yapabiliriz ?
 

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,406
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba,
yukarıdaki çözüm, ücretli sürüm olan acrobat proffesional kurulu sistemler için geçerlidir. Bu yüzden sadece reader kullanarak çözüm yolu bulmak gerekiyor. Fırsat buldukça bakıyorum. Ancak forumda konuyu bilen arkadaşlar da çıkacaktır. İyi çalışmalar.
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
757
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Teşekkürler dentex ...
 
Katılım
20 Ağustos 2009
Mesajlar
520
Excel Vers. ve Dili
2010 - Türkçe
Önce şu programı indirip kurun. http://sourceforge.net/projects/pdfcreator/
daha sonra Reference dan PdfCreator seçin daha sonra aşağıdaki kodu uyarlayarak işinizi görebilirsiniz sanırım :)

Option Explicit

Sub PrintToPDF_Early()

Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim bRestart As Boolean


sPDFName = "testPDF.pdf"
sPDFPath = ActiveWorkbook.Path & Application.PathSeparator


If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub


On Error GoTo EarlyExit
Application.ScreenUpdating = False

Set pdfjob = New PDFCreator.clsPDFCreator


Do
bRestart = False
Set pdfjob = New PDFCreator.clsPDFCreator
If pdfjob.cStart("/NoProcessingAtStartup") = False Then
'PDF Creator is already running. Kill the existing process
Shell "taskkill /f /im PDFCreator.exe", vbHide
DoEvents
Set pdfjob = Nothing
bRestart = True
End If
Loop Until bRestart = False


With pdfjob
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With


If Dir(sPDFPath & sPDFName) = sPDFName Then Kill (sPDFPath & sPDFName)


ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"

Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False

Do
DoEvents
Loop Until Dir(sPDFPath & sPDFName) = sPDFName

Cleanup:
Set pdfjob = Nothing
Shell "taskkill /f /im PDFCreator.exe", vbHide
On Error GoTo 0
Application.ScreenUpdating = True
Exit Sub

EarlyExit:
MsgBox "There was an error encountered. PDFCreator has" & vbCrLf & _
"has been terminated. Please try again.", _
vbCritical + vbOKOnly, "Error"
Resume Cleanup
End Sub
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
757
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Serget;

Programı indirdim.Dedikleriniz hepsini yaptım.Ama makro kodunun çalışma şeklini anlamadım.Bilgisayarımda belirlenen pdf dosyasını açıp istediğim sayfayı yazdırmak istiyordum.Ama makro kodu çalışıyor.Hiçbir şey olmuyor.

Beni biraz aydınlatır mısınız ?
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Sayın dentex. Çözüm bulabildiniz mi ? bende de aynı yerde takılıyor !!

Set AcroExchApp = CreateObject("AcroExch.App")
 
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Bu konuda bir gelişme oldu mu acaba ?

Set AcroExchApp = CreateObject("AcroExch.App")
 
Üst