Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 64426 Skopiuj do schowka Wydruk pliku PDF
Autor Wiadomość
marzatela 
Excel Expert



Zaproszone osoby: 291
Pomogła: 422 razy
Posty: 2320
Wysłany: 14-03-2019, 08:40   Wydruk pliku PDF

Jak z poziomu kodu VBA wydrukować plik PDF? Plik nie został utworzony w Excelu, tak naprawdę to rysunek zapisany w PDF.
_________________
marzatela

http://www.szultaset.pl
ID posta: 364193 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2019
Pomógł: 2079 razy
Posty: 6858
Wysłany: 14-03-2019, 10:25   

marzatela, a takie coś rozwiązanie zadziała u Ciebie ?
http://www.excelforum.pl/viewtopic.php?p=32633
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

Szkolenia z Excela , FB
Office 2019 Professional Plus , Windows 10 x64
Pozdrawiam, były mkkk23 teraz Marecki.
ID posta: 364205 Skopiuj do schowka
 
 
marzatela 
Excel Expert



Zaproszone osoby: 291
Pomogła: 422 razy
Posty: 2320
Wysłany: 14-03-2019, 10:53   

Nie, niestety.
W tej chwili wstawiam ten plik do arkusza jako obiekt i drukuję arkusz. To rozwiązanie mało mi się jednak podoba :(
_________________
marzatela

http://www.szultaset.pl
  
ID posta: 364206 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2019
Pomógł: 2079 razy
Posty: 6858
Wysłany: 14-03-2019, 13:41   

No to może takie:
Kod:
Sub test()
    Dim Pdf_File       As String
    Dim Wrd            As Object
    Dim mydoc          As Object

    Set Wrd = CreateObject("Word.Application")
    Pdf_File = "C:\test.PDF"
    Set mydoc = Wrd.Documents.Open(Filename:=Pdf_File, Format:="PDF Files", ConfirmConversions:=False)
    mydoc.ActiveWindow.PrintOut
    mydoc.Close False
    Wrd.Quit

End Sub
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

Szkolenia z Excela , FB
Office 2019 Professional Plus , Windows 10 x64
Pozdrawiam, były mkkk23 teraz Marecki.
ID posta: 364221 Skopiuj do schowka
 
 
marzatela 
Excel Expert



Zaproszone osoby: 291
Pomogła: 422 razy
Posty: 2320
Wysłany: 14-03-2019, 14:08   

Ciekawe rozwiązanie. Drukuje coś, ale coś zupełnie rozsypanego, nic nie przypomina tego, co w pliku.
_________________
marzatela

http://www.szultaset.pl
ID posta: 364223 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1229 razy
Posty: 4255
Wysłany: 14-03-2019, 15:07   

marzatela napisał/a:
Ciekawe rozwiązanie. Drukuje coś, ale coś zupełnie rozsypanego, nic nie przypomina tego, co w pliku.

A masz Word >= 2013?
ID posta: 364226 Skopiuj do schowka
 
 
marzatela 
Excel Expert



Zaproszone osoby: 291
Pomogła: 422 razy
Posty: 2320
Wysłany: 14-03-2019, 15:45   

Nie, 2010.
_________________
marzatela

http://www.szultaset.pl
ID posta: 364231 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1229 razy
Posty: 4255
Wysłany: 14-03-2019, 16:28   

marzatela napisał/a:
Nie, 2010.

No to kup i ciesz się życiem ;-)

Tylko Word >= 2013 otworzy PDF

Cytat:

W tej chwili wstawiam ten plik do arkusza jako obiekt i drukuję arkusz. To rozwiązanie mało mi się jednak podoba :(

Czyli nie masz również programu do otwierania i drukowania PDF? np. Acrobat Reader

No to zainstaluj i ciesz się życiem. ;-)
  
ID posta: 364236 Skopiuj do schowka
 
 
marzatela 
Excel Expert



Zaproszone osoby: 291
Pomogła: 422 razy
Posty: 2320
Wysłany: 14-03-2019, 16:59   

apollo, Acrobat Reader mam. Wyższą wersję Office'a zamierzam kupić (choć nie 2013). W tym przypadku jednak zależy mi na rozwiązaniu, które będzie działało nie tylko u mnie.
W sumie osadzenie tego PDF-a w arkuszu i wydrukowanie arkusza działa, więc chyba zostanę przy tym rozwiązaniu.
_________________
marzatela

http://www.szultaset.pl
ID posta: 364237 Skopiuj do schowka
 
 
ąćęłńóś
ExcelSpec


Pomógł: 185 razy
Posty: 838
Wysłany: 14-03-2019, 23:15   

To powinno działać:
http://www.excelforum.pl/...otwierania.html

I jeszcze moje trzy grosze ... z przejrzanych w sieci kodów, mała kompilacja ludzkiej pomysłowości, u mnie działa "na drukarce bez drukarki", tj. na samych sterownikach i podglądzie wydruku:
Kod:
Option Explicit

