>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

PdfDing i poskramianie wiecznego chaosu PDF

PdfDing Logo

Większość z nas ma folder Downloads lub serwer domowy, na którym przez lata gromadzą się setki plików PDF. Dokumentacja techniczna, książki o programowaniu systemowym, paragony, umowy, skany i artykuły badawcze. Zazwyczaj znalezienie odpowiedniego akapitu w takim bałaganie staje się koszmarem: jeden plik jest otwarty w podglądzie przeglądarki, inny jest pobrany na tablet, a notatki zostały na służbowym laptopie.

Jeśli kiedykolwiek używałeś linkding do zakładek, koncepcja będzie znajoma. Developer mrmn2 zaczerpnął z niej inspirację, aby stworzyć PdfDing — lekkie, samodzielnie hostowane rozwiązanie typu all-in-one do czytania, katalogowania i edycji plików PDF bezpośrednio przez interfejs webowy.

PdfDing Demo Screenshot

Co potrafi ten serwis

PdfDing rozwiązuje prosty problem: zapewnia jeden punkt dostępu do wszystkich dokumentów z synchronizacją stanu między urządzeniami. Otwierasz książkę na komputerze stacjonarnym, zamykasz kartę, a wieczorem kontynuujesz czytanie od tej samej strony na telefonie.

Projekt pokrywa podstawowe potrzeby zarządzania dokumentami bez rozbudowanych funkcji korporacyjnych.

Czytanie i synchronizacja

Główną funkcją czytnika jest śledzenie postępu. Interfejs pokazuje wyraźne paski postępu dla każdego pliku, dzięki czemu możesz od razu zobaczyć, który podręcznik jest w połowie przeczytany, a który jeszcze nie został nawet dotknięty.

Dla komfortowego czytania autor dodał:

  • Motyw ciemny
  • Tryb odwrócenia kolorów dla starych skanów z białym tłem
  • Wiele opcji układu stron dla różnych ekranów
  • Panel notatek z obsługą Markdown tuż obok dokumentu

Adnotacje i podpisy

PdfDing zawiera w pełni funkcjonalny edytor znaczników. Możesz podświetlać tekst markerem, rysować odręczne diagramy na marginesach i wstawiać bloki tekstowe.

Osobny plus to obsługa podpisów. Zapisujesz swój podpis w profilu raz, a następnie możesz szybko wstawić go na umowach i fakturach z dowolnego autoryzowanego urządzenia. Wszystkie komentarze i podświetlenia są zbierane w osobnym panelu, skąd można je wyeksportować bez przesyłania najcięższego pliku źródłowego.

Organizacja katalogu

Gdy dokumentów jest ponad sto, płaska lista przestaje się sprawdzać. W PdfDing możesz budować strukturę według własnych potrzeb:

  • Workspaces do rozdzielania plików osobistych i służbowych
  • Zagnieżdżone kolekcje
  • Wielopoziomowe tagi
  • Ulubione i archiwum dla przestarzałych wersji

Dostępne są akcje masowe do operacji na wielu elementach. Możesz wybrać dwadzieścia raportów z ostatniego kwartału i wysłać je do archiwum lub przypisać wspólny tag w kilka kliknięć.

Udostępnianie i bezpieczeństwo

Jeśli musisz pokazać dokument koledze lub klientowi, nie musisz przesyłać pliku przez komunikator. W aplikacji możesz wygenerować publiczny link lub kod QR dla konkretnego dokumentu lub całej kolekcji. Dostęp może być chroniony hasłem lub ograniczony czasowo, jeśli to konieczne.

Pod kątem bezpieczeństwa też wszystko jest w porządku:

  • Obsługa SSO przez protokół OIDC
  • Uwierzytelnianie dwuskładnikowe przez kody TOTP
  • Klucze sprzętowe i biometria przez standard WebAuthn

Jak to działa pod maską

Silnikiem projektu jest Python. Autor nie przeciążył systemu złożonością mikroserwisów, wybierając architekturę monolityczną, która łatwo się wdraża na skromnym VPS lub domowym Raspberry Pi.

Przy okazji, rozwój otrzymał wsparcie finansowe z European NGI0 Commons Fund (program Next Generation Internet przez NLnet). To dobry znak: autor ma zasoby na rozwój bazy kodu, a projekt nie zostanie porzucony miesiąc po wydaniu.

NLnet foundation logo

Jak uruchomić to samodzielnie

Najłatwiejszy sposób to uruchomienie serwisu przez Docker Compose. Tworzysz standardowy manifest:

services:
  pdfding:
    image: mrmn/pdfding:latest
    container_name: pdfding
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    environment:
      - SECRET_KEY=your-super-secret-key-change-me

Po uruchomieniu docker compose up -d panel webowy będzie dostępny na porcie 8080. Do użytku produkcyjnego wystarczy przekierować ruch przez Nginx Proxy Manager, Traefik lub Caddy z certyfikatem SSL.

Dla klastrów dokumentacja zawiera gotowe wykresy Helm, więc wdrożenie w Kubernetes też nie będzie problemem.

Kto to doceni

PdfDing raczej nie zastąpi ciężkich systemów zarządzania dokumentami jak Paperless-ngx, jeśli potrzebujesz automatycznego rozpoznawania tekstu (OCR), złożonych potoków przetwarzania przychodzącej poczty i parsowania kodów kreskowych.

Ale jeśli szukasz czystego, szybkiego czytnika i katalogu dla książek, dokumentacji, podręczników i umów z możliwością szybkiego naniesienia podpisu z tabletu, ten projekt idealnie się sprawdzi. Możesz wypróbować interfejs przed instalacją na oficjalnej demo.

Powiązane projekty