🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi
7 messages
7 total messages Started by MK Wed, 13 Dec 2017 13:28
Usuwanie stron w plikach pdf
#346226
Author: MK
Date: Wed, 13 Dec 2017 13:28
12 lines
1124 bytes
Witam

Szukam prostego rozwiazania lub komponentu do Delphi5/7 ktore 
pozwalaloby na kasowanie automatyczne wskazanych kilku ostatnich stron w 
zaladowanych plikach pdf (TSearchRec).
Czy ktos z grupowiczow spotkal sie z takim rozwiazaniem odnosnie edycji 
stron w plikach pdf (kasowanie stron) ?

Dziekuje za wszelka odpowiedz.

Pozdrawiam
M.K.
Re: Usuwanie stron w plikach pdf
#346227
Author: konsul41
Date: Thu, 14 Dec 2017 13:48
16 lines
1568 bytes
W dniu 13-12-2017 o 14:28, MK pisze:
> Witam
>
> Szukam prostego rozwiazania lub komponentu do Delphi5/7 ktore
> pozwalaloby na kasowanie automatyczne wskazanych kilku ostatnich stron w
> zaladowanych plikach pdf (TSearchRec).
> Czy ktos z grupowiczow spotkal sie z takim rozwiazaniem odnosnie edycji
> stron w plikach pdf (kasowanie stron) ?
>
> Dziekuje za wszelka odpowiedz.
>
> Pozdrawiam
> M.K.
Czego potrzebujesz, usunąć je fizycznie czy tylko obiekty Page?

PDF szyfrowane?
Re: Usuwanie stron w plikach pdf
#346228
Author: MK
Date: Fri, 22 Dec 2017 12:06
24 lines
1534 bytes
Witam

Usunac chce fizycznie strony powyzej strony drugiej.
PDF nie szyfrowane.

W dniu 14-12-2017 o 14:48, konsul41@wp.pl pisze:
> W dniu 13-12-2017 o 14:28, MK pisze:
>> Witam
>>
>> Szukam prostego rozwiazania lub komponentu do Delphi5/7 ktore
>> pozwalaloby na kasowanie automatyczne wskazanych kilku ostatnich stron w
>> zaladowanych plikach pdf (TSearchRec).
>> Czy ktos z grupowiczow spotkal sie z takim rozwiazaniem odnosnie edycji
>> stron w plikach pdf (kasowanie stron) ?
>>
>> Dziekuje za wszelka odpowiedz.
>>
>> Pozdrawiam
>> M.K.
> Czego potrzebujesz, usunąć je fizycznie czy tylko obiekty Page?
> 
> PDF szyfrowane?
> 
> 
Re: Usuwanie stron w plikach pdf
#346229
Author: Karol
Date: Fri, 22 Dec 2017 15:30
30 lines
2005 bytes
Automatu nie widziałem ale to nie powinno być trudne
Poszukaj moich postów był link do kodu który rozkłada pdf-a.
Wyciąga obekty (obj) i można zapisać do nowego pliku tylko to co cię 
interesuje ze zmianą xref(adresy do obj).
Ogólnie PDF to plik tekstowy.


> Usunac chce fizycznie strony powyzej strony drugiej.
> PDF nie szyfrowane.
>
> W dniu 14-12-2017 o 14:48, konsul41@wp.pl pisze:
>> W dniu 13-12-2017 o 14:28, MK pisze:
>>> Witam
>>>
>>> Szukam prostego rozwiazania lub komponentu do Delphi5/7 ktore
>>> pozwalaloby na kasowanie automatyczne wskazanych kilku ostatnich stron w
>>> zaladowanych plikach pdf (TSearchRec).
>>> Czy ktos z grupowiczow spotkal sie z takim rozwiazaniem odnosnie edycji
>>> stron w plikach pdf (kasowanie stron) ?
>>>
>>> Dziekuje za wszelka odpowiedz.
>>>
>>> Pozdrawiam
>>> M.K.
>> Czego potrzebujesz, usunąć je fizycznie czy tylko obiekty Page?
>>
>> PDF szyfrowane?
>>
>>
>
Re: Usuwanie stron w plikach pdf
#346230
Author: MK
Date: Thu, 28 Dec 2017 07:16
41 lines
2153 bytes
Witam i dziekuje za odpowiedz.

Szukać po e-mail w Google Groups na pl.com.lang.delphi ?
Jak namierzyc prawidlowo te posty ?

Jeszcze raz dziekuje.
M.K.

W dniu 22-12-2017 o 16:30, Karol pisze:
> Automatu nie widziałem ale to nie powinno być trudne
> Poszukaj moich postów był link do kodu który rozkłada pdf-a.
> Wyciąga obekty (obj) i można zapisać do nowego pliku tylko to co cię 
> interesuje ze zmianą xref(adresy do obj).
> Ogólnie PDF to plik tekstowy.
> 
> 
>> Usunac chce fizycznie strony powyzej strony drugiej.
>> PDF nie szyfrowane.
>>
>> W dniu 14-12-2017 o 14:48, konsul41@wp.pl pisze:
>>> W dniu 13-12-2017 o 14:28, MK pisze:
>>>> Witam
>>>>
>>>> Szukam prostego rozwiazania lub komponentu do Delphi5/7 ktore
>>>> pozwalaloby na kasowanie automatyczne wskazanych kilku ostatnich 
>>>> stron w
>>>> zaladowanych plikach pdf (TSearchRec).
>>>> Czy ktos z grupowiczow spotkal sie z takim rozwiazaniem odnosnie edycji
>>>> stron w plikach pdf (kasowanie stron) ?
>>>>
>>>> Dziekuje za wszelka odpowiedz.
>>>>
>>>> Pozdrawiam
>>>> M.K.
>>> Czego potrzebujesz, usunąć je fizycznie czy tylko obiekty Page?
>>>
>>> PDF szyfrowane?
>>>
>>>
>>
> 
Re: Usuwanie stron w plikach pdf
#346231
Author: konsul41
Date: Thu, 28 Dec 2017 09:30
195 lines
6540 bytes
Trochę byłem zajęty.
https://groups.google.com/forum/#!searchin/pl.comp.lang.delphi/konsul41@wp.pl$20pdf|sort:date/pl.comp.lang.delphi/hE78wiAMU9U/X7iahCwIAQAJ

Tutaj masz temat tam jest link do strony w której ktoś analizuje "obj" w 
PDF.
link to
http://www.angusj.com/delphitips/pdfpagecount.php

Ten ktoś (przypuszczam że to jest Angus Johnson) pokazuje jak odczytać 
ilość stron analizując PDF w twoim przypadku wystarczyło by aby usunąć 
(wpisać spacje ) w miejsce odnośników (numerów obiektów) do Page, 
ewentualnie przepisać wszystkie obiekty bez Page, które masz wyrzucić, 
aktualizując xref.

xref wygląda tak

xref
0 45
0000000000 65535 f
0000000140 00000 n
0000004917 00000 n
0000000015 00000 n
0000005238 00000 n
0000004743 00000 n
...
0000041340 00000 n
0000057072 00000 n
0000043947 00000 n
0000057239 00000 n
0000057381 00000 n
trailer
<</Info 44 0 R/ID 
[<014eed829835169f91f6e5117f75beae><bcc6e0bca5da08e55e612a28ec8594b9>]/Root 
43 0 R/Size 45>>
startxref
57620
%%EOF

Analizę zaczynasz od końca.
xref są to bajty od którego zaczynają się objekty.
nie zawsze/wszystkie pdf-y mają go w pełni rozbudowane

Dalej "startxref" w którym masz podany początek do xref
pierwsza część to początek jakiegoś obiektu (obj)
ciebie będą interesować takie

8 0 obj
<</Kids[4 0 R 9 0 R]/Type/Pages/Count 2/ITXT(5.0.1)>>
endobj
masz tutaj wpis "/Pages" oznacza że tutaj jest określenie ilości stron
masz wpis "/Count 2" oznacza że są 2 strony
Tutaj akurat nie ma podanego bezpośredniego odwołania do Strony ale 
znajdujemy
4 0 obj
<</Contents 10 0 R/Type/Page/Resources<</ProcSet 7 0 R/Font<</F 11 0 
R>>/XObject<</R3 12 0 R/R4 13 0 R/R5 14 0 R/R 15 0 R/R6 16 0 R/R0 17 0 
R/R1 18 0 R/R2 19 0 R>>>>/Parent 8 0 R/Annots[20 0 R 3 0 R]/MediaBox[0 0 
595.2756 841.8898]>>
endobj
i jest wpis "/Page"

w innym PDF-ie masz

startxref

116

%%EOF
i odwołanie do 116 bajta

Znajdujemy także taki obiekt

458 0 obj
<</Metadata 422 0 R/Pages 447 0 
R/Type/Catalog/ViewerPreferences<</Direction/L2R>>>>
endobj

Wpis "/Pages 447 0 R" oznacza że jest 1 strona
ale plik jest kodowany i tekstowe wyszukiwanie nie znajduje obj 447.



W trzecim pliku (Generowany przez Projektanta budynków "Architekt 
bodajże za Autocada)

xref
0 60
0000000000 65535 f
...
0008474403 00000 n
0008475280 00000 n
0008524424 00000 n
trailer
<< /Size 60 /Root 1 0 R /Info 2 0 R
/ID [<FBEEFE353C8DB6CD142C20290F920B81><FBEEFE353C8DB6CD142C20290F920B81>]
 >>
startxref
8526931
%%EOF

Wpis "/Info 2 0 R"
Kieruje do obiektu
2 0 obj
<</Producer(GPL Ghostscript 9.10)
/CreationDate(D:20161209111110+01'00')
/ModDate(D:20161209111110+01'00')
/Author(\376\377\000K\000a\000m\000i\000l\000G)
/Creator(\376\377\000P\000D\000F\000C\000r\000e\000a\000t\000o\000r\000 
\000V\000e\000r\000s\000i\000o\000n\000 \0001\000.\0007\000.\0003)
/Keywords()
/Subject()
/Title(\376\377\000F\000:\000\\\000K\000a\000m\000i\000l\000 
\000G\000a\000w\000r\000y\000s\000z\000c\000z\000a\000k\000\\\000W\000Y\000D\000R\000U\000K\000O\000W\000A\000N\000E\000\\\0002\0000\0001\0006\000\\\000S\000z\000y\000m\000a\001D\000s\000c\000y\000,\000 
\001A\000o\000m\001|\000a\000\\\000Z\000A\000M\000I\000E\000N\000N\000Y\000\\\000S\000z\000y\000m\000a\000n\000s\000c\000y\000 
\000Z\000A\000M\000I\000E\000N\000N\000Y\000-\000M\000o\000d\000e\000l)>>endobj
te wszystkie cyfry to odnośniki do znaków z załadowanego Font


Wpis "/Root 1 0 R" przekierowuje do
1 0 obj
<</Type /Catalog /Pages 3 0 R
/Metadata 59 0 R
 >>
endobj
masz wpis "/Catalog" i
"/Pages 3 0 R" to przekierowuje do

3 0 obj
<< /Type /Pages /Kids [
4 0 R
7 0 R
10 0 R
13 0 R
16 0 R
19 0 R
22 0 R
25 0 R
30 0 R
36 0 R
42 0 R
48 0 R
] /Count 12
 >>
endobj
zobacz że masz podaną ilość stron

wpis "4 0 R" w tablicy "/Kids" przekierowuje do konkretnej strony

4 0 obj
<</Type/Page/MediaBox [0 0 842 1585]
/Parent 3 0 R
/Resources<</ProcSet[/PDF]
 >>
/Contents 5 0 R
 >>
endobj

"/Page" to strona i może być dużo odnośników(przekierowań)
"/MediaBox [0 0 842 1585]" to wielkość strony.
Każda strona może mieć inną wielkość, czcionkę itd.
Ty powinieneś zacząć od usunięcia odnośników do "KIDS"
Oczywiście to są przykłady PDF-ów i nie oznacza że twoje są takie same.
Do każdego "Producer" trzeba podejść indywidualnie uwzględniając wersje 
PDF i jego specyfikacje.

Z ciekawszych rzeczy mogę dopisać Pakowanie obiektów
8 0 obj
<</Length 9 0 R/Filter /FlateDecode>>
stream
...dane...
endobj
odnośnik "/Length 9 0 R" jest przekierowaniem do obiektu
9 0 obj
1039595
endobj
czyli tyko podana wielkość strumienia "stream"
w przypadku filtra FlateDecode to bardziej zaciemnianie niż pakowanie.

Każdy obiekt poza danymi do szyfrowania może być pakowany,szyfrowany i 
to równocześnie kilkoma metodami pod rząd itd.

szyfrowanie i XObjects, oraz Forms i JavaScript w pdf (tak pdf może 
przenosić wirusy)

Jeżeli chcesz więcej szczegółów ewentualnie dalsza współpraca na prive.







---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Usuwanie stron w plikach pdf
#346232
Author: wloochacz
Date: Mon, 01 Jan 2018 18:08
19 lines
1636 bytes
W dniu 2017-12-13 o 14:28, MK pisze:
> Witam
> 
> Szukam prostego rozwiazania lub komponentu do Delphi5/7 ktore 
> pozwalaloby na kasowanie automatyczne wskazanych kilku ostatnich stron w 
> zaladowanych plikach pdf (TSearchRec).
> Czy ktos z grupowiczow spotkal sie z takim rozwiazaniem odnosnie edycji 
> stron w plikach pdf (kasowanie stron) ?
> 
> Dziekuje za wszelka odpowiedz.
Właśnie się pojawiło:
https://uberpdf.org/

Sprawdź, może pomoże... Bo ja tam widze jak wół: 
UberPdfSdk_Pdf_Doc_Pages_DeletePage();


-- 
wloochacz
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads