es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo modificar la posición superior izquierda de un rectángulo iTextSharp.text.Rectangle en VB?

Estoy utilizando la biblioteca itextsharp dll en VB para generar un PDF. En el PDF, necesito aumentar el espacio entre el rectángulo y el texto. Intenté establecer los márgenes y cambiar las coordenadas del rectángulo, pero el espacio entre el rectángulo superior y el texto no se crea. Por favor, vea el archivo adjunto.
A continuación se muestra el código que estoy utilizando para generar el PDF:

                Dim reader As PdfReader = New PdfReader(tempFile)
                Dim size As Rectangle = reader.GetPageSize(1)
                Dim AcroAVDoc As Document = New Document(iTextSharp.text.PageSize.A4.Rotate())
                AcroAVDoc.SetMargins(0, 0, 0, 0)
                Dim FS As FileStream = New FileStream(newFile, FileMode.Create, FileAccess.Write)
                Dim writer As PdfWriter = PdfWriter.GetInstance(AcroAVDoc, FS)
                AcroAVDoc.Open()
                If (SaveDoc) Then

                    Dim cb As PdfContentByte = writer.DirectContent

                    Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED)
                    cb.SetColorFill(BaseColor.BLACK)
                    cb.SetFontAndSize(bf, 11)

                    cb.BeginText()
                    Dim text As String = "HeaderText  " + TableData(HeaderText)
                    ''colocar aquí la alineación y las coordenadas
                    cb.SetTextMatrix(240, 583)
                    cb.ShowText(text)
                    cb.EndText()

                    ''crear una nueva página y agregarla al pdf
                    Dim Page As PdfImportedPage = writer.GetImportedPage(reader, 1)
                    Dim psize As Rectangle = reader.GetPageSizeWithRotation(1)

                    cb.AddTemplate(Page, 0, -1.0F, 1.0F, 0, 0, psize.Height)

                    'AcroAVDoc.Save(1, newFile)
                End If
                AcroAVDoc.Close()
                FS.Close()
                writer.Close()
                reader.Close()

descripción de la imagen aquí

descripción de la imagen aquí

Necesito disminuir el espacio derecho

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para aumentar el espacio entre el rectángulo y el texto en su PDF generado utilizando la biblioteca iTextSharp en VB, puede probar los siguientes enfoques:

    1. Ajustar las coordenadas del texto:

    Puede intentar ajustar las coordenadas del texto estableciéndolas en relación a la esquina superior izquierda del rectángulo. Por ejemplo, puede modificar el código de la siguiente manera:

    cb.BeginText()
    Dim text As String = "HeaderText  " + TableData(HeaderText)
    ''establecer la alineación y las coordenadas aquí
    cb.SetTextMatrix(rectangle.Left + 10, rectangle.Top - 20)
    cb.ShowText(text)
    cb.EndText()
    

    En este código, estamos agregando un desplazamiento de 10 puntos desde el borde izquierdo del rectángulo y 20 puntos desde el borde superior del rectángulo para posicionar el texto. Puede ajustar estos valores para aumentar o disminuir el espacio entre el rectángulo y el texto.

    1. Agregar margen al rectángulo:

    Otro enfoque es agregar margen al propio rectángulo. Puede hacer esto creando un nuevo rectángulo con dimensiones ligeramente más pequeñas y reposicionándolo. Por ejemplo:

    Dim rectangle As Rectangle = New Rectangle(100, 600, 500, 550)
    Dim padding As Integer = 10 'establecer la cantidad de margen aquí
    Dim paddedRect As Rectangle = New Rectangle(rectangle.Left + padding, rectangle.Top - padding, rectangle.Right - padding, rectangle.Bottom + padding)
    cb.Rectangle(paddedRect)
    

    En este código, estamos agregando un margen de 10 puntos a cada borde del rectángulo original. Luego, se reposiciona el nuevo rectángulo para mantener la posición original relativa a la página. Puede ajustar el valor del margen según sus necesidades.

    Estas son algunas soluciones posibles para aumentar el espacio entre el rectángulo y el texto. Puede probarlos y ver cuál funciona mejor para sus necesidades de generación de PDF.

Comments are closed.