Kod kreskowy na pliku PDF

Kod kreskowy na pliku PDF
Tomasz Wilk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:7
0

Witam

Od niedawna bawię się w programowanie w Delphi. Stanąłem obecnie przed wyzwaniem wygenerowania kody kreskowego i osadzenei go na PDF. Do tej pory w swoich programach PDF generowałem za pomocą synPDF. I teraz pytanie do mądrzejszych głów znacie jakąś darmową prostą bibliotekę która by umożliwiła wygenerowanie prostego kodu kreskowego ze stringa i dała by się łatwo osadzić w pdf ? Z góry dzięki za pomoc

edytowany 1x, ostatnio: Tomasz Wilk
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
1

Google podpowiada cos takiego https://sourceforge.net/projects/zint/ musisz wiedzieć w jakim kodowaniu maja być te paski. Generujesz np PNG i wrzucasz n pdfa

robertz68
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 9 godzin
  • Lokalizacja:Zielona Góra
2

są czcionki w których pisze się kodem kreskowym np. https://pl.fonts2u.com/code-128.czcionka
jeśli możesz takową osadzić w swoim pdf-e to już sprawa rozwiązana, jeśli nie, to wygeneruj taki tekst - kod na formie, i skopiuj wynik jako grafikę. Ją już chyba osadzisz na dokumencie.

UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
0
robertz68 napisał(a):

są czcionki w których pisze się kodem kreskowym np. https://pl.fonts2u.com/code-128.czcionka

jeśli możesz takową osadzić w swoim pdf-e to już sprawa rozwiązana, jeśli nie, to wygeneruj taki tekst - kod na formie, i skopiuj wynik jako grafikę. Ją już chyba osadzisz na dokumencie.

Sama czcionka nie rozwiąże problemu bo trzeba dodać znak startu i sumę kontrolna.

Tomasz Wilk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:7
0

@UglyMan: To widziałem ale zależy mi na jakiejś bibliotece którą będę mógł użyć bezpośrednio w Delphi jako plik .pas Bo niestety moja wiedza jest dość podstawowa ;)

mpaw
  • Rejestracja:około 9 lat
  • Ostatnio:27 dni
  • Postów:530
1

Ja pisałem w pracy generator grafik kodów Ean39 i innych w Basicu. Generalnie korzystałem z Wiki i funkcji do tworzenia i rysowania na mapach bitowych. Musisz zakodować każda liczbę (cyfrę) jako odpowiednia kombinacja pasków + zakodować start i stop (nie pamiętam szczegółów) i narysować ten kod na mapie bitowej. Wiki

Następnie spakować to do funkcji która zwraca taką mapę i wywołać ją w miejscu gdzie chcesz wkleić mapę ;)

Poniżej pseudokod

Kopiuj
function ean39 (string code)
begin
  znaki[] = generujSekwencje();
  (* załadowanie tablicy 
  z kolejnościami pasków *)

  mapaBitowa = nowaBialaMapa(code, znaki);
  (* Tworzymy mapę która ma 
  odpowiedni rozmiar, kalkulowany
  na podstawie kodu i zakodowanych
  znaków *)

  for (i = 1; i <= code.length; i += 1)
  begin
    aktualnaPozycjaX = zwricWspolrzedna(znaki, code, i);
    rysujZnak(mapaBitowa, aktualnaPozycjaX, znaki, code [i]);
  end

  (* Miejsce na nieuwzględnione
  operacje *)

  return mapaBitowa;
end

That's all folks ;)
edytowany 10x, ostatnio: mpaw
mpaw
Ps. Ja jeszcze dodałem na początku instrukcję sprawdzającą czy kod jest poprawny, bo jeżeli nie, nie ma sensu przetwarzać całej funkcji tylko np zwróć czarny kwadrat. ;)
robertz68
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 9 godzin
  • Lokalizacja:Zielona Góra
0

fast report ma eksport do pdf-a, ale nie wiem czy jest to w wersji dodawanej do Delphi?

@UglyMan w przypadku kodu Code128 (do którego wysłałem linka) wystarczy pisać czcionką "kreskową" plus na koniec wyliczyć z tego co się napisało cyfrę kontrolną. Jedyna wada tego kodowania że czasami trzeba włączyć w czytnikach kodów kreskowych aby czytał to kodowanie.

edytowany 1x, ostatnio: robertz68
PD
  • Rejestracja:ponad 22 lata
  • Ostatnio:3 minuty
2

W FortesReport - komponencie do tworzenia raportów jest komponent do kodów kreskowych oraz eksport raportu do pdf


pozdrawiam
paweld
GS
  • Rejestracja:ponad 14 lat
  • Ostatnio:około 15 godzin
0

@Tomasz Wilk:
Standardów kodów kreskowych jest wiele. Które z nich Cię interesują ?
Mam zrobione rysowanie na dowolnym canvasie kodów Ean13 oraz code128B

Tomasz Wilk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:7
0

@grzegorz_so: Nie ma to aż takiego znaczenia bo czytnik kodów którego będę używał obsługuje wiele z nich, ale Ean13 był by OK :)

GS
  • Rejestracja:ponad 14 lat
  • Ostatnio:około 15 godzin
0

@Tomasz Wilk:
Mam kod rysujący ean13n na dowolnym canvasie, i nie do końca rozwiązanym problemem jest skalowanie wydruku , milimetry albo DOTS ..
I fajnie było by zrobić z tego mojego kodu niezależny unit. Pomyślę o tym, dwa, trzy dni i poradzę sobie z tym

edytowany 3x, ostatnio: grzegorz_so
Tomasz Wilk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:7
0

@grzegorz_so: Trzymam kciuki, ja obecnie realizuje bardziej potrzebne rzeczy w programie, to miał być miły dodatek i wiadomo jak to jest, człowiek zabiera się za ten dodatek myśląc że to będzie banał a na razie to największy problem się okazuje :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.