2013-04-15 7 views
5

spędziłem całe popołudnie szukając odpowiedzi na moje pytanie i znaleźli :(AcroPDFLib aby otworzyć plik PDF ze strumienia w WindowsForms C# .NET

Robię aplikację Windows Forms i jeden z nich jest jest pokazywanie plików przechowywanych w bazie danych. Te pliki po przesłaniu można oznaczyć jako "tylko do odczytu", co oznacza, że ​​nie można ich pobrać. AcroPDFLib i I nie może znaleźć sposobu na wyświetlenie pliku z tablicy bajtów przechowywanych w DB.

Moje pytanie brzmi, czy istnieje sposób na otwarcie pliku PDF ze strumienia? Nawet jeśli jest to za wtyczka, jaka to wtyczka i gdzie mogę ją znaleźć?

Korzystanie z obiektu przeglądarki internetowej, nie sądzę, że będzie działać, ponieważ będę musiał stworzyć coś po stronie serwera, który wysyła do wyjścia odpowiedzi strumienia. i tworzenie pliku w folderze tymczasowym ... Dobrze, w takim razie równie dobrze mogę umożliwić pobieranie plików: D

dzięki za pomoc

+0

Plik PDF został zapisany jako Bajty ...? – Pandian

+0

Tak. W DB jest jak Varbinary. –

+0

Niedawno zmagałem się z tym samym problemem w naszej aplikacji WinForm. Nie mogłem znaleźć sposobu, aby za pomocą AcroPDFLib najpierw obejść kwestię zapisu na dysk, a następnie użyć formantu WebBrowser, aby wyświetlić plik lub po prostu wykonać 'Process.Start'. Skończyło się na tym, że po prostu zapisałem na dysk, ale nie martwiłem się, że ktoś zapisuje plik albo ... –

Odpowiedz

4

Aby to zrobić, co chcesz, musisz otworzyć plik ze strumienia pamięci, jednak z Interapplication Communication API reference from Adobe otrzymujemy, że istnieje tylko jeden (...) metoda Czynne:

Składnia:
VARIANT_BOOL Otwórz (BSTR szFullPath, BSTR szTempTitle);

Parametry:

szFullPath
Pełna ścieżka pliku do otwarcia.

szTempTitle
Opcjonalny tytuł okna, w którym plik został otwarty . Jeśli szTempTitle ma wartość NULL lub pusty łańcuch, jest on ignorowany. W przeciwnym razie jako tytuł okna używany jest szTempTitle.

Więc chciałbym odgadnąć że to, co staramy się robić nie można zrobić z biblioteki Adobe.

+0

Dziękuję za odpowiedź. Właśnie tego się obawiałem ... –

+0

+1 za wykopanie API i prawie odpowiedzieć na to możliwe pytanie :) –

Powiązane problemy