Kod kreskowy na pliku PDF

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

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

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.

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.

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 ;)

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

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
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.

2

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

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

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 :)

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

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1