【问题标题】:iTextSharp center align objects within the Document objectiTextSharp 中心对齐 Document 对象中的对象
【发布时间】:2011-04-19 20:48:23
【问题描述】:

有没有一种快速简单的方法可以在 Document 对象中居中对齐对象? 执行任何计算逻辑,即。获取页面宽度、获取内容宽度、除以二等

我在 Document 对象中的 Paragraph 对象中有一个 PdfPTable 对象。我想将 Paragraph 对象居中。

谢谢!

【问题讨论】:

    标签: c# .net itextsharp


    【解决方案1】:

    iTextSharp 的等效替换:

    paragraph.Alignment = Element.ALIGN_CENTER;
    

    或者试试这个方法

    paragraph.IndentationRight = 100;
    paragraph.IndentationLeft = 100;
    

    【讨论】:

    • 更正 iTextSharp 语法与 iText
    【解决方案2】:

    这个 iText(可能与 iTextSharp 相同):

    paragraph.setAlignment( Element.ALIGN_CENTER );
    

    并且您可能想要设置缩进,以便它很好地放置:

    paragraph.setIndentationLeft( 100 );
    paragraph.setIndentationRight( 100 );
    

    【讨论】:

    • 它似乎正在挤压桌子。你有办法阻止它这样做吗?
    • 你在使用上面的两个setIndentation方法吗?减小缩进尺寸或完全去除它们。
    • PDFPTable 有 setWidthPercentage 和 setTotalWidth 方法,可以帮到你
    • 感谢您的建议。缩进方法似乎会挤压表格本身。我确实按照您的建议尝试了 setWidthPercentage 和 setTotalWidth 方法,但它们并不是我正在寻找的确切解决方案。我现在实际上是在另一个场景中,我试图将段落宽度设置为填充它的网格视图的宽度,但我遇到了一些问题。如果有机会,请参阅我的另一个问题。谢谢!
    【解决方案3】:
    PDFPTable.HorizontalAlignment = Element.ALIGN_CENTER;
    

    【讨论】:

    • 它不起作用,也许你的意思是ALIGN_CENTER而不是CENTER_ALIGN
    【解决方案4】:

    图像对齐:

    iTextSharp.text.Image image1 = iTextSharp.text.Image.GetInstance(MapPath("~/images/HKVictoriaHarbour.png"));
    image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
    doc.Add(image1);
    

    【讨论】:

      【解决方案5】:

      我认为更容易对齐段落的方法

      Dim para = New Paragraph("Header")
          para.SpacingBefore = 20
          para.SpacingAfter = 20
          para.Alignment = 1 '0-Left, 1 middle,2 Right
          Document.Add(para)
      

      【讨论】:

        【解决方案6】:

        做这样的事情

        这是代码

        Sub Crea_Contrato_PDF()
            Dim T0 As String = "CONTRATO INDIVIDUAL DE TRABAJO " & vbCrLf & vbCrLf
        
            Dim T1 As String = "JORGE MARIO DEL CID SANCHEZ de cincuenta y un años de edad, casado, guatemalteco, Licenciado, con domicilio en el departamento de Guatemala, con dirección en séptima avenida once guión sesenta y tres zona nueve edificio Galerías España; con Documento Personal De Identificación (DPI) código único número 1766 73121 0101 extendido por el Registro Nacional de las Personas “ & "RENAP" & ”, actuando en representación de la entidad SAFARI SEGURIDAD, SOCIEDAD ANÓNIMA ubicada en granja Rosilú kilómetro noventa y uno punto cinco municipio de Santa Lucía Cotzumalguapa del departamento de Escuintla, por una parte; y por la otra: "
        
            '        Dim T2 As String = " de " & TextBox72.Text & " años de edad, sexo "
            Dim t3 As String = " con nacionalidad guatemalteca, con dirección en "
        
            Dim t3a As String = " con Documento Personal de Identificación código único número "
        
            Dim t4 As String = " del Registro Nacional de las Personas –RENAP-; quienes para los efectos de este contrato se denominarán empleador o empresa y trabajador o empleado respectivamente; celebrando el CONTRATO INDIVIDUAL DE TRABAJO contenido en las siguientes cláusulas: "
        
            Dim T5 As String = " La relación de trabajo inicia el: "
        
            'Dim T6 As String = " SEGUNDA: El trabajador prestará los servicios de: " & TextBox61.Text
            Dim T6 As String = " El trabajador prestará los servicios de: "
        
            ' Dim T7 As String = " TERCERA: Los servicios serán prestados en: uno de los distintos puntos o puestos dentro de la República de Guatemala en donde la empresa brinda sus servicios."
        
            Dim T7 As String = " Los servicios serán prestados en: uno de los distintos puntos o puestos dentro de la República de Guatemala en donde la empresa brinda sus servicios."
        
            'Dim T8 As String = " CUARTA: La vigencia o duración del presente contrato es por tiempo indefinido. "
            Dim T8 As String = " La vigencia o duración del presente contrato es por tiempo indefinido. "
        
            'Dim T9 As String = " QUINTA: La jornada de trabajo será así: de lunes a viernes de seis a catorce horas, y día sábado de seis a diez horas, para complementar las 44 horas de la jornada semanal; dicha jornada es meramente enunciada y no taxativa ya que por la naturaleza de los servicios que la empresa presta se podrá modificar la misma previo acuerdo con el trabajador, velando siempre que no se contravengan los derechos que las leyes laborales otorguen a éste. "
            Dim T9 As String = " La jornada de trabajo será así: de lunes a viernes de seis a catorce horas, y día sábado de seis a diez horas, para complementar las 44 horas de la jornada semanal; dicha jornada es meramente enunciada y no taxativa ya que por la naturaleza de los servicios que la empresa presta se podrá modificar la misma previo acuerdo con el trabajador, velando siempre que no se contravengan los derechos que las leyes laborales otorguen a éste. "
        
            Dim T10 As String = " El salario será de "
            Dim T10A As String = " mensuales más la Bonificación Incentivo de Decreto 37-2001 del Congreso de la República por "
        
            Dim T10B As String = ". El mismo se cancelará el último día de cada mes, en las instalaciones de la empresa por medio cheque bancario o depositado a la cuenta bancaria del trabajador, conforme el artículo 3 del Convenio Internacional de Trabajo ratificado por la República de Guatemala y el artículo 102 literal t) de la Constitución Política de la República. "
        
            'Dim T11 As String = " SEPTIMA: Las horas extras, el séptimo y los días de asueto, le serán pagados de conformidad con los artículos 121, 124, 126 y 127 del Código de Trabajo. "
            Dim T11 As String = " Las horas extras, el séptimo y los días de asueto, le serán pagados de conformidad con los artículos 121, 124, 126 y 127 del Código de Trabajo. "
        
            'Dim T12 As String = " OCTAVA: Debido a la naturaleza especial de la actividad de la empresa la cual brinda seguridad privada a personas jurídicas o individuales, conforme el artículo 136 del Código de Trabajo el empleador podrá dividir el período de vacaciones en dos partes como máximo por la índole especial mencionada. "
            Dim T12 As String = " Debido a la naturaleza especial de la actividad de la empresa la cual brinda seguridad privada a personas jurídicas o individuales, conforme el artículo 136 del Código de Trabajo el empleador podrá dividir el período de vacaciones en dos partes como máximo por la índole especial mencionada. "
        
            Dim T13 As String = " El trabajador se compromete a cumplir todas las obligaciones que le atañe e impone la Ley que Regula los Servicios de Seguridad Privada según DECRETO NÚMERO 52-2010 DEL CONGRESO DE LA REPÚBLICA DE GUATEMALA; y en caso de incumplimiento a una de tales disposiciones se considera falta grave en el trabajo y la empresa podrá dar finalizada la relación laboral con el trabajador sin responsabilidad alguna para la misma. "
        
            'Dim T14 As String = " DÉCIMA: Es entendido que de conformidad con los artículos 122 y 124 del Código de trabajo la jornada ordinaria y extraordinaria no puede exceder de una suma total de 12 horas diarias.  El presente contrato se suscribe en Granja Rosilú kilómetro noventa y uno punto cinco carretera del Pacífico municipio de Santa Lucía Cotzumalguapa del departamento de Escuintla; a los " & TextBox16.Text & " días del mes de " & TextBox17.Text & " del año dos mil dieciséis"
            Dim T14 As String = " Es entendido que de conformidad con los artículos 122 y 124 del Código de trabajo la jornada ordinaria y extraordinaria no puede exceder de una suma total de 12 horas diarias.  El presente contrato se suscribe en Granja Rosilú kilómetro noventa y uno punto cinco, carretera del Pacífico, municipio de Santa Lucía Cotzumalguapa del departamento de Escuintla; a los _____ días del mes de __________________ del año __________." & vbCrLf & vbCrLf
        
            Dim T15 As String = "                                        ___________________________           _________________________" & vbCrLf
            Dim T16 As String = "                                                     Empleador                                               Trabajador" & vbCrLf
        
            Dim txt_cc As String = "CONTRATO_CC_" & txt_CCosto.Text & "_EMP_" & TextBox1.Text & ".pdf"
        
            ''//The main folder that we are working in
            Dim WorkingFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
        
            ''//The file that we are creating
            'Dim WorkingFile = Path.Combine(WorkingFolder, txt_FileName.Text)
            Dim WorkingFile = Path.Combine("D:\CONTRATOS\", txt_cc)
        
            'Dim SampleImage = Path.Combine(WorkingFolder, "LOGO_c.PNG")
            Dim SampleImage = Path.Combine("C:\Aplicaciones\SafariSis\", "LOGO_c.PNG")
        
            ''//Create our file with an exclusive writer lock
            Using FS As New FileStream(WorkingFile, FileMode.Create, FileAccess.Write, FileShare.None)
                ''//Create our PDF document
                Using Doc As New Document(PageSize.LETTER)
                    ''//Bind our PDF object to the physical file using a PdfWriter
                    Using Writer = PdfWriter.GetInstance(Doc, FS)
                        ''//Open our document for writing
                        Doc.Open()
        
                        ''//Insert a blank page
                        Doc.NewPage()
        
                        ''//Create a PDF image object from our physical image
                        Dim ThisImage = iTextSharp.text.Image.GetInstance(SampleImage)
        
                        ''//Use standard ratio resizing algorithms to calculate new image dimensions based on the documents dimensions. This will shrink or grow documents to fit
        
                        ''//Will hold our new image dimensions
                        ''//Documents sometimes have margins (and this sample does) so subtract them so that our image in centered in the page
                        Dim NewW, NewH As Single
        
                        NewW = Doc.PageSize.Width - (Doc.LeftMargin + Doc.RightMargin)
                        NewH = Doc.PageSize.Height - (Doc.TopMargin + Doc.BottomMargin)
        
                        ''//Scale the image
                        '  ThisImage.ScaleToFit(NewW, NewH)
        
                        ''//Add the image to the document ****************************
                        'Doc.Add(ThisImage)
        
                        Dim ppp0 As New Paragraph(T0, LFont2)
                        ppp0.Font.Size = 12
                        ppp0.Alignment = Element.ALIGN_CENTER
                        ppp0.Font = LFont2
                        Doc.Add(ppp0)
        
                        Dim ppp1 As New Chunk(T1, LFont)
                        ppp1.Font.Size = 10
                        Dim ppp2 As New Chunk(TextBox74.Text, LFont2)
                        Dim ppp3 As New Chunk(" de ", LFont)
                        Dim ppp4 As New Chunk(TextBox72.Text, LFont2)
                        Dim ppp5 As New Chunk(" años de edad, sexo ", LFont)
                        Dim ppp6 As New Chunk(TextBox71.Text, LFont2)
                        Dim ppp7 As New Chunk(" estado civil ", LFont)
                        Dim ppp8 As New Chunk(TextBox70.Text, LFont2)
                        Dim ppp9 As New Chunk(t3, LFont)
                        Dim ppp9A As New Chunk(TextBox69.Text, LFont2)
                        Dim ppp10 As New Chunk(" vecino de ", LFont)
                        Dim ppp11 As New Chunk(TextBox68.Text, LFont2)
                        Dim ppp12 As New Chunk(t3a, LFont)
                        Dim ppp13 As New Chunk(TextBox67.Text, LFont2)
                        Dim ppp14 As New Chunk(t4, LFont)
                        Dim ppp15 As New Chunk(" PRIMERA:", LFont2)
                        Dim ppp16 As New Chunk(T5, LFont)
                        Dim ppp17 As New Chunk(TextBox66.Text & ".  SEGUNDA:", LFont2)
                        Dim ppp18 As New Chunk(T6, LFont)
                        Dim ppp19 As New Chunk(TextBox61.Text & ".  TERCERA:", LFont2)
                        Dim ppp20 As New Chunk(T7, LFont)
                        Dim ppp21 As New Chunk(" CUARTA: ", LFont2)
                        Dim ppp22 As New Chunk(T8, LFont)
                        Dim ppp23 As New Chunk(" QUINTA: ", LFont2)
                        Dim ppp24 As New Chunk(T9, LFont)
                        Dim ppp25 As New Chunk(" SEXTA: ", LFont2)
                        Dim ppp26 As New Chunk(T10, LFont)
                        Dim ppp27 As New Chunk(TextBox65.Text, LFont2)
                        Dim ppp28 As New Chunk(T10A, LFont)
                        Dim ppp29 As New Chunk(TextBox64.Text, LFont2)
                        Dim ppp30 As New Chunk(T10B, LFont)
                        Dim ppp31 As New Chunk(" SEPTIMA: ", LFont2)
                        Dim ppp32 As New Chunk(T11, LFont)
                        Dim ppp33 As New Chunk(" OCTAVA: ", LFont2)
                        Dim ppp34 As New Chunk(T12, LFont)
                        Dim ppp35 As New Chunk(" NOVENA: ", LFont2)
                        Dim ppp36 As New Chunk(T13, LFont)
        
                        Dim ppp37 As New Chunk(" DECIMA: ", LFont2)
                        Dim ppp38 As New Chunk(T14, LFont)
        
                        Dim ppp39 As New Chunk(T15, LFont)
                        Dim ppp40 As New Chunk(T16, LFont)
        
                        ppp15.Font.Size = 10
                        ppp16.Font.Size = 10
                        ppp17.Font.Size = 10
                        ppp18.Font.Size = 10
                        ppp19.Font.Size = 10
                        ppp20.Font.Size = 10
                        ppp21.Font.Size = 10
                        ppp22.Font.Size = 10
        
                        Dim ppp00 As New Chunk("", LFont)
                        ppp1.Font.Size = 10
        
                        Dim body As New Phrase(12, ppp00)
        
                        body.Add(ppp1)
                        body.Add(ppp2)
                        body.Add(ppp3)
                        body.Add(ppp4)
                        body.Add(ppp5)
                        body.Add(ppp6)
                        body.Add(ppp7)
                        body.Add(ppp8)
                        body.Add(ppp9)
                        body.Add(ppp9A)
                        body.Add(ppp10)
                        body.Add(ppp11)
                        body.Add(ppp12)
                        body.Add(ppp13)
                        body.Add(ppp14)
                        body.Add(ppp15)
                        body.Add(ppp16)
                        body.Add(ppp17)
                        body.Add(ppp18)
                        body.Add(ppp19)
                        body.Add(ppp20)
                        body.Add(ppp21)
                        body.Add(ppp22)
                        body.Add(ppp23)
                        body.Add(ppp24)
                        body.Add(ppp25)
                        body.Add(ppp26)
                        body.Add(ppp27)
                        body.Add(ppp28)
                        body.Add(ppp29)
                        body.Add(ppp30)
                        body.Add(ppp31)
                        body.Add(ppp32)
                        body.Add(ppp33)
                        body.Add(ppp34)
                        body.Add(ppp35)
                        body.Add(ppp36)
                        body.Add(ppp37)
                        body.Add(ppp38)
                        body.Add(ppp39)
                        body.Add(ppp40)
        
                        Dim p As New Paragraph(" ", LFont)
                        p.Font.Size = 10
                        p.Alignment = Element.ALIGN_JUSTIFIED
        
                        p.Add(body)
                        Doc.Add(p)
        
                        ''//Close our document
                        Doc.Close()
                    End Using
                End Using
            End Using
        
        End Sub
        

        【讨论】:

        • 非常详细。请将您的代码缩短到重要部分,并包含对您问题的更好描述。
        猜你喜欢
        • 1970-01-01
        • 2021-03-06
        • 2021-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多