Const acrd$ = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe" 'Lub inna ścieżka - zależnie od instalacji
Const plikPDF$ = "C:\Temp\JakisDokPDF.pdf"

Sub a_Druk_PDF()
    'Application.ScreenUpdating = False
    Dim strcmd$, czekaj!, objshl As Object
    strcmd = Chr(34) & acrd & Chr(34) & " /s /h /p " & Chr(34) & plikPDF & Chr(34)
    Set objshl = CreateObject("Wscript.Shell")
    objshl.Run strcmd, 0, False
    czekaj = Timer: While Timer - czekaj < 5: DoEvents: Wend
    objshl.AppActivate "Adobe Reader"
    objshl.SendKeys "%{F4}", True
    Set objshl = Nothing
    'Application.ScreenUpdating = True
End Sub

W kodzie musi być jednak spowalniacz inaczej okropnie się to wszystko gryzie ze sobą.
ID posta: 364260 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1229 razy
Posty: 4255
Wysłany: 15-03-2019, 00:45   

ąćęłńóś napisał/a:


I jeszcze moje trzy grosze ... .

Obawiam się, że nie o to chodzi.

Nie bez powodu pytałem o to, czy ma Acrobat Reader. Bo jeśli ma to zamiast ręcznie otworzyć plik z kodem i uruchomić kod można ręcznie otworzyć plik PDF w Acrobat Reader i drukować. A jeśli chce kod to można pisać kod.

Ale marzatela pisała
Cytat:

Acrobat Reader mam. Wyższą wersję Office'a zamierzam kupić (choć nie 2013). W tym przypadku jednak zależy mi na rozwiązaniu, które będzie działało nie tylko u mnie

Czyli chodzi o to, żeby działało nawet u tych, którzy nie mają Acrobat Reader i Word >= 2013. Jeśli ktoś nie ma Acrobat Reader to żaden kod nie pomoże.

Co do podanego kodu to u mnie niewiele działało. Znaczy, że PDF został otwarty w moim NitroPDF ale nic więcej. Nie ma okna Print. Opcja "/p" nic nie daje. Poprawiłem trochę. Zwłaszcza nie objshl.AppActivate "Adobe Reader" bo przecież u każdego jest inaczej, nie koniecznie "Adobe Reader". U mnie 5s to za mało, bo wyskoczyło jakieś okno niby-błąd, które trzeba ręcznie zamknąć. U mnie musiałem wysłać "^p" żeby otworzyć okno Print. I zazwyczaj Ctrl + P to właśnie skrót w Windows do otwierania okna Print.
Kod:

Const acrd = "C:\Program Files\Nitro PDF\Professional\NitroPDF.exe" 'Lub inna ścieżka - zależnie od instalacji
Const plikPDF = "C:\hichic.pdf"

Sub a_Druk_PDF()
Dim a
    Dim strcmd$, czekaj!, objshl As Object
    strcmd = Chr(34) & acrd & Chr(34) & " " & Chr(34) & plikPDF & Chr(34)
    a = Shell(strcmd, vbNormalFocus)
    czekaj = Timer
    Do While Timer - czekaj < 15
        DoEvents
    Loop
    AppActivate a
    Application.SendKeys "^p", True
End Sub
ID posta: 364262 Skopiuj do schowka
 
 
marzatela 
Excel Expert



Zaproszone osoby: 291
Pomogła: 422 razy
Posty: 2320
Wysłany: 15-03-2019, 06:12   

ąćęłńóś, widziałam to rozwiązanie wcześniej, ale zrezygnowałam, nie chcąc na sztywno wpisywać ścieżki do Acrobat Reader. Nie mam pewności gdzie jest zainstalowany na innych komputerach.
_________________
marzatela

http://www.szultaset.pl
ID posta: 364264 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1229 razy
Posty: 4255
Wysłany: 15-03-2019, 10:38   

marzatela napisał/a:
ąćęłńóś, widziałam to rozwiązanie wcześniej, ale zrezygnowałam, nie chcąc na sztywno wpisywać ścieżki do Acrobat Reader. Nie mam pewności gdzie jest zainstalowany na innych komputerach.

Czyli jednak zakładasz, że u każdego jest program do PDF a jedyny problem to niewiadomo, co (różne programy do PDF) i gdzie jest zainstalowane?

Spróbuj poniższy kod. Uruchomi domyślny program do PDF i otworzy okno Print.
Kod:

Option Explicit

Sub drukPDF(ByVal plikPDF As String)
Dim czekaj As Double, strcmd As String, shell As Object
    Set shell = CreateObject("Shell.Application")
    shell.ShellExecute plikPDF, vbNullString, vbNullString, "open", 1
   
    czekaj = Timer
    Do While Timer - czekaj < 10
        DoEvents
    Loop
   
    Application.SendKeys "^p", True
   
    Set shell = Nothing
End Sub

Sub test()
    drukPDF "c:\hichic.pdf"
End Sub
ID posta: 364288 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe