joanna.ludmila@googlemail.com :
Jak wiadomo, pliki PDF można zabezpieczać na różnych poziomach, np. przed edycją, drukiem itp. Odbezpieczyć można je w Acrobacie, gdy zna się hasło.
Nasz Profesor od baz danych ma zawsze dobrze przygotowane folie do wykładów, które potem publikuje w Internecie. Niestety, wrzuca dwie folie na stronę A4 + jakiś nagłówek do tego (typu „wykłady z baz danych, semestr zimowy 2006/2007”), co powoduje, że jeden wykład zajmuje 19 (!!!) stron A4. Wykłady mamy dwa razy w tygodniu. Folie są kolorowe. To sobie pomnóżcie jeszcze przez cenę tuszu do drukarki i wyjdzie. O!
Folie do pierwszego wykładu wycięłam w Acrobacie (tak, tak, Acrobat Prof.), tak, że były pojedynczo, potem można z nimi robić, co się żywnie podoba. Ale stwierdziłam, że zaryzykuję i napisałam do Profesora, czy by mógł może udostępnić te folie pojedynczo. Ale on tylko odpisał „sorry, ale nie będę spełniał pojedynczych życzeń każdego studenta”. Trudno.
Tylko, że o ile pierwszy wykład nie zawierał żadnej wiedzy, były to sprawy czysto organizacyjne, o tyle następne miały już znaczenie i — chyba w związku z tym — zostały przez Profesora zabezpieczone przed edycją. Nie cierpię, jak oni to robią. Przecież jesteśmy studentami informatyki. Ci, którzy lubią czytać prosto z monitora (ja do nich nie należę), robią sobie notatki bezpośrednio na foliach PDF. Ale z zabezpieczeniami nie można.
Z pomocą przychodzi LaTeX. Nie wiem, czy to bug czy feature, ale się przydaje:
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\usepackage[%
left=0pt,right=0pt,top=0pt,bottom=0pt]{geometry}
\begin{document}
\includepdf[pages=-]{zabezpieczonyplikpdf}
\end{document}
Efekt jest taki, że kompilując ten pliczek pdflatex-em otrzymuje się plik niezabezpieczony [przed] niczym. Wprawdzie na razie nie odkryłam jeszcze, jak zautomatyzować to wycinanie folii, ale nie jest to aż takie ciężkie, 10–15 minut i po robocie. A potem tylko:
\documentclass[twoside,a4paper]{scrartcl}
\usepackage{pdfpages}
\usepackage[%
left=12mm,top=3mm,textheight=293mm,textwidth=195mm%
]{geometry}
\begin{document}
\includepdfmerge[%
nup=2x4,turn=false,delta=2mm 2mm]{plik1,-,plik2,-}
%\includepdf[pages=-,nup=2x4,turn=false]{plik1} % lub tak, jeśli każdy plik na nowej str.
\end{document}
I otrzymujemy piękny plik pdf z ośmioma foliami na jednej pionowej stronie A4 w dwóch rzędach.
Nie wiem, czy wolno łamać takie zabezpieczenia, ale ostatecznie mam czyste sumienie, bo robię to tylko dla siebie, nie rozpowszechniam tych plików i nie zmieniam treści wykładów.
lol. gratuluję. może się kiedyś przyda
(Komentarz zmodyfikowany 01.11.2006 o 12:48)
gratulacje i ode mnie :) i nie czuj się źle, to na Twój użytek, więc jeśli masz ochote mogłabyś sobie [coś ładnego ;) — wyedytowane przez Ja-Joanna] na marginesie narysować :D
Z "zabezpieczeniami" PDF jest tak jak z DRM - jak tu dać content użytkownikowi, a jednocześnie go nie dać?
Zabezpieczenia PDF to jest DRM.
Ano właśnie.
Proponuje alternatywnie coś takiego (w ~/Library/Scripts/Preview)
#v+
#!/bin/sh
GS="/usr/local/bin/gs"
INFILE="`osascript - <<EOF
tell application "System Events"
tell process "Preview"
tell window 1
get value of attribute "AXDocument"
end tell
end tell
end tell
EOF`"
INFILE="`echo \"$INFILE\"|~/.bin/url2path`"
OUTFILE="`echo \"$INFILE\"|sed -e 's/\.\([^.]\{1,\}\)$/.clean.\1/'`"
GSOPTS="\
-q -dBATCH -dNOPAUSE -dSAFER \
-sDEVICE=pdfwrite \
-c .setpdfwrite"
$GS -sOutputFile="$OUTFILE" $GSOPTS -f "$INFILE"
open "$OUTFILE"
#v-
i jeszcze pomocnik (w ~/.bin/url2path):
#v+
#!/usr/bin/python
import urllib
import sys
def convert (items):
PREFIX='file://localhost'
for line in items:
if line.startswith (PREFIX):
line = line [len (PREFIX):]
else:
return 1
print urllib.unquote (line)
return 0
if len (sys.argv) == 1:
sys.exit (convert (sys.stdin.readlines ()))
else:
sys.exit (convert (sys.argv [1:]))
#v-
Jak do tego dodać FastScripts Lite, to mamy ⌘E jako skrót do odbezpieczania PDFów prosto z Preview.
i takie rozwiązanie czasem bywa przydatne :) <brawo>
Z tego co zauważyłem by wyżej wspomniana metoda działała zabezpieczony dokument musi mieć allow DegradedPrinting albo chociaż allow DegradedPrinting.
A jaka jest różnica między allow Degraded Printing a allow DegradedPrinting i co to w ogóle jest? :)
* miało być
"[...] allow Printing albo chociaż allow DegradedPrinting."
To jest poziom zabezpieczeń dokumentu pdf.
Chciałem przetestować Twoją metodę, a że nie miałem pod ręką żadnego zabezpieczonego dokumentu sam sobie "zabezpieczyłem" za pomocą pdftk. Za pomocą tego sprytnego pakietu można zakodować dokument "z siłą" 40 lub 128 bitów, określić hasło dla oglądającego i dla właściciela dokumentu a także określić zbiór "zezwoleń" zabezpieczonego dokumentu. No i okazało się że Twoja metoda działa gdy dokument jest zakodowany z hasłem właściciela, może zabraniać prawie wszystkiego (edycji, kopiowania, czytania przez screen-readery), ale musi co najmniej pozwalać na "DegradedPrinting".
"A jaka jest różnica między allow Degraded Printing a allow DegradedPrinting?"
Z tego co dowiedziałem się z pomocy programu:
"The permissions section may include one or more of the following features:
Printing - Top Quality Printing
DegradedPrinting - Lower Quality Printing"
Jeśli zabezpieczony nie zezwala na żadną z tych opcji to potraktowany pdfLaTeX-em wywali błąd.
Ale znalazłem obejście tego problemu. Zabezpieczony przed drukowaniem dokument najpierw traktujemy "pdftops" a następnie "pstopdf". Sprawdzałem na przykładowym dokumencie i działa. Oczywiście znikają z pdf-a ficzery np z takiego hyperref-a, ale poza tym dokument wygląda identycznie.
Witam! Też miałem problem z pdfami, ale takich komplikacji jak Wy to sobie nie stwarzałem ;] Polecam program PDF Password Remover v2.5! Idealny program do złamania np. zapomnianego przez hasła z własnych pdfów! ;]
życzę owocnego łamania !
Witam.
Moglibyscie mi dokladnie wytlumaczyc na czym polega ta metoda lamania plików pdf?
Mozecie pisac na maila: cichy04@gmail.com
yyyy a nie prościej pdf advanced password recovery
takie pytanie, czy da sie odbezpieczyć robienie komentarzy - mam problem nawet z wlasnymi plikami
Why Barcelona won real?
<a href= http://cheapedpills.org/ >buy generic v i a g r a</a>