• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prosta nakłada z numerem i datą na pdf

Object Storage Arubacloud
0 głosów
135 wizyt
pytanie zadane 20 lipca 2017 w C# przez krystian.k.nowak Użytkownik (500 p.)
Witam, muszę napisać program który będzie nakładał na pierwszej stronie wybranego pdf'a numer, miesiąc, oraz rok, wartości te będzie pobierał z pliku tekstowego, część z plikiem tekstowym nie jest większym problemem, ale jak zrobić żeby program mógł otwierać pdf i nakładać na niego żądane wartości, jakieś rady albo api do użycia?

2 odpowiedzi

0 głosów
odpowiedź 20 lipca 2017 przez CzikaCarry Szeryf (75,340 p.)
wybrane 23 lipca 2017 przez krystian.k.nowak
 
Najlepsza
komentarz 20 lipca 2017 przez krystian.k.nowak Użytkownik (500 p.)

Bardzo dziękuje! 

Mam tylko delikatny problem z zrozumieniem tej biblioteki, kod aktualnie u mnie wygląda tak: 

            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile(@"sciezka");

            foreach (PdfPageBase page in doc.Pages)
            {
            PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / 2, page.Canvas.ClientSize.Height / 3));
                brush.Graphics.Save();
                brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 5);
                brush.Graphics.DrawString("NAPIS", new PdfFont(PdfFontFamily.Helvetica, 10), PdfBrushes.Black, 0, 0, new PdfStringFormat(PdfTextAlignment.Left)); 
                page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.ClientSize));
            }

            doc.SaveToFile("plik.pdf");

Program wypisuje na wszystkich stronach regularne napisy "NAPIS" wg wytycznych, chce jednak żeby wypisywał go tylko w lewym górnym rogu raz, na pierwszej stronie.

Kiedy usuwam pętle i tworze obiekt wg klasy PdfPageBase page; pojawia się problem w linii tworzącej zmienną brush, jak to przerobić żeby  działało tak jak napisałem? Kombinuje nad tym ale póki co ciężko, to 3 dzień mojej "przygody" z C#, wiele jeszcze nie rozumiem. 

komentarz 20 lipca 2017 przez CzikaCarry Szeryf (75,340 p.)

No to tak jak mówisz, usuwasz pętle i ciśniesz po pierwszym elemencie dokumentu (doc.page). Co do położenia napisuz wydaje mi się, że chodzi o tą linijkę:

 


PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / 2, page.Canvas.ClientSize.Height / 3));
/Zamień na

PdfTilingBrush brush = new PdfTilingBrush(new SizeF(0, 0));

Wydaje mi się że to to, nie jestem pewien, nawet nie odpalałem kodu (pisane z telefonu :D).

 

komentarz 21 lipca 2017 przez krystian.k.nowak Użytkownik (500 p.)
To nie działa, nie ma niestety właściwości "Page" którą mógłbym użyć na obiekcie "page", "Pages" totalnie nie działa, jest właściwość PageNumber, ale żeby ją ustawić trzeba zmienić klase z PdfPageBase na PdfPageNumber, a wtedy nie działa atrybut Canvas, to co wysłałeś wrzuciłem do działającego kodu i w wyniku nie robiło z plikiem pdf nic, próbowałem też dostosowywać kod pod to ale nic, jeszcze jakieś pomysły co z tym zrobić? :(
0 głosów
odpowiedź 20 lipca 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Podobne pytania

0 głosów
1 odpowiedź 1,185 wizyt
pytanie zadane 19 lipca 2017 w C# przez Krystian Nowak Początkujący (330 p.)
0 głosów
1 odpowiedź 540 wizyt
pytanie zadane 3 sierpnia 2017 w C# przez krystian.k.nowak Użytkownik (500 p.)
0 głosów
0 odpowiedzi 403 wizyt

92,552 zapytań

141,399 odpowiedzi

319,532 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...