Selve systemet med at lave data til edifact eller lign regner jeg med ikke
er et problem for mig, det er blot definitionen af en label, der er
problemet...
Leif
Jeg bruger FPDF klassen til flere af de pdf ting jeg laver. På
fpdf.org kan du se en masse eksempler på f.eks. barcodes, måske kan
det hjælpe dig?
--
Mvh
Kim Emax
Jeg kunne godt være interesseret i dit modul når det er færdigt, hvis
du får det til at virke, og hvis det er noget som du havde tænkt dig
at dele ud af :-)
/Danjel
> PostDanmark, er bl.a. lidt "picky" med stregkoden,
Mon ikke det n�rmere er udstyret, der angiver hvilke barcodes, der kan
l�ses?
En barcode er ikke bare en barcode.
--
Med venlig hilsen
Stig Johansen
Jeg er lidt nysgerrig her; hvad er der af krav til det - udover det som
Danjel n�vner med stregkoden?
Hvordan skal det f�rdige resultat se ud? Og hvor kommer de n�dvendige
data fra (jeg t�nker stregkode dataen eller andre data hvis de skal
komme fra Post Danmark)?
Det kunne jo v�re jeg lige ville pr�ve at lave et eller andet... :)
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
People who claim they don't let little things bother
them have never slept in a room with a single mosquito.
Jeg bruger tcpdf, der bl.a. bruges i phpmyadmin og PHPExcel.
tcpdf laver ogs�ソス stregkoderne; s�ソス mangler jeg bare at PostDanmark siger god
for dem, og giver mig nogle stregkodeintervaller...
<?php
// charset=utf-8
require_once('PHPExcel/Shared/PDF/tcpdf.php');
// Dummy data til test
$afsender="430000000\nJoachim von And\nPengetank alle 1\90210 Andeby";
$modtager="Anders And\G�ソスser�ソスdvej 13\90210 Andeby";
$tnt="01078523765DK"
$ordrenr=12345;
$bar1="12S054";
$bar2="2WTI45";
$pakketypetxt="Privatpakke";
$dato="11.06.2009";
$pdf = new TCPDF("L", "mm", "A4", true, 'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Leif Neland');
$pdf->SetTitle('Pakkelabel');
$pdf->SetSubject('Test');
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
define ('PDF_MARGIN_TOP', 5);
$pdf->SetMargins(5, 2,162);
$pdf->SetAutoPageBreak(FALSE, 5);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->setLanguageArray($l);
$pdf->SetFont('helvetica', 'B', 20);
$pdf->AddPage();
//rammer
$pdf->Rect(5,5,130,200);
$pdf->Line(5,93,135,93);
$pdf->Line(5,156,135,156);
$pdf->Line(5,176,135,176);
$pdf->Line(20,27,87,45);
$pdf->Line(20,45,87,27);
$pdf->ImageEps("POST-4F.EPS", 10,6,30);
$pdf->SetXY(125,0);
$pdf->Write(0, $pakketypetxt,'',0, 'R');
$pdf->Write1DBarcode($bar1, "C128A",90,77,43,15,0.350,
array('text' => true, 'font' => 'helvetica', 'fontsize' => 8,
'stretchtext' => 0));
if ($bar2>"") {
$pdf->Write1DBarcode($bar2, "C128A",18,160,35,15,0.350,
array('text' => true, 'font' => 'helvetica', 'fontsize' => 8,
'stretchtext' => 0));
};
$pdf->Write1DBarcode($tnt, "C39",18,180,95,24,0.350,
array('position' => 'S', 'text' => true, 'font' => 'helvetica',
'fontsize' => 12, 'stretchtext' => 1));
$pdf->SetFont('helvetica', 'B', 10);
$pdf->setXY(15,20);
$pdf->Cell(0, 10, 'AFSENDER', 0, 1, 'L');
$pdf->SetFont('helvetica', '', 9);
$pdf->setXY(18,26);
$pdf->MultiCell(0, 0, $afsender, 0, 1, 'L');
$pdf->SetFont('helvetica', 'B', 10);
$pdf->setXY(15,46);
$pdf->Cell(0, 10, 'MODTAGER', 0, 1, 'L');
$pdf->SetFont('helvetica', '', 11);
$pdf->setXY(18,56);
$pdf->MultiCell(0, 0, $modtager, 0, 1, 'L');
$pdf->SetFont('helvetica', '', 11);
$pdf->setXY(18,55);
$pdf->Cell(0, 0, "Ordrenr. ".$ordrenr, 0, 1, 'R');
$pdf->SetFont('helvetica', 'B', 11);
$pdf->setXY(20,150);
$pdf->Cell(0, 0, "Afsendt Dato:", 0, 1, 'L');
$pdf->SetFont('helvetica', '', 11);
$pdf->setXY(48,150);
$pdf->Cell(0, 0, $dato, 0, 1, 'L');
$pdf->SetFont('helvetica', 'B', 11);
$pdf->setXY(70,150);
$pdf->Cell(0, 0, "Kolli", 0, 1, 'L');
$pdf->SetFont('helvetica', '', 11);
$pdf->setXY(82,150);
$pdf->Cell(0, 0, "1 af 1", 0, 1, 'L');
$pdf->SetFont('helvetica', 'B', 11);
$pdf->setXY(98,150);
$pdf->Cell(0, 0, "V�ソスgt", 0, 1, 'L');
$pdf->SetFont('helvetica', 'B', 11);
$pdf->setXY(125,150);
$pdf->Cell(0, 0, "Kg.", 0, 1, 'L');
$pdf->SetFont('helvetica', 'B', 40);
$pdf->setXY(98,132);
$pdf->Cell(0, 0, "IT", 0, 1, 'R');
$pdf->Output('pakkelabel.pdf', 'I');
?>
> Danjel wrote:
>> PostDanmark, er bl.a. lidt "picky" med stregkoden,
> Mon ikke det nærmere er udstyret, der angiver hvilke barcodes, der
> kan læses?
Primært kapacitet i maskinsorteringen af pakker. Bliver stregkoden
ikke læst første gang, ligger pakken og tager plads op på systemet. Så
jo højere kvalitet stregkode, jo flere pakker kan der sorteres
pr. time, og demed en bedre udnyttelse af investeringen.
Vi[1] kan læse langt de fleste stregkoder efter en 2-3 forsøg, men
det er i sagens natur ikke specielt befordrende for økonomien i
pakkebefordringen.
1. Jeg arbejder for det firma der har leveret sorteringsudstyr til
PDK.
--
/Wegge
> Og hvor kommer de n�dvendige
> data fra (jeg t�nker stregkode dataen eller andre data hvis de skal
> komme fra Post Danmark)?
Jeg ved ikke lige hvordan systemet fungerer i dag, men for � snes �r siden,
fungerede 'pakkelabels' n�rmest som (blanco) checks.
Hvis man bestilte eks. 1000 labels, blev de fortl�bende nummereret, og
ejerforholdet - eller udleveringen - registreret til den p�g�ldende kunde.
Via afl�sninger af stregkoden (modtagelse ... aflevering), kunne den
aktuelle porto opg�res.
Derefter blev regningerne sendt til kunden.
Det g�r man sikkert stadig, s�... Det l�d bare lige som en hyggelig
opgave at pusle med, men nu er det jo l�st, kunne jeg se. :)
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
Tro ikke brugerne vil g�re noget for at undg� dit killfilter
- S� vigtig er du heller ikke!
> Det g�r man sikkert stadig, s�... Det l�d bare lige som en hyggelig
> opgave at pusle med, men nu er det jo l�st, kunne jeg se. :)
Ja, jeg s� godt at Leif lavede et indl�g, faktisk pr�cist samme minut som
dig :)
Jeg lavede et web baseret indk�bsbestillings system til PDK indk�b i
'97-'98, hvor hovedform�let var h�ndtering af 'stregkodeblanketter' da der
var der den st�rste besparelse/kvalitetssikring l�.
Derfor min interesse - nok mest at nostalgiske �rsager.
Men det vil faktisk undre mig hvis man f�r lov til selv at printe
'blanketter', da jeg umiddelbart kan se 2 risici:
1) Genbrug af numre.
Hvis man af en eller anden �rsag 'kommer til' at bruge samme nummer 2 gange
kunne jeg forestille mig det giver noget 'b�vl' i deres Track & Trace -
system.
2) Misbrug af numre.
Hvis man (mis) bruger andres numre, kan man reelt sende pakker p� andres
regning.
Ja, jeg havde samme tanker - deraf mit sp�rgsm�l om hvor man skulle f�
dataene fra.
> 2) Misbrug af numre.
> Hvis man (mis) bruger andres numre, kan man reelt sende pakker p� andres
> regning.
Ja, det kunne man jo komme ud for - ogs� uhensigtsm�ssigt jf. dit f�rste
punkt hvis man ikke har styr p� dine numre.
PostDanmark m� jo have en webservice eller noget lignende til at
udlevere en r�kke numre alt afh�ngigt af den m�ngde man k�ber.
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
People who claim they don't let little things bother
En af mine begrundelser for at udskrive labels selv er, at webpack p� et
tidspunkt var ustabilt, s� vi stod og ikke kunne pakke ordrer, fordi vores
pakkesystem kr�ver at ordrenummer og track-and-tracenummer stemmer sammen.
Skulle webservicen give et pakkenummer, var man jo lige vidt.
Desuden bliver dankortbetalinger f�rst h�vet, n�r pakken er pakket, s� der
er vi ogs� afh�ngig af et fremmet system.
Man skal uploade en EDIFACT-fil med data for de pakker, man sender.
Jeg kan forestille mig at pakken hurtigt bliver sparket til side, hvis
stregkoden ikke er med i en aktuel datafil eller er dubleret.
Men jeg skal nok rapportere videre om forl�bet.
Leif
Vi gør det her, jeg kan godt sende en pdf med vores design til "nogen"
hvis det skulle ønskes...
Designet, stregkoder m.m. skal forhåndsgodkendes af pdk, og så bliver
man tildelt nummerserier som man kan bruge.
Vi får et par tusind ad gangen....
Jeg vil som sagt gerne sende et layout, men jeg er indlagt med min
datter de næste 2 uger (fra mandag), så jeg vil ikke love at jeg kan
gøre noget før jeg er tilbage....
Man kan fra pdk få at vide hvilke specs der er, men det er ikke det
hele der står der...
Hvis man f.eks sender paprør skal stregkoden sidde parralelt med
røret, det står der ikke nogen steder, vi opdagede det først da vi fik
150 paprør retur :-(
/Danjel
Jeg ved man kan - ved dog ikke om det kr�ver en s�rlig "tilladelse"
ifbm. softwaren til PostDK.
F.eks. EDI-soft har en l�sning med en lille windows klient der udprinter
pakkelabels via en termoprinter. Man k�ber blot programmet og
termoprinter - og s� k�ber man nummerserier af PostDanmark man indtaster
i programmet (mener det er EDI-Soft der dog indtaster nummerserierne!).
Derefter kan man udprinte som man lyster.
Jeg ved ikke om EDI-Soft har special aftale med PostDanmark - men det
burde man jo kunne h�re PostDanmark om :)
--
Johan Holst Nielsen
www.phpgeek.dk
>
> Men det vil faktisk undre mig hvis man f�r lov til selv at printe
> 'blanketter', da jeg umiddelbart kan se 2 risici:
> 1) Genbrug af numre.
> Hvis man af en eller anden �rsag 'kommer til' at bruge samme nummer 2 gange
> kunne jeg forestille mig det giver noget 'b�vl' i deres Track & Trace -
> system.
> 2) Misbrug af numre.
> Hvis man (mis) bruger andres numre, kan man reelt sende pakker p� andres
> regning.
>
Da stregkoden skal st� i en fil, der uploades til postdk senest en time
f�r pakken bliver sorteret, vil det betyde at en pakke, der ikke er i
filen, vil blive afvist. Formoder jeg :-)
Hver kunde har sit eget login/password til upload, og der er kun �bent
for aftalte ip-adresser.
S� jeg tror postdk har check p� snydemuligheder.
Er du et firma med aftale, s� kan du sikkert miste aftalen, hvis du snyder.
Er du uden aftale, og bare lusker en pakke med falsk stregkode i
pakkeburet p� posthuset, kan de jo bare konfiskere pakken :-)
Leif
> Da stregkoden skal stå i en fil, der uploades til postdk senest en
> time før pakken bliver sorteret, vil det betyde at en pakke, der
> ikke er i filen, vil blive afvist. Formoder jeg :-)
Der bliver taget et billede af pakkelabelsen, hvorefter der så sidder
en operatør og indtaster postnummer og så meget af adressen der nu er
nødvendig, for at man kan sortere pakken. Det samme gør sig gældende
for de 2-4% af dataleverandørerne, der ikke kan finde ud af at
overholde specifikationen.
Jeg taler her kun om hvad der sker med EDIFACT pakker der når frem
til maskinsorteringen. Om der evt. sker en frasortering på
indleveringsposthuset, skal jeg ikke kloge mig på.
--
/Wegge
Leif
> Hvorfor skal pakkelabelen dog indtastes, når alle nødvendige data
> allerede er kendt af postdk, fordi data er sendt via EDIFACT eller
> Webpack?
Det er kun i de tilfælde, hvor data af en eller anden grund ikke er
kommet frem, det sker. Du skal læse mit svar som en kommentar til din
formodning.
--
/Wegge
> Da stregkoden skal st� i en fil, der uploades til postdk senest en time
> f�r pakken bliver sorteret, vil det betyde at en pakke, der ikke er i
> filen, vil blive afvist. Formoder jeg :-)
Takker for svaret.
Son n�vnt kender jeg kun systemet fra dengang det var fortrykte blankettere
man 'k�bte'.
Ud fra dit oprindelige indl�g kunne man godt f� det indtryk, oprettelsen i
T&T systemet forgik ved udlevering af nummerserien, men det er �benbart nu
kunden, der selv opretter numrene i T&T.
Det beroliger mig, for s� f�r formentlig en afvisning hvis man har levet ged
i sin nummerserie.
Privatpakke 0707 852 376 5 DK - kan ikke godkendes:
a.. Krav til ratio er ikke opfyldt. Testen viser 2.0 og kravet er, at
forholdet mellem de tykke stave og mellemrum og de tynde stave og mellemrum
skal v�re 1: 2.5 - 3.0
Serviceydelse 2WTI45 - Modtagerkvittering - kan ikke godkendes:
a.. Krav til det smalle element ("X") er ikke opfyldt. Testen viser 0.3465
og kravet er, at forholdet mellem de smalle stave og smalle mellemrum skal
v�re min. 0.3500 og max. 0.5100
LIT stregkode - 12S054 - kan ikke godkendes:
a.. Krav til stregkodens l�ngde er ikke opfyldt. Stregkoden er 35 mm og m�
kun v�re 32 mm.
(LIT stregkoden er opbygget s�ledes: 12SXXX, hvor XXX er et l�benummer,
tildelt af Post Danmark. Denne stregkode er ikke et krav).
Det kunne det.
Jeg rettede i tcpdf, s� jeg kunne �ndre forholdet mellem sorte og hvide
streger; en faktor 1.15 gjorde maskinen glad. Og et andet sted, s� jeg kunne
lave de tykke stave endnu tykkere.
Leif
Leif