[VB.net] Imprimer en A0 et A1

Imprimer en A0 et A1 [VB.net] - VB/VBA/VBS - Programmation

Marsh Posté le 15-11-2005 à 16:15:32    

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
Reply

Marsh Posté le 15-11-2005 à 16:15:32   

Reply

Marsh Posté le 17-11-2005 à 09:02:16    

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

Reply

Marsh Posté le 17-11-2005 à 11:08:36    

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

Reply

Marsh Posté le 17-11-2005 à 12:13:20    

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

Marsh Posté le 17-11-2005 à 12:47:47    

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 ?

Reply

Marsh Posté le 25-11-2005 à 13:05:46    

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 !

Reply

Marsh Posté le 25-11-2005 à 16:18:19    

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

Marsh Posté le 25-11-2005 à 16:35:42    

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


Reply

Marsh Posté le 29-11-2005 à 15:45:34    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed