Problem z pdf

0

Witam.
Mam pewnie banalny problem ale ponieważ dopiero raczkuję nie potrafię sobie z nim poradzić i proszę o pomoc.
Chodzi o to aby plik wygenerował się plik pdf a następnie otworzył aby go było widać.
Przykładowy kod

Document document = new Document();
PdfWriter.GetInstance(document, new FileStream(@"c:\plik.pdf",FileMode.Create));
document.Open();
Paragraph pg = new Paragraph("zażółć gęślą jaźń", FontFactory.GetFont(FontFactory.HELVETICA, BaseFont.CP1250, 10));
document.Add(pg);
document.Close();
 

Kod ten działa super ale z tego co widać od razu zapisuję pdf na dysku c nie otwierając go.
Ja chciałbym aby pdf od razu się otworzył niestety funkcja typu "document.show" raczej nie istnieje.
Prosiłbym o pomoc bo problem pewnie błahy.
Pozdrawiam
Blacha

0

Ale w czym chcesz otworzyć tego pdfa? W programie np. FoxitReader? Uruchom go (klasa Process) w argumentach podając ścieżkę do twojego pdfa, powinno zadziałać.

0

Aby sie otworzył w domyślnej przeglądarce pdf. Adobe czy FoxiReader.

0

No to tak samo:

System.Diagnostics.Process.Start("dokument.pdf");
1

Powinno zadziałać coś w tym rodzaju:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "c:\\plik.pdf";
p.Start();
0

Wielkie dzięki.
Mam jeszcze jedno pytanie co musiałbym zrobić aby pdf był tworzony w pamięci , wyświetlany ale nie zapisywany na dysku.
Myślałem aby FileStrem zamienić na MemoryStrem ale nie potrafię wyświetlić obiektu tego typu.

Pozdrawiam

0

Nie możesz wyświetlić pliku z pamięci w tych pdf view'erach. Możesz najwyżej swoją zrobić. Tamte przyjmują tylko plik do otwarcia. Sam plik możesz zapisać w pamięci i go odczytać, ale tymi przeglądarkami raczej nie da rady.

0
Blacha napisał(a)

Mam jeszcze jedno pytanie co musiałbym zrobić aby pdf był tworzony w pamięci , wyświetlany ale nie zapisywany na dysku.

Może jakaś kontrolka do wyświetlania PDF w swojej aplikacji?

0

Nie chodziło mi mniej więcej o coś w stylu podgląd wydruku. Czyli generuję się pdf otwiera go w jakimś domyślnym programie i dopiero z tego programu jak chce to mogę go zapisać lub nie. Chodzi o to żeby nie było sytuacji że po 100 krotnym naciśnięciu generuj pdf mam 100 pdfów w folderze.
Mam nadzieje że to w miarę jasno opisałem.
Pozdrawiam

0

No to somekind dobrze mówi, poszukaj jakiejś kontrolki umożliwiającej wyświetlenie PDFa np. ze strumienia.

0

Jeśli chodzi tylko o to, żeby nie mieć bałaganu, ale pliki mogą być zapisywane na dysku, to możesz generować te pdfy w katalogu %temp%.

1

Oprócz tworzenia pliku w %temp% można go dodatkowo usuwać po zakończeniu procesu przeglądarki:

System.Diagnostics.Process.Start(nazwa_pliku).WaitForExit();
File.Delete(nazwa_pliku);

1 użytkowników online, w tym zalogowanych: 0, gości: 1