PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Scan PDF Multipages
Scan PDF Multipages
Started by Patrick PELISSON, Feb., 15 2019 11:04 AM - 8 replies
Registered member
98 messages
Popularité : +2 (2 votes)
Posted on February, 15 2019 - 11:04 AM
Bonjour,

Dans mon application, j'ai un module 'GED' qui est basé sur l'exemple WD Scanner Twain.
Je rencontre un problème pour la gestion des documents multipages lors du scan.
En effet, il me faut gérer les deux façons de scanner les documents multipages.
- Imprimante avec chargeur qui scanne toutes les pages en une seule fois…
- Imprimante avec feuille à feuille ou chaque page scannée doit être fusionnée après une demande d'ajout.

Avez-vous une solution pour piloter cela ?
Merci d'avance pour votre aide
Cordialement à tous
Patrick PELISSON

--
Patrick PELISSON
Posted on February, 15 2019 - 1:42 PM
Bonjour
Sans avoir testé pour scanner de deux façons différentes mais pour imprimer de deux façons différentes, je dirai vite fait :
- Déclarer dans les périphériques de Windows 2 scanners (en fait le même mais en double) dont l'un serait par défaut en telle configuration et l'autre en une autre configuration.
Puis par progammation, piloter l'un ou l'autre selon.
Je n'ai pas essayé, mais cela peut être une piste... A essayer !
cdt
Posted on February, 15 2019 - 2:37 PM
Le 15/02/2019 à 10:04, Patrick PELISSON a écrit :
Bonjour,

Dans mon application, j'ai un module 'GED' qui est basé sur l'exemple WD
Scanner Twain. Je rencontre un problème pour la gestion des documents
multipages lors du scan.
En effet, il me faut gérer les deux façons de scanner les documents
multipages. - Imprimante avec chargeur qui scanne toutes les pages en
une seule fois…
- Imprimante avec feuille à feuille ou chaque page scannée doit être
fusionnée après une demande d'ajout.

Avez-vous une solution pour piloter cela ?
Merci d'avance pour votre aide
Cordialement à tous
Patrick PELISSON

--
Patrick PELISSON

Pour ma part je scan feuille par feuille en automatique
Puis j'imprime en PDF qualité moyenne et puis je fusionne
Cela marche très bien
Bon WIndev
Registered member
98 messages
Popularité : +2 (2 votes)
Posted on February, 15 2019 - 2:48 PM
Merci de votre réponse mais je pense que je me suis mal exprimé.
Je recherche une brique de codes me permettant de gérer une numérisation Twain multipages vers un fichier PDF unique.
J'ai vu dans ce forum que cela avait déjà était débattu mais sous une ancienne version de Windev... Compte tenu de l'évolution de Windev, existe-t-il un moyen plus simple ?
Si quelqu'un à déjà résolu ce problème...
Merci d'avance du coup de main
Cordialement

--
Patrick PELISSON
Registered member
98 messages
Popularité : +2 (2 votes)
Posted on February, 15 2019 - 4:36 PM
Re,

Voici mon code pour un scanner avec un chargeur multipages.
// Variables
nDefaut est un entier = 0
nNumPage est un entier = 0
// Acquisition tant qu'il y a des pages dans le chargeur
BOUCLE
// Numérisation dans un fichier PDF
SI TwainVersPDF("Fichier" + NumériqueVersChaîne(nNumPage + 1) + ".PDF",Faux,nDefaut,nDefaut,nDefaut,nDefaut,nDefaut,Faux,Vrai)= Faux ALORS SORTIR
nNumPage ++
// Si encore des pages dans le chargeur....
SI TwainEtat() = teNonChargé ALORS SORTIR
FIN
// Au moins une page de numérisée ?
SI nNumPage = 0 ALORS
Erreur("Échec de la numérisation", ErreurInfo())
SINON
ToastAffiche(nNumPage + "pages ont été scannées",toastCourt,cvMilieu,chCentre,BleuPastel)
SAI_NOM_DOC..Visible=Vrai
FIN


