Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1258 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB.net] Imprimer en A0 et A1

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB.net] Imprimer en A0 et A1

n°1246129
lecknaat
Posté le 15-11-2005 à 16:15:32  profilanswer
 

Bonjour !
 
Je suis en train de faire une macro pour transformer des fichiers en pdf. J'utilise donc la fonction printout en specifiant comme imprimante mon imprimante pdf.
 
Je specifie la taille de ma feuille avec la fonction : Size = Printing.PaperKind.A2 ou Size = Printing.PaperKind.A4Rotated... mais les tailles A1 et A0 ne sont pas specifié par defaut !
 
Je les ais donc créé de la maniere suivante :
Dim A0 as new PaperSize("A0",3504,4954) (car l'unite par defaut est le 0.01 pouce...enfin je crois)
Dim A1 ...
 
et apres je specifie : size = A0.Kind ou size = A1.kind
 
Mais le probleme c'est que ca ne marche pas car lorsque j'utilise ces tailles personnaliser, mon fichier pdf est toujours de taille 215.9x279.4mm !
 
J'ai egalement essayer de definir ces tailles en mm mais ca ne change rien !
 
Alors est-ce que quelqu'un sait comment imprimmer un document en A0 ?
 
Merci d'avance


Message édité par lecknaat le 15-11-2005 à 16:18:25
mood
Publicité
Posté le 15-11-2005 à 16:15:32  profilanswer
 

n°1247332
beberf1
qui avale une noix de coco à c
Posté le 17-11-2005 à 09:02:16  profilanswer
 

Bonjour!
 
Peut être que le pilote de ton imprimante postscript ne le permet pas. Essaye de trouver une imprimante postscript qui te le permet.
 
@+

n°1247435
lecknaat
Posté le 17-11-2005 à 11:08:36  profilanswer
 

Bonjour !
 
Si si, elle supporte le A0 car lorsque je fais fichier imprimer, et que je choisi manuellement le format A0 dans les options avancees, j'obtient bien le bon resultat...
 
Je pense donc que c'est un probleme de programmation de la taille custom...

n°1247487
watashi
La démotivation : JAMAIS !
Posté le 17-11-2005 à 12:13:20  profilanswer
 

Salut,
 
A ce que j'ai lu il faut que tu fasse appel au printersetting.papersize. Je ne suis pas trop dans le sujet, mais voilà quelques liens qui te permettront surement de trouver.
 
constructeur papersize
printersetting.pazpersizecollection
class papersize
 
Bon courage


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1247515
lecknaat
Posté le 17-11-2005 à 12:47:47  profilanswer
 

Merci watashi c'est cool, ca doit etre ca !
 
Mais je n'arrive pas a definir la taille custom quand meme... est ce que quelqu'un comprends comment definir les proprietes width et height de custom ?

n°1253157
lecknaat
Posté le 25-11-2005 à 13:05:46  profilanswer
 

Desole mais je n'arrive toujours pas a faire ce que je veux...  
 
Je pense que je dois mal programmer ! Avant d'appeler le support de microsoft de demandes si quelqu'un peut essayer de creer un fichier pdf (imprimant postscript) au format A0 ...ca serait cool (surtout si cette personne y arrive)  
 
Merci d'avance !

n°1253341
watashi
La démotivation : JAMAIS !
Posté le 25-11-2005 à 16:18:19  profilanswer
 

Si tu plaçais ton code peut-être que quelqu'un pourrait y jeter un oeil pour voir ce qui ne va pas :)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1253359
lecknaat
Posté le 25-11-2005 à 16:35:42  profilanswer
 

Pas de probleme...
 

Code :
  1. Imports System.IO
  2. Imports System.Drawing.Printing.PaperSize
  3. Imports System.Drawing.Printing
  4.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5.         '---Il faut que Solid Edge soit lancé---
  6.         Try
  7.             objApp = GetObject(, "SolidEdge.Application" )
  8.         Catch ex As Exception
  9.             MessageBox.Show("Solid Edge doit tourner", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
  10.             System.Threading.Thread.CurrentThread.Abort()
  11.         End Try
  12.         '---------------------------------------
  13.         '---Il faut que le document ouvert soit un draft---
  14.         Try
  15.             objDoc = objApp.ActiveDocument
  16.         Catch ex As Exception
  17.             MessageBox.Show("Le fichier ouvert doit être un draft", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
  18.             System.Threading.Thread.CurrentThread.Abort()
  19.         End Try
  20.         '--------------------------------------------------
  21.         Nom = Microsoft.VisualBasic.Left(objDoc.Name, objDoc.Name.Length - 4)
  22.         '----------------------
  23.         '---Revision manager---
  24.         '----------------------
  25.         Try
  26.             DoWorkRM(StartRevisionManager())
  27.         Catch ex As Exception
  28.             MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  29.         End Try
  30.         objAppGR = GetObject(, "RevisionManager.Application" )
  31.         Try
  32.             objDocGR = objAppGR.Open(objDoc.FullName, 2)
  33.         Catch ex As Exception
  34.             MessageBox.Show("Sauvegarder le document et relancer la macro", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
  35.             System.Threading.Thread.CurrentThread.Abort()
  36.         End Try
  37.         objDocGR = objAppGR.Open(objDoc.FullName, 2)
  38.         objLinkedDocs = objDocGR.LinkedDocuments(RevisionManager.LinkTypeConstants.seLinkTypeAll)
  39.         If objLinkedDocs.Count <> 0 Then
  40.             objLinkedDoc = objLinkedDocs.Item(1)
  41.             Dim extension As String
  42.             extension = Microsoft.VisualBasic.Right(objLinkedDoc.FullName, 3)
  43.             Select Case extension
  44.                 Case "par", "PAR", "Par", "psm", "PSM", "Psm", "pwd", "PWD", "Pwd", "asm", "ASM", "Asm"
  45.                     Dim objProperties As SolidEdgeFileProperties.PropertySets
  46.                     Try
  47.                         objProperties = CreateObject("SolidEdge.FileProperties" )
  48.                     Catch ex As Exception
  49.                         MessageBox.Show(objLinkedDoc.FullName & " ne peut être ouvert", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
  50.                         Exit Select
  51.                     End Try
  52.                     Try
  53.                         objProperties.Open(objLinkedDoc.FullName, True)
  54.                     Catch ex As Exception
  55.                         MessageBox.Show(objLinkedDoc.FullName & " ne peut être ouvert", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
  56.                         Exit Select
  57.                     End Try
  58.                     Numero = objLinkedDoc.DocNum
  59.                     Revision = objLinkedDoc.Revision
  60.              
  61.                 Case Else
  62.                     MsgBox(objLinkedDoc.FullName & " : type de fichier non traité", MsgBoxStyle.Exclamation)
  63.             End Select
  64.         End If
  65.         '----------------------
  66.         Nom_final = (Numero + "~" + Revision + " " + Nom)
  67.         'MsgBox(Nom_final)
  68.         Dossier = objDoc.Path
  69.         Dim Orientation As Integer
  70.         'Dim Size As SolidEdgeDraft.PaperSizeConstants
  71.         Dim Size As Object
  72.         objsheet = objDoc.ActiveSheet
  73.         taille = objsheet.SheetSetup.SheetSizeOption
  74.         Dim A0 As New PaperSize("A0", PrinterUnitConvert.Convert(84100, PrinterUnit.HundredthsOfAMillimeter, PrinterUnit.Display), PrinterUnitConvert.Convert(118900, PrinterUnit.HundredthsOfAMillimeter, PrinterUnit.Display))
  75.         Dim A0R As New PaperSize("A0R", 1189, 841)
  76.         Dim A1 As New PaperSize("A1", 594, 841)
  77.         Dim A1R As New PaperSize("A1R", 841, 594)
  78.              Select Case taille
  79.             Case 36
  80.                 Orientation = 1
  81.                 Size = A0.Kind
  82.             Case 37
  83.                 Orientation = 2
  84.                 Size = A0R.Kind
  85.             Case 34
  86.                 Orientation = 1
  87.                 Size = A1.Kind
  88.             Case 35
  89.                 Orientation = 2
  90.                 Size = A1R.Kind
  91.             Case 32
  92.                 Orientation = 1
  93.                 Size = Printing.PaperKind.A2
  94.             Case 33
  95.                 Orientation = 2
  96.                 Size = Printing.PaperKind.A2
  97.             Case 30
  98.                 Orientation = 1
  99.                 Size = Printing.PaperKind.A3
  100.             Case 31
  101.                 Orientation = 2
  102.                 Size = Printing.PaperKind.A3
  103.             Case 28
  104.                 Orientation = 1
  105.                 Size = Printing.PaperKind.A4
  106.         End Select
  107.         objDoc.SaveAs(("C:\WINDOWS\Temp\" + Nom_final + ".dft" ))
  108.         objDoc.PrintOut("PDF995", 1, , Size, , False)
  109.         ''File.Copy(("C:\WINDOWS\Temp\" + Nom_final + ".pdf" ), (Dossier + "\" + Nom_final + ".pdf" ))
  110.         ''File.Delete(("C:\WINDOWS\Temp\" + Nom_final + ".pdf" ))
  111.         'File.Delete(("C:\WINDOWS\Temp\" + Nom_final + ".dft" ))
  112.         Me.Close()
  113.         '---Fermeture
  114.         objApp = Nothing
  115.         objProp = Nothing
  116.         objDoc = Nothing
  117.         objProperties = Nothing
  118.         objsheet = Nothing
  119.         taille = Nothing
  120.     End Sub
  121. End Class


n°1255380
lecknaat
Posté le 29-11-2005 à 15:45:34  profilanswer
 

Alors, est-ce que quelqu'un a deja reussi a definir une taille personaliser de papier ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB.net] Imprimer en A0 et A1

 

Sujets relatifs
Document à imprimerImprimer les repères d'indentation avec scite
imprimer pdf en ligne de commandeRecherche Spécifications W3C pour imprimer
Comment imprimer ?imprimer avec jcreator
[html]imprimer en paysage avec window.print()Imprimer les onglets voulus
javascript pour imprimer un document wordimprimer un fichier distant
Plus de sujets relatifs à : [VB.net] Imprimer en A0 et A1


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR