Principales respuestas
Ayuda por favor liberar Pdf c# itextsharp

Pregunta
-
Al momento de crear mi Pdf me lo abre y no me da ningún error, pero si lo quiero volver abrir teniendo anteriormente abierto el primero me da este error
'El proceso no puede obtener acceso al archivo 'C:\Sistema_De_Cotizaciones_Vista_Previa\Vista_Previa.pdf' porque está siendo utilizado en otro proceso.'
Lo que busco es poder abrir el mismo archivo aunque este este abierto, Quiero liberar el archivo cuando se termina de crear para que al momento de volverlo a crear este disponible.
introducir el código aquí
string filename = @"C:\Sistema_De_Cotizaciones_Vista_Previa\Vista_Previa.pdf"; Document Documento_Pdf_Marsys = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 36, 85); using (PdfWriter pdfWrite = PdfWriter.GetInstance(Documento_Pdf_Marsys,new FileStream(filename, System.IO.FileMode.Create))) { iTextSharp.text.Rectangle Page = Documento_Pdf_Marsys.PageSize; Documento_Pdf_Marsys.Open(); //cuerpo del pdf// //cuerpo del pdf// //cuerpo del pdf// //cuerpo del pdf// Documento_Pdf_Marsys.Dispose(); Documento_Pdf_Marsys.Close(); Documento_Pdf_Marsys.CloseDocument(); pdfWrite.Close(); System.Diagnostics.Process.Start(filename); }
Juega Contra El Mejor Muere Como Los Demas
- Editado Sergio ParraModerator martes, 16 de febrero de 2021 11:17 formatear codigo fuente
Respuestas
-
Buenas noches realice los cambios correspondientes mencionados en tu respuesta, se crea el pdf por primera vez y no manda error pero al crearlo nuevamente teniendo abierto el primero si manda error
System.IO.IOException: 'El proceso no puede obtener acceso al archivo 'C:\Sistema_De_Cotizaciones_Vista_Previa\Vista_Previa.pdf' porque está siendo utilizado en otro proceso.'
no pongo el cuerpo del PDF por que es muy largo pero si nececitan que lo ponga lo hare, Gracias de antemano.
Juega Contra El Mejor Muere Como Los Demas
string fileName = @"<Tu Ruta que has escrito>"+DateTime.Now.Ticks.ToString()+".pdf";
Cuando se abre un fichero, éste se bloquea para escritura, que es lo que estás haciendo(escribir uno nuevo)
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos
- Editado Sergio ParraModerator miércoles, 17 de febrero de 2021 6:39
- Marcado como respuesta EricRRModerator martes, 23 de febrero de 2021 19:34
Todas las respuestas
-
Hola, lo primero indicarte que puedes anidar bloques using. También el inicio del proceso lo saques fuera de esos bloques, por lo que quedaría así
string filename = @"C:\Sistema_De_Cotizaciones_Vista_Previa\Vista_Previa.pdf"; using(Document Documento_Pdf_Marsys = new Document(iTextSharp.text.PageSize.LETTER, 36, 36, 36, 85)) { using (PdfWriter pdfWrite = PdfWriter.GetInstance(Documento_Pdf_Marsys,new FileStream(filename, System.IO.FileMode.Create))) { iTextSharp.text.Rectangle Page = Documento_Pdf_Marsys.PageSize; Documento_Pdf_Marsys.Open(); //cuerpo del pdf// //cuerpo del pdf// //cuerpo del pdf// //cuerpo del pdf// Documento_Pdf_Marsys.Dispose(); Documento_Pdf_Marsys.Close(); Documento_Pdf_Marsys.CloseDocument(); pdfWrite.Close(); } } System.Diagnostics.Process.Start(filename);
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos
-
Hola,
¿Alguna novedad sobre la consulta realizada?
Gracias por usar los foros de MSDN.
Eric Ruiz
____________________________
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.
-
-
-
Buenas noches realice los cambios correspondientes mencionados en tu respuesta, se crea el pdf por primera vez y no manda error pero al crearlo nuevamente teniendo abierto el primero si manda error
System.IO.IOException: 'El proceso no puede obtener acceso al archivo 'C:\Sistema_De_Cotizaciones_Vista_Previa\Vista_Previa.pdf' porque está siendo utilizado en otro proceso.'
no pongo el cuerpo del PDF por que es muy largo pero si nececitan que lo ponga lo hare, Gracias de antemano.
Juega Contra El Mejor Muere Como Los Demas
-
Realice lo comentado en la respuesta pero sigue el error, de todas formas no me de tengo y estoy investigando y tratando de llegar a la solución en dado caso que llege a dicha solución la compartiré para futuros programadores que tenga problemas.
Juega Contra El Mejor Muere Como Los Demas
-
Buenas noches realice los cambios correspondientes mencionados en tu respuesta, se crea el pdf por primera vez y no manda error pero al crearlo nuevamente teniendo abierto el primero si manda error
System.IO.IOException: 'El proceso no puede obtener acceso al archivo 'C:\Sistema_De_Cotizaciones_Vista_Previa\Vista_Previa.pdf' porque está siendo utilizado en otro proceso.'
no pongo el cuerpo del PDF por que es muy largo pero si nececitan que lo ponga lo hare, Gracias de antemano.
Juega Contra El Mejor Muere Como Los Demas
string fileName = @"<Tu Ruta que has escrito>"+DateTime.Now.Ticks.ToString()+".pdf";
Cuando se abre un fichero, éste se bloquea para escritura, que es lo que estás haciendo(escribir uno nuevo)
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos
- Editado Sergio ParraModerator miércoles, 17 de febrero de 2021 6:39
- Marcado como respuesta EricRRModerator martes, 23 de febrero de 2021 19:34
-
-