Je recherche une aide pour le code d'un scanner à vitre ou l'utilisateur scanne son document page après page pour constituer un seul PDF à la fin.
Cordialement

--
Patrick PELISSON
Posted on February, 16 2019 - 4:27 AM
Le 15/02/2019 à 15:36, Patrick PELISSON a écrit :
Re,

Voici mon code pour un scanner avec un chargeur multipages.
// Variables
nDefaut est un entier = 0
nNumPage est un entier = 0
// Acquisition tant qu'il y a des pages dans le chargeur
BOUCLE
    // Numérisation dans un fichier PDF
    SI TwainVersPDF("Fichier" + NumériqueVersChaîne(nNumPage + 1) +
".PDF",Faux,nDefaut,nDefaut,nDefaut,nDefaut,nDefaut,Faux,Vrai)= Faux
ALORS SORTIR
    nNumPage ++
    // Si encore des pages dans le chargeur....     SI TwainEtat() =
teNonChargé ALORS SORTIR
FIN
// Au moins une page de numérisée ?
SI nNumPage = 0 ALORS
    Erreur("Échec de la numérisation", ErreurInfo())
SINON
    ToastAffiche(nNumPage + "pages ont été
scannées",toastCourt,cvMilieu,chCentre,BleuPastel)
    SAI_NOM_DOC..Visible=Vrai
FIN


Je recherche une aide pour le code d'un scanner à vitre ou l'utilisateur
scanne son document page après page pour constituer un seul PDF à la fin.
Cordialement

--
Patrick PELISSON


Pour ma part je numérise page par page en jpeg
Dans un tableau afin de pouvoir manipuler celui-ci
et à chaque page j'imprime en pdf
et puis je fusionne.
le code est plus ou moins pareil
G_S_ScanImage = ""
SI BDebut ALORS
ZoneRépétéeSupprimeTout(ZR_LISTE_SCAN)
BDebut = Faux
FIN

BOUCLE
nNumpage++
sFichierTemp = ComplèteRep(MfReptemp)+ NumériqueVersChaîne(nNumpage,
"06,0f") + ".pdf"

S_FICHIER_TEMP = sFichierTemp

// " ( " + SansEspace(NumériqueVersChaîne(Ntaille/1000, "10,0fS")) +
" Kb )"

// twainscanbverspdf(sFichierTemp, 256, Vrai,
TwainToutType,300,300,0,0,Faux,Vrai) ALORS
SI PAS TwainVersPDF(sFichierTemp, 150, Vrai,
TwainToutType,16,150,0,0,Faux,Vrai) ALORS
SORTIR
SINON
// Ajoute le fichier dans le Tableau
Ajoute(tabFichierPDF, sFichierTemp)
i++
Dimension( G_SFICHIERIMAGE, i)
G_SFICHIERIMAGE[i] = sFichierTemp
ntaille = fTaille(sFichierTemp)
staille = " ( " + SansEspace(NumériqueVersChaîne(ntaille/1000,
"10,0fS")) + " Kb )"

// Ajoute le Fichier dans la Zone Répétée

