logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[vba][excel] - Wyświetlenie miniaturki pdf na UserForm

siwek62 03 Lut 2013 22:17 4044 10
REKLAMA
  • #1 11885023
    siwek62
    Poziom 11  
    Posty: 74
    Ocena: 1
    Witam
    Czy jest możliwe, za pomocą jakiej metody wyświetlenie na UserForm miniaturki pliku pdf? Myslałem, że będę mógł to zrobić wykożystując kontrolkę Image ale okazuje się, że obsługuje tylko niektóre rodzaje plików, niestety nie pdf. Czy dałoby się to jakoś zrobić?
  • REKLAMA
  • #2 11885164
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    Zawsze możesz wyświetlić cały PDF - w odpowiedniej skali, choć to głupie rozwiązanie.
    Pewnie istnieje jakaś kontrolka zrzucająca stronę PDF-a do jpg'a.
    Programy pdf2img/pdf2tiff są, ale nie o nie tutaj chodzi, tylko o generowanie miniaturki dynamicznie, prawda?
  • REKLAMA
  • #3 11885355
    siwek62
    Poziom 11  
    Posty: 74
    Ocena: 1
    Zgadza się, chodzi o bazę danych gdzie niektóre rekordy będą miały skorelowane skany dokumentów zapisane w jakieś lokalizacji. Myślałem żeby zrobić podgląd tych plików w jakiś małych okienkach. Jeśli się nie da to zrobię po prostu listę ale chciałbym móc wskazać dany plik i go otworzyć w pdf-ie (oczywiście wiem, że to inny problem nie związany z pytaniem postu ale jest to następny krok i będę wdzięczny za sugestie także w tym temacie)
  • #5 11885418
    siwek62
    Poziom 11  
    Posty: 74
    Ocena: 1
    Oba linki są związane w jakiś sposób z konwersją pdf do jpg. W zasadzie w niczym mi to nie przeszkadza ale jak to wkleić w kod vba?
  • #6 11889325
    siwek62
    Poziom 11  
    Posty: 74
    Ocena: 1
    No cóż, widzę że muszę zrezygnować z podglądu plików, przynajmniej tych w pdf. Spróbuje zamiast pdf-ów wyświetlać informację, że podgląd niedostępny. Ale mam inne pytanie. Kolejnym etapem pracy z plikami ma być ich wyświetlenie, najlepiej w domyślnym programie.
    Znalazłem następujący kod:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Jak łatwo się domyśleć końcówka jest zaadaptowana na moje potrzeby. W ListBoxie "ListSkan" mam nazwę pliku z rozszerzeniem. Testowałem z plikami pdf i wszystko wyglądało dobrze, otwierał się Adobe Reader i plik się pięknie uruchamiał. Ale gdy spróbowałem z plikiem jpg otworzył się IE i wyświetlił plik.
    Jakiej innej metody można użyć żeby otworzyć plik w zewnętrznym domyślnym programie dla danego rodzaju pliku?
    Próbowałem coś z Shell ale bez powodzenia.

    Dodano po 2 [godziny] 10 [minuty]:

    Znalazłem w necie takie rozwiązanie:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    1. Nie wiem co robi fragment po: Private Declare Function... i gdzie go wkleić. Wkleiłem na górze UserForm, co prawda zadzałało ale nie wiem czy prawidłowo to zrobiłem. Może mógłbym prosić o kilka słów wyjaśnienia co to jest i czy jest to rozwiązanie uniwersalne, tzn czy będzie działać na innych komputerach?

    2. Próbowałem zadeklarować stałą sciezka przy pomocy:Const sciezka As String = ThisWorkbook.Path & "\skany\"
    ale wyskakuje błąd "Constant expression required". Jak to zrobić?
  • REKLAMA
  • #7 11890841
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    Przecież Adobe Reader udostępnia podgląd PDF-ów jako OCX.
    Czemu z tego nie skorzystasz? Abobe Reader-a każdy ma na komputerze, a nawet jak nie, to nie problem dołączyć go do projektu.
    Ja tak robię i wszyscy są zadowoleni.
    [vba][excel] - Wyświetlenie miniaturki pdf na UserForm
  • #8 11897277
    siwek62
    Poziom 11  
    Posty: 74
    Ocena: 1
    Bo nie wiedziałem do teraz nic o OCX. Na pewno w pytaniach do Google uwzględnię teraz tą frazę ale byłbym wdzięczny za pogłębioną podpowiedź, nawet z komentarzem typu "ucz się matole". Ja się nie obrażę, szanuje tych co wiedzą więcej od mnie a i tych drugich też.
  • #9 11897381
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    Jeżeli masz zainstalowanego Adobe Readera, to po prostu zarejestruj makro w Excel-u, dodając na ekran nowy object :
    [vba][excel] - Wyświetlenie miniaturki pdf na UserForm
    I zobacz co się zapisze.
    Potem możesz modyfikować ustawienia.
    Poszukaj w Google takiej frazy : "adobe pdf reader activex control vba".
  • #10 11902865
    siwek62
    Poziom 11  
    Posty: 74
    Ocena: 1
    Dziękuje za odpowiedź, nie jest to co prawda to o co mi chodzi ale nie chcę drążyć dalej tematu. Musiałbym dopytywać czy taki podgląd dałoby się uzyskać na UserFormie. Jest to jeden z wodotrysków mojej aplikacji z którego jestem w stanie zrezygnować, przynajmniej na tym etapie.
  • REKLAMA
  • #11 11904921
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    Oczywiście, że się da umieścić to w dowolnym miejscu.
    Załączniki:
    • Zeszyt1.zip (10.13 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

✨ Użytkownik pyta o możliwość wyświetlenia miniaturki pliku PDF na UserForm w Excelu, sugerując użycie kontrolki Image, która jednak nie obsługuje plików PDF. W odpowiedzi zaproponowano kilka rozwiązań, w tym konwersję PDF do formatu JPG za pomocą zewnętrznych narzędzi, jednak użytkownik poszukuje dynamicznego podglądu. Zasugerowano również wykorzystanie kontrolki OCX od Adobe Reader, co może umożliwić wyświetlenie PDF bezpośrednio w aplikacji. Użytkownik wyraził chęć otwierania plików w domyślnych programach, co udało mu się zrealizować dla plików PDF, ale napotkał problemy z plikami JPG. Ostatecznie użytkownik zrezygnował z podglądu PDF na UserForm, ale nadal poszukuje sposobu na otwieranie plików w odpowiednich aplikacjach.
Wygenerowane przez model językowy.
REKLAMA