tracer des rectangles sur plusieurs pages - Divers - Programmation
Marsh Posté le 19-09-2006 à 15:21:55
Et hop !
Code :
|
T'as juste à lancer ton impression depuis n'importe quel navigateur.
Marsh Posté le 19-09-2006 à 15:29:09
Super !
Je teste ça ce soir
Mais d'avance un grand Merci !!!
Marsh Posté le 20-09-2006 à 07:46:48
C'était exactement ce qu'il me fallait ;-)
Je vais donc partir d'un fichier texte contenant donc les dimensions
et générer en sortie du Html (en m'inspirant de ce que tu m'as donné)
En gérant le pagebreak évidemment au passage ...
Reste à trouver comment ouvrir / lire un fichier texte
et écrire dans un autre, je vais sans doute trouver ça
facilement du coté Javascript ...
Marsh Posté le 20-09-2006 à 23:19:10
Plutôt du côté php je pense.
Car si JavaScript peut effectivement lire un fichier il ne peut pas en écrire un.
Marsh Posté le 21-09-2006 à 01:52:00
pas besoin d'en écrire un, il altère la page et t'as plus qu'a l'imprimer
Marsh Posté le 21-09-2006 à 12:01:28
Ok dwogsi Bonne remarque
Par contre 0x90 j'ai pas compris ta reflexion ?
car je dois partir d'un fichier texte
ex : FIC.TXT
Contenu
=>
150;100
200;10
50;15
...
et ensuite générer un html
ici 3 rectangle avec un algorithme
qui va me dire le rectangle 1 et 2 tu l'imprimes sur la 1ere page
et le recangle 3 sur la 2ème ..
Et cet algo je pensais le mettre dans un .Html donc en PHP
Au final : j'aurai 3 fichiers
- le fichier FIC.TXT de parmètrage
- le .HTML contenant le PHP
- le .HTML recréé à chaque fois qui servira à l'impression ...
Marsh Posté le 21-09-2006 à 12:13:39
Si c'est pour utilisation "humaine" j'aurais fait ca :
- une seule page en html+javascript avec une textbox, tu rentre le contenu du FIC.TXT dedans, il le lit, il génère les rectangles (tout ca en JS à grand coup de DOM) puis cache la textbox et enfin lance l'impression.
ca fait moins de fichiers et moins de langages différents.
Marsh Posté le 21-09-2006 à 12:14:13
Au fait, à la base, tu veux quoi exactement ? Parcequ'une petite Macro Word, ce sera limite plus simple en fait... (la solu de 0x90 aussi d'ailleurs)
Marsh Posté le 21-09-2006 à 13:18:55
Bon ...
j'ai une liste de 500-600 étiquettes
à sortir et la solution HTML / PHP me plait bien car avec internet
et en plaçant le coding chez mon hebergeur, le pote
en question pourra pré-visualiser et lancer / sortir la totalité
(ou qques pages ) de ces étiquettes partout(chez lui / au boulot)
Il y a quand même un algo (léger) à mettre en place
car je dois déterminer / positionner un nombre d'étiquettes
par page (fonction marge et écart entre étiquettes + alignement
des étiquettes )
C'est + clair ?
Marsh Posté le 21-09-2006 à 14:03:25
d'accord
ça me semble rigolo comme truc
moi j'ai dû faire la même chose en .NET et du coup j'ai généré un PDF à la volée (pas facile de dessiner un code barre à la main dans un PDF )
Marsh Posté le 21-09-2006 à 14:29:40
;-)
Sympa oui !!! mais pour le gars qui me demande ça, ça devenait
un vrai problème et ça faisait 1 an qu'il recherchait un
voisin informaticien ...
Marsh Posté le 09-10-2006 à 08:54:37
MagicBuzz a écrit : Et hop !
|
Me revoici
Alors finalement je suis passé par du Pascal pour procéder ainsi :
1) Je pars d'un fichier contenant mes largeurs/hauteurs (mm) d'étiquettes
ex :
25;100
50;75
100;35
2) je lance mon programme qui me calcule les coordonnées des étiquettes
3) je génére en sortie un .html comme celui que MagicBuzz m'a donné en exemple ...
Sauf que => j'ai calculé mes coordonnées en coordonnées absolues
donc niveau "position" j'ai mis "absolute" au lieu de "relative"
et je pensais qu'après haque saut de page (Pagebreak)
les rectangles iraient se positionner sur la page suivante ...
mais non
=>
Tous les rectangles/etiquettes (de la 1ere page + des pages suivantes ) vont se confondre sur le 1ere page et dans les autres pages (Pagebreak) ... il n'y a rien
Vous voyez une soluce simple pour corriger ce pb, ou je dois recalculer l'ensemble de
mes coordonnées en "relative"
Thanks ... je progresse !
Marsh Posté le 09-10-2006 à 12:34:35
je ne pense pas qu'il y ait de solution "simple".
tente de faire un + 29.7cm au top des étiquettes de la seconde page et ainsi de suite (et du coup, plus de pagebreak), avec un peu de pot ça marchera
Marsh Posté le 09-10-2006 à 12:35:33
regroupe toutes les etiquettes d'une même page dans un <div></div> en position:relative; top:0; left:0;
Marsh Posté le 09-10-2006 à 12:43:57
a soluce de 0x90, si elle marche, me semble mieux que la mienne, et plus simple à mettre en place (plus propre en tout cas )
Marsh Posté le 09-10-2006 à 13:16:16
Reparlons de la soluce 0x90 ...
Je vois pas comment adapter le code ci-dessous
Est-ce après la balise <body> que je dois placer
le DIV, l'attribut relative ...
Si je vous pose la question c'est qu'après 3,4 essais
benh j'ai que des erreurs de syntaxe
Code :
|
Marsh Posté le 09-10-2006 à 13:50:32
essaie ça
|
Marsh Posté le 09-10-2006 à 13:58:04
Marche pô !
5 pages mais
=>
Tout est sur la 1ere page ... uniquement ...
et ensuite 4 pages vides
Marsh Posté le 09-10-2006 à 14:38:13
met le .page en position relative sinon l'absolut des rectangles se fera à partir de la page web entière et pas du bloc page.
Marsh Posté le 09-10-2006 à 15:26:47
Bon le truc en dessous doit faire en gros ce que tu voulais mais pour que tout marche bien il faut lors de l'impression configurer les marges "du navigateur".
Sous FF comme sous IE: aperçu avant impression, mise en page et tu mets les 4 marges à 0 et tu vires également en-tête et pied de page.
Et zou roulez jeunesse:
Code :
|
Note: il doit être possible d'optimiser le positionnement des rectangles pour pouvoir en faire tenir le plus possible sur une page ( sans retour à la ligne à chaque fois), ne serait-ce qu'en jouant sur les floatants, mais j'ai pas le temps la
Note2: c'est du code écrit à l'arrache, si certains ont envie de corriger des morceaux surtout qu'ils ne se gènent pas!
Marsh Posté le 09-10-2006 à 16:09:39
Pas mal Anapajari !!
Seulement ... je dois partir d'un fichier avec plein de dimensions de rectangle donc pour les rentrer à la main c'est pas top ...
et la difficulté du bazar c'est justement le
positionnement particulier des rectangles ...
et là mon algo en Pascal (ancestral) fonctionne
mais bon
dès que j'ai réglé le pb du relative / absolute (cf : 0X90),
je posterai un exemple de résultat ...
Marsh Posté le 09-10-2006 à 16:17:51
vttman2 a écrit : Pas mal Anapajari !! |
Tu peux mettre ta liste directement dans le texte area hein !!!
Et ça calcule tout seul pour pas que tu te retrouves avec un rectangle à cheval sur deux pages.
Par contre ça ne fait pas la réorganistation de tes rectangles dans ce gout la:
|
Marsh Posté le 10-10-2006 à 07:45:49
0x90 ça marche impec !
Rest un petit bug à corriger, un rectangle à cheval sur 2 pages
sur ... une centaine de bien positionné
Bon c'est sans doute une histoire de marges ... je vais rectifier
ça asap et poste un exemple de résultat ...
A tous encore Merci pour votre aide précieusSSSe !!!
Marsh Posté le 12-10-2006 à 19:24:26
un exemple de fichier html généré automatiquement (heureusement )
Les rectangles sont ordonnés par programme pascal, l'algo est sympa ...
et je pars donc d'un fichier txt contenant les hauteurs et largeurs
ex de contenu:
25;100
55;35
100;15
ex de résultat :
Code :
|
Marsh Posté le 12-10-2006 à 19:58:33
Ajoute ca à ta css:
Code :
|
et economise toi tout ces attributs dans tout les rectangles
( et tu peut complètement virer le display:block; c'est déja inclus avec la balise <div> par défaut )
Marsh Posté le 19-09-2006 à 13:50:19
Pour faire simple
Je recherche comment tracer des rectangles
de tailles prédéfinis dans une page format A4 !?
J'ai en entrée un fichier contenant des dimensions l(argeur) X L(ongueur) et un numéro de page où placer le rectangle
Je voudrais en résultat, sortir un .DOC ou
sortir une page précise (donc remplie de rectangles) ?
Le problème est que je ne vois pas comment
niveau code (VB, HTML, PHP, JAVASCRIPT ou autres) composer ma page et l'imprimer ?
Quelqu'un peut-il m'éclairer là-dessus ?