Wrappers de VirtualXML para Pyton VirtualXML
Pyton no requiere definir wrappers para utilizar las funciones de VirtualXML ya que cuenta con objetos capaces de manipular DLLs directamente, el objeto cdll de Pyton convierte cualquier DLL en un objeto, convirtiendo todas las funciones contenidas en él en métodos de una clase que posteriormente puede ser manipulado desde su programa.

Pyton al igual que VB .NET, C# y Delphi RadStudio, utilizan las funciones en formato WIDE, por lo que los nombres de las funciones de VirtualXML son distintos, pero simplemente hay que agregar una letra W al final de los nombres de cada función y la funcionalidad y paramétros son los mismos

A continuación le mostramos un ejemplo de un programa en Pyton:

Fecha de actualización : 29 de Julio de 2021  se documenta ejemplo


Ejemplo:


from ctypes import *

# Declarar DLL sin extension
vxml = cdll.virtualxml

baseName = "python_cfdi33_basico"

hXml = vxml.VirtualXML_NewW("3.3")

vxml.VirtualXML_SetLogFileW(hXml, baseName + ".log")
vxml.VirtualXML_SetVirtualPACInfoW(hXml, "demo_cibertec", "demo")
vxml.VirtualXML_SetComprobanteInfo_cfdi33W(hXml,"A","1","%cb_date","99","Contado Comercial","1000.00","50.00","MXN","","1102.00","I","PPD","53050","")
vxml.VirtualXML_SetCfdiRelacionados_cfdi33W(hXml,"04")
vxml.VirtualXML_AddCfdiRelacionado_cfdi33W(hXml, "FF93C8BE-AF7B-4FC5-8854-6DAE18CFB5B4")
vxml.VirtualXML_AddCfdiRelacionado_cfdi33W(hXml, "D8E18C2F-2859-4927-A0F0-EA3E93642DDC")
vxml.VirtualXML_AddCfdiRelacionado_cfdi33W(hXml, "BE1D4B47-E167-47A3-8049-70D4D43BCBE8")
vxml.VirtualXML_AddCfdiRelacionado_cfdi33W(hXml, "FDBA380A-9732-4FB5-A6CB-5FB4BD831697")
vxml.VirtualXML_SetEmisorInfo_cfdi33W(hXml,"AAA010101AAA","Empresa de prueba SA de CV","601")
vxml.VirtualXML_SetReceptorInfo_cfdi33W(hXml,"CTE940531F58","Cibernetica y Tecnología SA de CV","","","G01")
vxml.VirtualXML_AddConcepto_cfdi33W(hXml, "84111506", "SEF500", "1", "H87", "Timbre", "Paquete de 500 timbres fiscales", "500.00", "500.00", "")
vxml.VirtualXML_AddConceptoTraslado_cfdi33W(hXml, "500.00", "002", "Tasa", "0.160000", "80.00")
vxml.VirtualXML_AddConcepto_cfdi33W(hXml, "84111506", "SEF250", "2", "H87", "Timbre", "Paquete de 500 timbres fiscales", "250.00", "500.00", "50.00")
vxml.VirtualXML_AddConceptoTraslado_cfdi33W(hXml, "450.00", "002", "Tasa", "0.160000", "72.00")
vxml.VirtualXML_SetImpuestosInfo_cfdi33W(hXml, "152.00", "")
vxml.VirtualXML_AddTraslado_cfdi33W(hXml, "002", "Tasa", "0.160000", "152.00")

exitcode = vxml.VirtualXML_ProcesaDocumentoW(hXml, "C:\\Certificados_new2017\\CSD01_AAA010101AAA.cer", "C:\\Certificados_new2017\\CSD01_AAA010101AAA.key", "12345678a", baseName + "_xmlout.xml")