ZoneRépétéeAjouteLigne(ZR_LISTE_SCAN,sFichierTemp,ChaîneConstruit("Page
%1 .. %2 ", ZR_LISTE_SCAN..Occurrence + 1, staille ))

FIN
SI TwainEtat() = teNonChargé ALORS SORTIR
FIN


et ma fonction twainscanbverspdf
PROCÉDURE twainscanbverspdf(LOCAL sFichierPDF, nQualite = 0,
bInterfaceUtilisateur = Vrai, nTypeImage = 0, nbBitsParPixel = 0,
rResolutionImg = 0, rContraste = 0, rBrillance = 0, bRectoVerso = Faux,
bChargementAuto = Vrai)
MfReptemp est une chaîne = ""
SELON SysVersionWindows()
CAS "VISTA", "SEVEN", "7"
MfReptemp = ComplèteRep(SysRep(srAppData) )
CAS "XP"
MfReptemp =ComplèteRep("C:\Program Files\licences\EMED30")
AUTRES CAS
MfReptemp = ComplèteRep(SysRep(srAppData) )
FIN
// Variable
nNumpageTEMP est un entier = 1
sFichierTmpPrint est une chaîne =ComplèteRep(MfReptemp)+"PR"+
NumériqueVersChaîne(nNumpageTEMP, "06,0f") + ".pdf"

Dimension( G_SFICHIERPRINT, nNumpageTEMP)
G_SFICHIERPRINT[nNumpageTEMP] = sFichierTmpPrint
TANTQUE fFichierExiste(sFichierTmpPrint)
nNumpageTEMP++
sFichierTmpPrint =ComplèteRep(MfReptemp)+ "PR"+
NumériqueVersChaîne(nNumpageTEMP + 1 , "06,0f") + ".pdf"
Dimension( G_SFICHIERPRINT, nNumpageTEMP)
G_SFICHIERPRINT[nNumpageTEMP] = sFichierTmpPrint
FIN

sInfoImage est une chaîne
nLargeur est un entier
nHauteur est un entier
bResultat est un booléen
// Récupère le scan au format JPEG
SI G_Specialite = 4 ALORS
bResultat =
TwainVersJPEG(sFichierTmpPrint,nQualite,bInterfaceUtilisateur,4,nbBitsParPixel,rResolutionImg,rContraste,rBrillance,bRectoVerso,bChargementAuto)

SINON
bResultat =
TwainVersJPEG(sFichierTmpPrint,nQualite,bInterfaceUtilisateur,nTypeImage,nbBitsParPixel,rResolutionImg,rContraste,rBrillance,bRectoVerso,bChargementAuto)

FIN
Posted on February, 17 2019 - 2:52 PM
Bonjour,

Sur les fonctions TwainVersPDF j'ai un soucis de taille de fichier.

Comparé un un scan manuel de NAPS avec les mêmes paramètres de définition et couleur ou N/B la taille du fichier est 4x à 10x plus grande que le scan manuel.

Avez vous ces mêmes ratios ? car cela implique

Je cherche une solution pour compresser les pdf en natif pour optimiser le stockage et l'échange sur des reseaux connectés,

Cdt

Yan
Registered member
98 messages
Popularité : +2 (2 votes)
Posted on February, 18 2019 - 5:57 PM
Bonjour Yannick

J'ai effectivement aussi constaté cela. Je pense que c'est le pilote Twain qui ne gère pas bien les compressions lors des scans car même en réalisant le scan directement en PDF depuis mon imprimante ( Epson WF7620), j'ai des documents très gros...
Malheureusement, pour une application 'générique', il est difficile de ce passer de ce pilote Twain.
Si je trouve une solution, je reviens vers vous.

Cordialement

--
Patrick PELISSON
Posted on February, 19 2019 - 7:46 AM
Bonjour Patrick;

J'utilise deux scanners KODAK 1150 ou Imprimante Mutli fonction HP avec l'appli gratuite NAPS

Cette appli utilise TWAIN comme les fonctions Windev mais la taille des fichiers pour un même document est vraiement effarante !

J'en ai déjà partagé le problème il y a plusieurs mois avec PC SOFT accompagné de tous les exemples requis.

ils ont confirmé cet écart de performance mais aucune amélioration dans WD24 pour le moment...

Avec la numérisation qui se développe, c'est bien dommage,

Quant au scan matériel direct, je te confirme que la taille du fichier est encore plus petite

Exemple type( 2 Pages Couleur 24bits A4 300ppp ) Direct matériel : (457 ko), NAPS (1194 ko) Twainverspdf ( 6523 ko)

Ca laisse une belle marge de progression pour l'equipe de PC SOFT pour fait 999 fois mieux :)