diff --git a/AF/AF.aspx.vb b/AF/AF.aspx.vb index 22e7526ab..3517452da 100644 --- a/AF/AF.aspx.vb +++ b/AF/AF.aspx.vb @@ -3455,9 +3455,6 @@ Partial Class AF_AF Try - - Dim Doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10.0F, 10.0F, 100.0F, 0F) - Dim para As New iTextSharp.text.Paragraph Dim memoryStreamDoc As New System.IO.MemoryStream Dim gemBox As New clsGemBoxDocument() @@ -3465,8 +3462,6 @@ Partial Class AF_AF gemBox.AgregarImagen(GeneraCodigoQR(TxtCodigoBarrasModal.Text.Trim, Alto, Ancho, 0, DDLCodigoFormato.SelectedValue)) gemBox.GuardarStreamPDF() - - Dim memoryStream As New System.IO.MemoryStream(gemBox.GetBytesDocumento()) gemBox.Dispose() Response.Clear() diff --git a/Acarreos/CatUnidades.aspx.vb b/Acarreos/CatUnidades.aspx.vb index 67c11862e..aa4d388bb 100644 --- a/Acarreos/CatUnidades.aspx.vb +++ b/Acarreos/CatUnidades.aspx.vb @@ -317,8 +317,6 @@ Partial Class Acarreos_CatUnidades If CveUnidad > 0 Then Try - Dim Doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10.0F, 10.0F, 100.0F, 0F) - Dim para As New iTextSharp.text.Paragraph Dim memoryStreamDoc As New System.IO.MemoryStream Dim gemBox As New clsGemBoxDocument() diff --git a/Acumuladores/Tamaños.aspx.vb b/Acumuladores/Tamaños.aspx.vb index 0869900b7..af6592262 100644 --- a/Acumuladores/Tamaños.aspx.vb +++ b/Acumuladores/Tamaños.aspx.vb @@ -52,6 +52,7 @@ Partial Class Acumuladores_Tamaños If objAcum.TamañoGet(-1, UsuarioActual.Empresa.CveEmpresa) Then GvTamanios.DataSource = objAcum.DtResultados + recargaTamaños() Else GvTamanios.DataSource = Nothing End If @@ -63,6 +64,12 @@ Partial Class Acumuladores_Tamaños CargaGvTamanioBitacora() + End Sub + Private Sub recargaTamaños() + Dim objAcum As New ClsAcumuladores + If objAcum.TamañoGet(-1, -1) Then Application("GlobalDTAcumTamaños") = objAcum.DtResultados Else Application("GlobalDTAcumTamaños") = Nothing + objAcum.Dispose() + End Sub Private Sub CargaGvTamanioBitacora() diff --git a/App_Code/BundleConfig.vb b/App_Code/BundleConfig.vb index 26201a87f..d81e59fd1 100644 --- a/App_Code/BundleConfig.vb +++ b/App_Code/BundleConfig.vb @@ -30,7 +30,9 @@ Public Class BundleConfig "~/Metronic/assets/global/plugins/fullcalendar/lib/moment.min.js", "~/Metronic/assets/global/plugins/fullcalendar/fullcalendar.js", "~/Scripts/highcharts.js", - "~/Scripts/exporting.js" + "~/Scripts/exporting.js", + "~/Scripts/offline-exporting.js", + "~/Scripts/export-data.js" )) bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JSNoCustom").Include( diff --git a/App_Code/CalendarEvent.vb b/App_Code/CalendarEvent.vb index 2780c2aab..983cc8a96 100644 --- a/App_Code/CalendarEvent.vb +++ b/App_Code/CalendarEvent.vb @@ -26,5 +26,8 @@ Public Class CalendarEvent Public Property SubProyecto As String Public Property CveSubProyecto As Integer Public Property Direccion As String + Public Property CveEmpresaCRM As String + Public Property CveContactoCRM As String + Public Property CveAcercamientoCRM As String End Class diff --git a/App_Code/ClsCGame.vb b/App_Code/ClsCGame.vb index ce78e577c..58274dcbc 100644 --- a/App_Code/ClsCGame.vb +++ b/App_Code/ClsCGame.vb @@ -12,6 +12,7 @@ Public Class ClsCGame Private SqlCommand As SqlCommand Private SqlTransacc As SqlTransaction Private Data As DataTable + Protected DTSet As DataSet Private disposedValue As Boolean = False ' Para detectar llamadas redundantes 'REGISTRAR CONEXIÓN @@ -23,7 +24,11 @@ Public Class ClsCGame DtResultados = Data End Get End Property - + Public ReadOnly Property DTSetResultados() As DataSet + Get + Return DTSet + End Get + End Property #End Region #Region "Propiedades" @@ -3390,6 +3395,31 @@ Public Class ClsCGame End Function +#End Region + +#Region "INDICADORES" + + Public Function GetIndicadores(CveEmpresa As Integer, FechaI As Date, FechaF As Date, CveUsuario As Integer, CveSubProyecto As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Citrus_IndicadoresGet") + DTSet = New DataSet + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@FechaI", SqlDbType.Date).Value = FechaI + .Add("@FechaF", SqlDbType.Date).Value = FechaF + .Add("@CveUsuarioConsulta", SqlDbType.Int).Value = CveUsuario + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + End With + Try + SqlAdapter.Fill(DTSet) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los indicadores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + #End Region #Region "IDisposable Support" diff --git a/App_Code/ClsClientes.vb b/App_Code/ClsClientes.vb index 14f390bd5..f71c30878 100644 --- a/App_Code/ClsClientes.vb +++ b/App_Code/ClsClientes.vb @@ -1499,8 +1499,9 @@ Public Class ClsClientes #Region "D I R E C C I O N D E E N V I O " Public Function DireccionEnvioAdd(CveCliente As Integer, EnvioDireccion As String, EnvioNoExt As String, EnvioNoInt As String, EnvioColonia As String, EnvioCiudad As String, EnvioEstado As String, - EnvioCP As Integer, EnvioContacto As String, CveUsuario As Integer, Estatus As Integer, Optional CveClienteSucursal As Integer = -1, Optional EnvioDepartamento As String = "-1", Optional EnvioTel As String = "-1", - Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveLocalidad As Integer = -1, Optional CveColonia As Integer = -1, Optional CveSubProyecto As Integer = -1, Optional CveEmpresa As Integer = -1) As Integer + EnvioCP As String, EnvioContacto As String, CveUsuario As Integer, Estatus As Integer, Optional CveClienteSucursal As Integer = -1, Optional EnvioDepartamento As String = "-1", Optional EnvioTel As String = "-1", + Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveLocalidad As Integer = -1, Optional CveColonia As Integer = -1, Optional CveSubProyecto As Integer = -1, Optional CveEmpresa As Integer = -1, + Optional COM_NumRegIdTrib As String = "") As Integer Dim Retorno As Integer = -1 DataAdapter("PA_Vta_ClientesDireccionesEnvioAdd") @@ -1513,7 +1514,7 @@ Public Class ClsClientes .Add("@EnvioColonia", SqlDbType.VarChar).Value = EnvioColonia .Add("@EnvioCiudad", SqlDbType.VarChar).Value = EnvioCiudad .Add("@EnvioEstado", SqlDbType.VarChar).Value = EnvioEstado - .Add("@EnvioCP", SqlDbType.Int).Value = EnvioCP + .Add("@EnvioCP", SqlDbType.VarChar).Value = EnvioCP .Add("@EnvioContacto", SqlDbType.VarChar).Value = EnvioContacto .Add("@EnvioDepartamento", SqlDbType.VarChar).Value = EnvioDepartamento .Add("@EnvioTel", SqlDbType.VarChar).Value = EnvioTel @@ -1527,6 +1528,7 @@ Public Class ClsClientes .Add("@CveLocalidad", SqlDbType.Int).Value = CveLocalidad .Add("@CveColonia", SqlDbType.Int).Value = CveColonia .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@COM_NumRegIdTrib", SqlDbType.VarChar).Value = COM_NumRegIdTrib .Add("@CveDireccionEnvio", SqlDbType.Int).Direction = ParameterDirection.Output End With @@ -1561,8 +1563,9 @@ Public Class ClsClientes End Function Public Function DireccionEnvioUpdate(CveCliente As Integer, EnvioDireccion As String, EnvioNoExt As String, EnvioNoInt As String, EnvioColonia As String, EnvioCiudad As String, EnvioEstado As String, - EnvioCP As Integer, EnvioContacto As String, CveUsuario As Integer, Estatus As Integer, CveDireccionEnvio As Integer, Optional EnvioDepartamento As String = "-1", Optional CveClienteSucursal As Integer = -1, Optional EnvioTel As String = "-1", - Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveLocalidad As Integer = -1, Optional CveColonia As Integer = -1, Optional CveSubProyecto As Integer = -1) As Boolean + EnvioCP As String, EnvioContacto As String, CveUsuario As Integer, Estatus As Integer, CveDireccionEnvio As Integer, Optional EnvioDepartamento As String = "-1", Optional CveClienteSucursal As Integer = -1, Optional EnvioTel As String = "-1", + Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveLocalidad As Integer = -1, Optional CveColonia As Integer = -1, Optional CveSubProyecto As Integer = -1, + Optional COM_NumRegIdTrib As String = "") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_ClientesDireccionesEnvioUpdate") @@ -1578,7 +1581,7 @@ Public Class ClsClientes .Add("@EnvioEstado", SqlDbType.VarChar).Value = EnvioEstado .Add("@EnvioContacto", SqlDbType.VarChar).Value = EnvioContacto .Add("@EnvioDepartamento", SqlDbType.VarChar).Value = EnvioDepartamento - .Add("@EnvioCP", SqlDbType.Int).Value = EnvioCP + .Add("@EnvioCP", SqlDbType.VarChar).Value = EnvioCP .Add("@EnvioTel", SqlDbType.VarChar).Value = EnvioTel .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@Estatus", SqlDbType.Int).Value = Estatus @@ -1589,6 +1592,7 @@ Public Class ClsClientes .Add("@CveMunicipio", SqlDbType.Int).Value = CveMunicipio .Add("@CveLocalidad", SqlDbType.Int).Value = CveLocalidad .Add("@CveColonia", SqlDbType.Int).Value = CveColonia + .Add("@COM_NumRegIdTrib", SqlDbType.VarChar).Value = COM_NumRegIdTrib End With diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 51d7d76b3..13fb98ade 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -3,6 +3,7 @@ Option Strict On Imports System.Data Imports System.Data.SqlClient +Imports System.Web Imports Extensiones Public Class ClsContabilidad @@ -754,6 +755,7 @@ Public Class ClsContabilidad End With Try + SqlAdapter.SelectCommand.CommandTimeout = 0 SqlAdapter.Fill(Data) Retorno = SqlAdapter.SelectCommand.Parameters("@Movtos").Value.ToString.ToEntero Catch ex As Exception @@ -1014,12 +1016,16 @@ Public Class ClsContabilidad If ex1.Message.Contains("50015;") Then OnError("No se puede registrar una póliza en un ejercicio Cerrado", ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) ElseIf ex1.Message.Contains("50024; La Cuenta no fue detectada") Then - Dim dr As Data.DataRow = DirectCast(HttpContext.Current.Application("GlobalDTContaConceptosContables"), DataTable).FiltroPrimero(String.Format("CveConceptoContable = {0}", CveConceptoContable)) - Dim Strr As String = dr("ConceptoContable").ToString - 'If dr("AplicaClasificacion").ToString <> "No" Then - ' Strr = Strr + " - Clasificación: " + DirectCast(HttpContext.Current.Application("GlobalDTContaConceptosContables"), DataTable).FiltroPrimeroValor("", "") - 'End If - OnError(String.Format("El concepto '{0}' no tiene especificada la cuenta. Favor de especificarla en la asignación de cuentas.", dr("ConceptoContable").ToString), ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + Dim Strr As String = "" + If HttpContext.Current.Application("GlobalDTContaConceptosContables") IsNot Nothing Then + Dim dr As Data.DataRow = DirectCast(HttpContext.Current.Application("GlobalDTContaConceptosContables"), DataTable).FiltroPrimero(String.Format("CveConceptoContable = {0}", CveConceptoContable)) + Strr = dr("ConceptoContable").ToString + 'If dr("AplicaClasificacion").ToString <> "No" Then + ' Strr = Strr + " - Clasificación: " + DirectCast(HttpContext.Current.Application("GlobalDTContaConceptosContables"), DataTable).FiltroPrimeroValor("", "") + 'End If + End If + + OnError(String.Format("El concepto '{0}' no tiene especificada la cuenta. Favor de especificarla en la asignación de cuentas.", Strr), ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) ElseIf ex1.Message.Contains("Vw_Val_Conta_CuentasResultados_SubProyectos") Then Dim Concepto2 As String = DirectCast(HttpContext.Current.Application("GlobalDTContaConceptosContables"), DataTable).FiltroPrimeroValor("ConceptoContable", String.Format("CveConceptoContable = {0}", CveConceptoContable)) OnError(String.Format("El concepto '{0}' requiere centro de costo", Concepto2), ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) @@ -2042,6 +2048,25 @@ Public Class ClsContabilidad Return Retorno End Function + Public Function GetPrePolizasDetalleResumen(CvePrePoliza As Integer, CveEmpresa As Integer) As Boolean 'Editado por charlie + Dim Retorno As Boolean = False + DataAdapter("PA_Conta_PrePolizasDetalleResumenGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los detalles resumidos de la prepóliza.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + Public Function GetContabilizacionVentas(CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Conta_ContabilizacionVentasGet") @@ -3865,7 +3890,7 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function GetCambioSituacionFinanciera(FechaI As Date, FechaF As Date, Unidad As Integer, TipoReporte As Integer, CveSubProyecto As String, CveEmpresa As Integer) As Boolean + Public Function GetCambioSituacionFinanciera(FechaI As Date, FechaF As Date, Unidad As Integer, TipoReporte As Integer, CveSubProyecto As String, CveEmpresa As Integer, Optional ConMovimientos As Integer = -1) As Boolean Dim Retorno = False DataAdapter("PA_Conta_RepCambioSituacionFinanciera") @@ -3877,9 +3902,11 @@ Public Class ClsContabilidad .Add("@TipoReporte", SqlDbType.Int).Value = TipoReporte .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@ConMovimientos", SqlDbType.Int).Value = ConMovimientos End With Try + SqlAdapter.SelectCommand.CommandTimeout = 0 SqlAdapter.Fill(Data) Retorno = True Catch ex As Exception @@ -4124,7 +4151,7 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function GetLibroDiario(FechaInicio As Date, FechaFin As Date, CveEmpresa As Integer) As Boolean + Public Function GetLibroDiario(FechaInicio As Date, FechaFin As Date, CveEmpresa As Integer, Optional CveTipoPoliza As Integer = -1) As Boolean Dim Retorno = False 'SqlAdapter.SelectCommand.t @@ -4135,6 +4162,7 @@ Public Class ClsContabilidad .Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio .Add("@FechaFin", SqlDbType.Date).Value = FechaFin .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveTipoPoliza", SqlDbType.Int).Value = CveTipoPoliza End With SqlAdapter.SelectCommand.CommandTimeout = 0 diff --git a/App_Code/ClsOIEventos.vb b/App_Code/ClsOIEventos.vb index 4b96a1d4c..98f455ac7 100644 --- a/App_Code/ClsOIEventos.vb +++ b/App_Code/ClsOIEventos.vb @@ -2452,7 +2452,7 @@ Public Class ClsOIEventos Dim Retorno As Boolean = False Retorno = AddEvento(CveTipoEvento, CveAgendaTipo, Asunto, Descripcion, Prioridad, -1, CveUsuarioIng, FechaInicio, FechaFin, -1, -1, "-1", CveUsuarioIng, CveEmpresa, CveActivoFijo, CveIE, CveProspecto, CveCliente, CveOS, CveOC, - CvePersonal, CvePersonal, CveEventoPadre:=CveEventoPadre, RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dia, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, Importe:=Importe, + CvePersonal, CveProveedor, CveEventoPadre:=CveEventoPadre, RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dia, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, Importe:=Importe, CveEmpresaCRM:=CveEmpresaCRM, CveContactoCRM:=CveContactoCRM, CveAcercamientoCRM:=CveAcercamientoCRM, CveTipoProcesoCRM:=CveTipoProcesoCRM, CveEtapaProcesoCRM:=CveEtapaProcesoCRM, CveSubProyecto:=CveSubProyecto) Return Retorno diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 3674d029d..13a442376 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -7,7 +7,7 @@ Imports System.Xml Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Imports Extensiones -Imports iTextSharp.text.pdf +Imports iText.Kernel.Pdf Imports Microsoft.Reporting.WebForms Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq @@ -7686,7 +7686,7 @@ Public Class ClsPaginas End If 'COMPU DN DIFUSA - If UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 119, 137, 132, 144) Then + If UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 119, 137, 132, 144, 177) Then Dim FirmaVendedor As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveVendedor)) @@ -7976,6 +7976,14 @@ Public Class ClsPaginas Dim rds4 As New ReportDataSource With {.Name = "DataSet4", .Value = If(Vta.DtDocumentosRelacionados IsNot Nothing, Vta.DtDocumentosRelacionados, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte lrds.Add(rds4) + If UsuarioActual.Empresa.Funcionalidad(707) = "1" OrElse UsarStimulsoft Then + If Vta.DtDocumentosRelacionados IsNot Nothing AndAlso Vta.DtDocumentosRelacionados.Rows.Count > 0 Then + params.Add(New ReportParameter("TieneDocumentosRelacionados", "True")) + Else + params.Add(New ReportParameter("TieneDocumentosRelacionados", "False")) + End If + End If + Dim rds5 As New ReportDataSource With {.Name = "DataSet5", .Value = If(Vta.DtNCVinculadas IsNot Nothing, Vta.DtNCVinculadas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte lrds.Add(rds5) @@ -8333,7 +8341,7 @@ Public Class ClsPaginas End Sub #End Region -#Region " PDF OC NEW 2.0" +#Region " PDF OC NEW 3.0" Public Function NewGeneraBytesOC(tCveOrdenCompra As Integer, Optional MR As ReportViewer = Nothing, Optional ConBitacora As Boolean = False) As Byte() Dim bytes As Byte() = Nothing Dim CveEmpresaActual As Integer @@ -8611,30 +8619,19 @@ Public Class ClsPaginas Dim bytes2 As Byte() bytes2 = StreamPDF("Empresas\Grales\Formatos\Bitacora.rdlc", dttemp, paramsest, $"OC_{ObjOC.Folio.ToString}", MR:=MR) Using ms As New MemoryStream() - Using document As New iTextSharp.text.Document() - Using copy As New PdfCopy(document, ms) - document.Open() + Using pdfdoc As New PdfDocument(New PdfReader(ms)) + pdfdoc.InitializeOutlines() - Dim reader As New PdfReader(bytes) - ' loop over the pages in that document - Dim n As Integer = reader.NumberOfPages - Dim page As Integer = 0 - While page < n - page = page + 1 - copy.AddPage(copy.GetImportedPage(reader, page)) - End While + Dim addedDoc As New PdfDocument(New PdfReader(New MemoryStream(bytes))) + addedDoc.CopyPagesTo(1, addedDoc.GetNumberOfPages(), pdfdoc) + addedDoc.Close() - reader = New PdfReader(bytes2) - ' loop over the pages in that document - n = reader.NumberOfPages - page = 0 - While page < n - page = page + 1 - copy.AddPage(copy.GetImportedPage(reader, page)) - End While + addedDoc = New PdfDocument(New PdfReader(New MemoryStream(bytes2))) + + addedDoc.CopyPagesTo(1, addedDoc.GetNumberOfPages(), pdfdoc) + addedDoc.Close() - End Using End Using bytes = ms.ToArray() End Using @@ -9740,7 +9737,7 @@ Public Class ClsPaginas ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento Dim ContabilizableISR As Boolean = False - If UsuarioActual.CveEmpresa.Contiene(140, 7, 11, 12, 122, 145) Then + If UsuarioActual.CveEmpresa.Contiene(140, 7, 11, 12, 122, 145, 172, 173) Then ContabilizableISR = True End If @@ -9801,13 +9798,13 @@ Public Class ClsPaginas Dim Ret As New ConceptosRetenciones If Pago.CveMonedaPago > 1 Then 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 21, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 21, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 266, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 266, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True Else 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 21, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 21, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago) Then ErrorMovtos = True End If @@ -9817,13 +9814,13 @@ Public Class ClsPaginas Dim Ret As New ConceptosRetenciones If Pago.CveMonedaPago > 1 Then 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 60, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveCompraAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 342, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveCompraAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 235, Pago.Referencia, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=Pago.CveCompraAmortizacion, CveVentaAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 235, Pago.Referencia, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=Pago.CveCompraAmortizacion, CveVentaAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True Else 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 60, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveVentaAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 60, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveVentaAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True End If @@ -9838,13 +9835,13 @@ Public Class ClsPaginas If Pago.CveMonedaPago > 1 Then 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveCompraAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveCompraAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=Pago.CveCompraAmortizacion, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=Pago.CveCompraAmortizacion, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True Else 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveVenta:=Pago.CveCompraAmortizacion, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveVenta:=Pago.CveCompraAmortizacion, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True End If End If diff --git a/App_Code/SqlServerTypes/Loader.cs b/App_Code/SqlServerTypes/Loader.cs new file mode 100644 index 000000000..ce606cf2e --- /dev/null +++ b/App_Code/SqlServerTypes/Loader.cs @@ -0,0 +1,45 @@ +using System; +using System.IO; +using System.Runtime.InteropServices; + +namespace SqlServerTypes +{ + /// + /// Utility methods related to CLR Types for SQL Server + /// + public class Utilities + { + [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern IntPtr LoadLibrary(string libname); + + /// + /// Loads the required native assemblies for the current architecture (x86 or x64) + /// + /// + /// Root path of the current application. Use Server.MapPath(".") for ASP.NET applications + /// and AppDomain.CurrentDomain.BaseDirectory for desktop applications. + /// + public static void LoadNativeAssemblies(string rootApplicationPath) + { + var nativeBinaryPath = IntPtr.Size > 4 + ? Path.Combine(rootApplicationPath, @"SqlServerTypes\x64\") + : Path.Combine(rootApplicationPath, @"SqlServerTypes\x86\"); + + LoadNativeAssembly(nativeBinaryPath, "msvcr120.dll"); + LoadNativeAssembly(nativeBinaryPath, "SqlServerSpatial140.dll"); + } + + private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyName) + { + var path = Path.Combine(nativeBinaryPath, assemblyName); + var ptr = LoadLibrary(path); + if (ptr == IntPtr.Zero) + { + throw new Exception(string.Format( + "Error loading {0} (ErrorCode: {1})", + assemblyName, + Marshal.GetLastWin32Error())); + } + } + } +} \ No newline at end of file diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 264ecd40d..ed304f1ff 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -5674,7 +5674,9 @@ Public Class Timbrado If result IsNot Nothing Then If result.timbradoOk Then - Dim FolioFiscal As String = result.UUID + + UUID = result.UUID + 'GUARDA EL XML RETORNADO POR EL PAC Try Dim xdoc As New XmlDocument() @@ -5689,47 +5691,22 @@ Public Class Timbrado swmili = sw.ElapsedMilliseconds sw.Start() - If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then + Select Case ObjCFDITimbre.Comprobante.TipoComprobante + Case "N" - 'Actualiza Estatus Factura - If Ventas.CveVenta > 0 Then - - Using ObjVentas As New ClsVentas() - - If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial, RFCReceptor:=ObjCFDITimbre.Receptor.RFC, CFDIVersion:="4.0") Then - Retorno = "" - Else - Retorno = "Error" - End If - End Using - - 'Genero la addenda Ford - If Ventas.Cliente.Ford_GSDB <> "" Then - - 'Dim RutaCadena As String = String.Format("{0}{1}.xml", RutaArchivo, NombreArchivoXML) 'If(UsuarioActual.Empresa.FacturaProduccion, String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.SerieFolio), String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.TipoDocto, Ventas.SerieFolio)) - - 'Dim FolioFactura As String = "" - 'If UsuarioActual.CveEmpresa = 8 Then FolioFactura = Ventas.Folio.ToString ' sogo, pordefault manda el folio de la factura - 'GeneraAddendaFord(RutaCadena, FolioFactura, Ventas.FordASN, Ventas.FordGSDB) - - End If - - End If - - If ObjCFDITimbre.Comprobante.TipoComprobante = "N" Then Using ObjNomina2 As New ClsNominas() - If ObjNomina2.UpdateEstatusNomNominas(3, CvePACEspecial, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, ObjCFDITimbre.Comprobante.Fecha, ObjCFDITimbre.Nomina.CveNomina, 0, 0, 0, 0, 0) Then + If ObjNomina2.UpdateEstatusNomNominas(3, CvePACEspecial, UUID, ObjCFDITimbre.Comprobante.Fecha, ("01/01/2000").ToDate, ObjCFDITimbre.Nomina.CveNomina, 0, 0, 0, 0, 0, isFiniquito:=Ventas.Timbre.IStimbreFiniquito) Then Retorno = "" Else Retorno = "Error" End If End Using - End If - If ObjCFDITimbre.Comprobante.TipoComprobante = "T" Then + Case "T" + Dim objGrales As New ClsGenerales - If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC, "4.0") Then + If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, UUID, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC, "4.0") Then Retorno = "" Else Retorno = "Error" @@ -5737,21 +5714,48 @@ Public Class Timbrado objGrales.Dispose() Using ObjInv As New ClsInventarios() - If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, FolioFiscal, MinFecha) Then + If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, UUID, MinFecha) Then Retorno = "" Else Retorno = "Error" End If End Using - End If - End If + + + Case Else + + 'Actualiza Estatus Factura + If Ventas.CveVenta > 0 Then + + Using ObjVentas As New ClsVentas() + + If ObjVentas.UpdateEstatusFactura(3, UUID, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial, RFCReceptor:=ObjCFDITimbre.Receptor.RFC, CFDIVersion:="4.0") Then + Retorno = "" + Else + Retorno = "Error" + End If + End Using + + 'Genero la addenda Ford + If Ventas.Cliente.Ford_GSDB <> "" Then + + Dim RutaCadena As String = String.Format("{0}{1}.xml", RutaArchivo, NombreArchivoXML) 'If(UsuarioActual.Empresa.FacturaProduccion, String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.SerieFolio), String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.TipoDocto, Ventas.SerieFolio)) + + Dim FolioFactura As String = "" + If UsuarioActual.CveEmpresa = 8 Then FolioFactura = Ventas.Folio.ToString ' sogo, pordefault manda el folio de la factura + GeneraAddendaFord(RutaCadena, FolioFactura, Ventas.FordASN, Ventas.FordGSDB) + + End If + + End If + End Select If Not IO.Directory.Exists($"{UsuarioActual.Empresa.Ruta}CBB\") Then IO.Directory.CreateDirectory($"{UsuarioActual.Empresa.Ruta}CBB\") Try Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg" Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ObjCFDITimbre.Receptor.RFC, ObjCFDITimbre.Comprobante.Total, FolioFiscal, RutaCBB) + CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ObjCFDITimbre.Receptor.RFC, ObjCFDITimbre.Comprobante.Total, UUID, RutaCBB) CBB = Nothing Catch ex As Exception OnError("Ocurrió un error al generar el QR", ex) diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index e37d222e5..b5e93bcc7 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -18,6 +18,12 @@ Imports AjaxControlToolkit Imports ClosedXML.Excel Imports GemBox.Spreadsheet +Imports iText.Kernel.Pdf +Imports iText.Kernel.Geom +Imports iText.Layout +Imports iText.Html2pdf +Imports iText.Html2pdf.Resolver.Font +Imports iText.Layout.Properties Imports Newtonsoft.Json Namespace Extensiones @@ -565,7 +571,7 @@ Namespace Extensiones If newName = "" Then newName = oldName Else - newName = String.Format("{0}{1}", newName, IO.Path.GetExtension(directorioOld.ToString())) + newName = String.Format("{0}{1}", newName, System.IO.Path.GetExtension(directorioOld.ToString())) End If 'SI VA A LA CARPETA DE EMPRESAS TIENE QUE TOMAR LA RUTA DE EMPRESAS @@ -2525,39 +2531,8 @@ Namespace Extensiones excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx") - End Sub + End Sub - - Public Sub ExportToPDF(ByVal Tbl As HtmlTable, ByVal NombreArchivoPDF As String) - Using sw As New StringWriter() - Using hw As New HtmlTextWriter(sw) - - Dim style As StringBuilder = New StringBuilder() - style.Append(" ") - 'To Export all pages - 'Gv.AllowPaging = False - 'Gv.DataBind() - Tbl.RenderControl(hw) - Dim sr As New StringReader(sw.ToString()) - Dim pdfDoc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A2, 10.0F, 10.0F, 10.0F, 0.0F) - Dim htmlparser As New iTextSharp.text.html.simpleparser.HTMLWorker(pdfDoc) - iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, HttpContext.Current.Response.OutputStream) - pdfDoc.Open() - htmlparser.Parse(sr) - pdfDoc.Close() - - HttpContext.Current.Response.ContentType = "application/pdf" - HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.pdf", NombreArchivoPDF)) - HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache) - HttpContext.Current.Response.Write(style.ToString) - HttpContext.Current.Response.Write(pdfDoc) - HttpContext.Current.Response.[End]() - style.Clear() - End Using - End Using - End Sub Private Sub RecursivoLimpiaControlesExcel(Controls As ControlCollection) For Each c As Control In Controls @@ -2856,6 +2831,92 @@ Namespace Extensiones ' Return bytes 'End Function #End Region +#Region "Reporte PDF" + Public Function Borderless(table As Element.Table) As Element.Table + For Each el As Element.IBlockElement In table.GetChildren() + Dim cell As Element.Cell = DirectCast(el, Element.Cell) + cell.SetBorder(Borders.Border.NO_BORDER) + Next + Return table + End Function + + + Public Sub GenerarReportePDF(control As Control, nombreReporte As String, Optional fechaI As String = Nothing, Optional fechaF As String = Nothing) + Dim usuario As Usuario = ObjClsPaginas.UsuarioActual + + Using sw As New StringWriter() + Using hw As New HtmlTextWriter(sw) + + 'Anexa las hojas de estilo antes del HTML + Dim stylesheets As New StreamReader(AppDomain.CurrentDomain.BaseDirectory + "/Styles/ReportePDF.html") + sw.WriteLine(stylesheets.ReadToEnd()) + + control.RenderControl(hw) + + Dim pdfDoc As New PdfDocument(New PdfWriter(HttpContext.Current.Response.OutputStream)) + Dim document As New Document(pdfDoc, PageSize.A4) + document.SetMargins(10.0F, 10.0F, 0.0F, 10.0F) + Dim request = HttpContext.Current.Request + Dim baseUrl = request.Url.OriginalString.Replace(request.Url.PathAndQuery, "") + request.ApplicationPath + Dim properties As New ConverterProperties() + properties.SetBaseUri(baseUrl) 'Se tiene que usar la URL en vez del BaseDirectory para que cargue correctamente los StyleBundle que son paths virtuales en el servidor + properties.SetFontProvider(New DefaultFontProvider(True, False, False)) + + 'SECCIÓN ENCABEZADO REPORTE + Dim table = New Element.Table(UnitValue.CreatePercentArray(New Single() {10, 50, 40})).UseAllAvailableWidth() + Dim Imagen As New FileInfo(String.Format("{0}/Logo.png", usuario.Empresa.Ruta)) + If Imagen.Exists Then + Dim Ruta As String = String.Format("{0}/Logo.png", usuario.Empresa.Ruta) + Using sr As New StreamReader(Ruta) + Dim ms As New MemoryStream() + sr.BaseStream.CopyTo(ms) + Dim logo = New Element.Image(iText.IO.Image.ImageDataFactory.Create(Imagen.FullName)) + table.AddCell(New Element.Cell(2, 1).Add(logo.SetAutoScale(True)).SetVerticalAlignment(VerticalAlignment.MIDDLE)) + End Using + Else + table.AddCell(New Element.Cell(2, 1).Add(New Element.Paragraph(""))) + End If + table.AddCell(New Element.Cell(2, 1).Add(New Element.Paragraph(usuario.Empresa.Empresa)).SetVerticalAlignment(VerticalAlignment.MIDDLE)) + table.AddCell(New Element.Cell().Add(New Element.Paragraph(nombreReporte)).SetBold) + If fechaI IsNot Nothing Or fechaF IsNot Nothing Then + table.AddCell(New Element.Paragraph(String.Format("Inicio: {0} Fin: {1}", fechaI, fechaF)).SetFontSize(10)) + Else + table.AddCell(New Element.Paragraph(String.Format("Fecha: {0}", Now.ToString("dd/MM/yyyy HH:mm"))).SetFontSize(10)) + End If + document.Add(Borderless(table)) + 'FIN ENCABEZADO + + 'CUERPO (TABLAS DEL REPORTE) + 'Se tiene que convertir la salida en elementos y posteriormente agregarlos al documento para que se respeten los márgenes + Dim els = HtmlConverter.ConvertToElements(sw.ToString(), properties) + For Each el As Element.IBlockElement In els + document.Add(el) + Next + 'FIN CUERPO + + 'SECCIÓN PIE REPORTE + table = New Element.Table(UnitValue.CreatePercentArray(New Single() {2, 1.25})) + table.AddCell(New Element.Paragraph("Usuario imprimió: " + usuario.Nombre).SetFontSize(9)) + table.AddCell(New Element.Paragraph("Fecha de impresión: " + Now.ToString("dd/MM/yyyy")).SetTextAlignment(TextAlignment.RIGHT).SetFontSize(9)) + document.Add(Borderless(table)) + 'FIN PIE + + 'document.Add(New Element.Paragraph(sw.ToString()).SetFontSize(6)) 'Para ver el HTML que se está mandando + document.Close() + HttpContext.Current.Response.ContentType = "application/pdf" + If fechaI IsNot Nothing Or fechaF IsNot Nothing Then + HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment;filename={0} {1} a {2}.pdf", nombreReporte, fechaI.ToDate.ToString("dd-MM-yyyy"), fechaF.ToDate.ToString("dd-MM-yyyy"))) + Else + HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment;filename={0} {1}.pdf", nombreReporte, Now.ToString("dd-MM-yyyy"))) + End If + HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache) + 'HtmlConverter.ConvertToPdf(sw.ToString(), HttpContext.Current.Response.OutputStream) + HttpContext.Current.Response.End() + + End Using + End Using + End Sub +#End Region Public Function IsFileLocked(path As String, Optional access As FileAccess = FileAccess.Write) As Boolean Try If File.Exists(path) Then @@ -3541,7 +3602,7 @@ Namespace Extensiones Public Property descripcion As String Public ReadOnly Property Extension As String Get - Return IO.Path.GetExtension(String.Format("{0}{1}{2}", If(path.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory), path, filename)).Replace(".", "") + Return System.IO.Path.GetExtension(String.Format("{0}{1}{2}", If(path.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory), path, filename)).Replace(".", "") End Get End Property Public ReadOnly Property filenameO As String diff --git a/Ashx/CargaEventos.ashx b/Ashx/CargaEventos.ashx index 79411b565..f70089d3d 100644 --- a/Ashx/CargaEventos.ashx +++ b/Ashx/CargaEventos.ashx @@ -129,6 +129,11 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState cevent.CveSubProyecto = dr("CveSubProyecto").ToString.ToEntero cevent.Direccion = dr("Direccion").ToString + cevent.CveEmpresaCRM = dr("CveEmpresaCRM").ToString + cevent.CveContactoCRM = dr("CveContactoCRM").ToString + cevent.CveAcercamientoCRM = dr("CveAcercamientoCRM").ToString + + '11/05/2018 - Evento Gasto Recurrente cevent.CveTipoEvento = dr("CveTipoEvento").ToString.ToEntero If cevent.CveTipoEvento = 10 Then @@ -211,6 +216,8 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState cevent.CveProspecto = dr("CveProspecto").ToString.ToEntero cevent.Prospecto = dr("Prospecto").ToString + + '11/05/2018 - Evento Gasto Recurrente cevent.CveTipoEvento = dr("CveTipoEvento").ToString.ToEntero If cevent.CveTipoEvento = 10 Then @@ -248,6 +255,9 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState cevent.CveProspecto = dr("CveProspecto").ToString.ToEntero cevent.Prospecto = dr("Prospecto").ToString + + + '11/05/2018 - Evento Gasto Recurrente cevent.CveTipoEvento = dr("CveTipoEvento").ToString.ToEntero If cevent.CveTipoEvento = 10 Then diff --git a/Ashx/E119.ashx b/Ashx/E119.ashx index 782584b41..3bcda13fb 100644 --- a/Ashx/E119.ashx +++ b/Ashx/E119.ashx @@ -196,6 +196,8 @@ Public Class E119 : Implements IHttpHandler TieneError = True End If End Using + Dim Msg As String = "Consultado día: " & Fecha.ToShortDateString + Msg.GuardaLogAD("LogE119") Else RespuestaError.message = "la fecha no es leida correctamente" TieneError = True diff --git a/Bancos/CargarConciliacionesBancarias.aspx b/Bancos/CargarConciliacionesBancarias.aspx index 854da6d3d..0fcb9abf7 100644 --- a/Bancos/CargarConciliacionesBancarias.aspx +++ b/Bancos/CargarConciliacionesBancarias.aspx @@ -127,13 +127,21 @@ @@ -197,6 +205,7 @@ + diff --git a/Bancos/CargarConciliacionesBancarias.aspx.vb b/Bancos/CargarConciliacionesBancarias.aspx.vb index 2da1ae93e..e9b722155 100644 --- a/Bancos/CargarConciliacionesBancarias.aspx.vb +++ b/Bancos/CargarConciliacionesBancarias.aspx.vb @@ -82,6 +82,22 @@ Partial Class Bancos_CargarConciliacionesBancarias End If End Sub + Protected Sub BtnDescargaFormato_Click(sender As Object, e As EventArgs) + Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoCargaConciliacion.xlsx" + Dim Archivo As New IO.FileInfo(Directorio) + If Archivo.Exists Then + Response.Clear() + Response.ClearHeaders() + Response.ClearContent() + Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name) + Response.AddHeader("Content-Length", Archivo.Length.ToString()) + Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + Response.Flush() + Response.TransmitFile(Archivo.FullName) + Response.End() + End If + End Sub + Private Sub CargaExcel(Ruta As String, FileName As String, Tipo As String) If Not DdlCuenta.SelectedValue.ToEntero > 0 Then diff --git a/Bancos/DepositosCaja.aspx.vb b/Bancos/DepositosCaja.aspx.vb index 3f9794c24..f651eac3c 100644 --- a/Bancos/DepositosCaja.aspx.vb +++ b/Bancos/DepositosCaja.aspx.vb @@ -47,6 +47,7 @@ Partial Class Bancos_DepositosCaja If UsuarioActual.CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then DdlCajaChica.Items.Add(New ListItem("Todas", "-1")) DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Solidaridad", "7850")) + DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Obregón", "7853")) divFolio.Visible = True End If diff --git a/Bancos/IE.aspx b/Bancos/IE.aspx index 7406155c3..08241247b 100644 --- a/Bancos/IE.aspx +++ b/Bancos/IE.aspx @@ -874,17 +874,7 @@
- - - - - +
Moneda: - - - - - -
diff --git a/CRM/Acercamiento.aspx.cs b/CRM/Acercamiento.aspx.cs index a314321c2..490cb25e5 100644 --- a/CRM/Acercamiento.aspx.cs +++ b/CRM/Acercamiento.aspx.cs @@ -271,6 +271,23 @@ public partial class CRM_Acercamiento : ClsPaginas } } + private int VendedorTipo + { + get + { + if (ViewState["VendedorTipo"] == null) + { + ViewState["VendedorTipo"] = -1; + } + return ViewState["VendedorTipo"].ToString().ToEntero(); + } + + set + { + ViewState["VendedorTipo"] = value; + } + } + //public int RCveEvento { get { return ViewState["RCveEvento"] != null ? ViewState["RCveEvento"].ToString().ToEntero() : 0; } set { ViewState["RCveEvento"] = value; } } public System.Data.DataTable CheckListNew { get { return ViewState["CheckListNew"] != null ? (System.Data.DataTable)ViewState["CheckListNew"] : null; } set { ViewState["CheckListNew"] = value; } } public int chklistitemindex { get { return ViewState["chklistitemindex"] != null ? ViewState["chklistitemindex"].ToString().ToEntero() : 0; } set { ViewState["chklistitemindex"] = value; } } @@ -313,6 +330,14 @@ public partial class CRM_Acercamiento : ClsPaginas } CargarPS(); //BtnGuardarAcercamiento.Visible = true; + + if (!(Request["OPTAB"] == null)) + { + if(Request["OPTAB"].ToString() == "COT") + { + TabsAcercamiento.ActiveTab = TabCotizaciones; + } + } } } @@ -432,6 +457,21 @@ public partial class CRM_Acercamiento : ClsPaginas CargaImagenes(); + + if (UsuarioActual.CveVendedor > 0) + { + ClsVtaVendedores ObjVendedores = new ClsVtaVendedores(); + if (ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa)) + { + if (ObjVendedores.DtResultados.Rows.Count > 0) + { + VendedorTipo = ObjVendedores.DtResultados.FiltroPrimeroValor("VendedorTipo", $"CveVendedor = {UsuarioActual.CveVendedor}").ToEntero(); + } + } + ObjVendedores.Dispose(); + } + + UpEncabezado.Update(); UPAcercamiento.Update(); UPBitacoraEtapas.Update(); @@ -718,7 +758,7 @@ public partial class CRM_Acercamiento : ClsPaginas HuboError = false; CveEtapaActual = CveEtapaProcesoActualActualizar; HdfEtapaSeleccionada.Value = CveEtapaProcesoActualActualizar.ToString(); - Alert(String.Format("Se actualizó el acercamiento {0} de tipo {1}.", NombreAcercamiento, TipoProceso), ModExtensiones.TipoMensaje.MsgInformacion); + Alert(String.Format("Se actualizó el acercamiento/oportunidad {0} de tipo {1}.", NombreAcercamiento, TipoProceso), ModExtensiones.TipoMensaje.MsgInformacion); //} } @@ -798,7 +838,7 @@ public partial class CRM_Acercamiento : ClsPaginas } else { - Alert("No se actualizó el acercamiento.", ModExtensiones.TipoMensaje.ToastError); + Alert("No se actualizó el acercamiento/oportunidad.", ModExtensiones.TipoMensaje.ToastError); } @@ -841,12 +881,12 @@ public partial class CRM_Acercamiento : ClsPaginas } if (!HuboError) { - Alert("El Acercamiento ha sido eliminado.", ModExtensiones.TipoMensaje.MsgInformacion, String.Format("document.location.href=\"/CRM/EmpresaCRM.aspx?CveEmpresaCRM={0}\"", CveEmpresaCRM)); + Alert("El Acercamiento/Oportunidad ha sido eliminado.", ModExtensiones.TipoMensaje.MsgInformacion, String.Format("document.location.href=\"/CRM/EmpresaCRM.aspx?CveEmpresaCRM={0}\"", CveEmpresaCRM)); } } else { - Alert("No se puede eliminar el acercamiento porque el prospecto cuenta con cotizaciones/facturaciones previas.", ModExtensiones.TipoMensaje.MsgError); + Alert("No se puede eliminar el Acercamiento/Oportunidad porque el prospecto cuenta con cotizaciones/facturaciones previas.", ModExtensiones.TipoMensaje.MsgError); } objBitacora.Dispose(); @@ -941,9 +981,9 @@ public partial class CRM_Acercamiento : ClsPaginas { String MensajeBitacora = ""; if (CveEtapaActual == CveEtapaCierre) - MensajeBitacora = String.Format("Se actualizó el cierre del acercamiento, con motivo {1} y fecha de {0} al {2}.", TituloCierre, DdlRechazoMotivo.SelectedItem.Text, TxtFechaCierreRechazo.Text); + MensajeBitacora = String.Format("Se actualizó el cierre del acercamiento/oportunidad, con motivo {1} y fecha de {0} al {2}.", TituloCierre, DdlRechazoMotivo.SelectedItem.Text, TxtFechaCierreRechazo.Text); else - MensajeBitacora = String.Format("Se Cerró el acercamiento, con motivo {1} y fecha de {0} al {2}.", TituloCierre, DdlRechazoMotivo.SelectedItem.Text, TxtFechaCierreRechazo.Text); + MensajeBitacora = String.Format("Se Cerró el acercamiento/oportunidad, con motivo {1} y fecha de {0} al {2}.", TituloCierre, DdlRechazoMotivo.SelectedItem.Text, TxtFechaCierreRechazo.Text); //if (ObjBitacora.AddEventoBitacora(MensajeBitacora, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoProcesoCRM: CveTipoProceso, CveAcercamientoCRM: CveAcercamiento, CveEtapaProcesoCRM: CveEtapaCierre)) //{ @@ -1262,7 +1302,7 @@ public partial class CRM_Acercamiento : ClsPaginas } //SOLO VENDEDOR ASIGNADO PUEDE EDITAR - if (CveVendedorAsignado != UsuarioActual.CveVendedor) + if( (CveVendedorAsignado != UsuarioActual.CveVendedor) & VendedorTipo != 2) { BtnGuardarAcercamiento.Visible = false; BtnEliminarAcercamiento.Visible = false; diff --git a/CRM/EmpresaCRM.aspx b/CRM/EmpresaCRM.aspx index c01d3a2ed..6d388ebd4 100644 --- a/CRM/EmpresaCRM.aspx +++ b/CRM/EmpresaCRM.aspx @@ -19,6 +19,19 @@ Div.MultiLineTextBox > label#lbltxtdinamico { height: 83px; } + + + /* #DivBodyEmpresa > div:nth-child(2) > .form-group.form-md-line-input .help-block.errorimput ~ label:before { + content: " "; + color: #F3565D; + }*/ + + #DivBodyEmpresa > div:nth-child(2) > .help-block.errorimput ~ label:before { + content: " "; + color: #F3565D; + } + + @@ -70,12 +83,21 @@ -
+ <%--
- <%----%> + +
--%> + +
+ + + +
@@ -299,7 +321,7 @@ <%-- SECCION ACERCAMIENTO --%> - +
@@ -307,11 +329,11 @@
- Acercamientos Registrados + Acercamientos/Oportunidades Registrados
- +
@@ -339,7 +361,7 @@ - + @@ -406,7 +428,7 @@ EmptyDataRowStyle-HorizontalAlign="Center" ToolTip="Listado de Cotizaciones" CssClass="table table-striped table-advance table-hover ScrollAD Widthall mysmallbtn" AlternatingRowStyle-BorderStyle="None" GridLines="None" BorderColor="#D3D3D3" BorderWidth="1" AutoGenerateColumns="false" OnRowDataBound="GvCotizacion_RowDataBound"> - + @@ -666,7 +688,7 @@
- - - --%> - -
+
+ +
-
-
Divisor:
-
- + +
+ +
Divisor
+
+
- -
- + + +
+
-
-
- -
- - - - - -
-
+ + +
+ + + + +
+ + +
+ + + + +
+ +
+ +
+ +
@@ -88,14 +88,12 @@
<%--PARA REPORTE--%> - + <%----%> -
Registró: diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 4c8df82ed..f4c75902a 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -669,7 +669,6 @@ Partial Class Bancos_IE TRCveIE.Visible = False CargaTipoTransaccion() - CargaMoneda() CargaCuenta() CargaDDLPersonal() @@ -776,7 +775,6 @@ Partial Class Bancos_IE Calendario.Enabled = False TxtImporte.Enabled = False TxtImporteLetra.Enabled = False - DdlMoneda.Enabled = False TxtTipoCambio.Enabled = False DdlCuenta.Enabled = False 'DdlTipo.Enabled = False @@ -934,7 +932,6 @@ Partial Class Bancos_IE LblBeneficiario.Text = ObjIE.PagueseA TxtImporte.Text = ObjIE.Importe.FormatoNumero TxtImporteLetra.Text = ObjIE.Importe.Texto2Letras(ObjIE.CveMoneda) - DdlMoneda.SelectedValue = ObjIE.CveMoneda.ToString If ObjIE.TipoCambio > 0 Then TrTipoCambio.Visible = True Else @@ -1680,8 +1677,7 @@ Partial Class Bancos_IE Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCuenta={0}", DdlCuenta.SelectedValue)) If dr IsNot Nothing Then - - DdlMoneda.SelectedValue = dr("CveMoneda").ToString + CveMoneda = dr("CveMoneda").ToString.ToEntero IDCtaContable = dr("IdCtaContable").ToString.ToEntero IDCtaContableComplementaria = dr("IDCtaContableComplementaria").ToString.ToEntero CambiaTipoMoneda() @@ -1914,10 +1910,7 @@ Partial Class Bancos_IE End Sub - Private Sub CargaMoneda() - DdlMoneda.DataSource = GlobalDTMonedas - DdlMoneda.DataBind() - End Sub + #End Region #Region "VIATICOS" @@ -2759,7 +2752,7 @@ Partial Class Bancos_IE Dim FolioFijo As Integer = 0 - Dim tCveMoneda As Integer = DdlMoneda.SelectedValue.ToEntero + Dim tCveMoneda As Integer = CveMoneda Dim tImporteMonedaExtranjera As Decimal = TxtImporte.Text.ToDecimal If tCveMoneda <> 1 Then tImporteMonedaExtranjera = (TxtImporte.Text.ToDecimal * GlobalTipoCambio(TxtFechaDocumento.Text.Trim.ToDate).ToString.ToDecimal).RoundSQL Dim PagueseA = "" @@ -2775,7 +2768,7 @@ Partial Class Bancos_IE End If If AgregaPolizaSaldoInicial Then - If AgregarSaldoInicial(TxtImporte.Text.ToDouble(), TxtFechaDocumento.Text.ToDateTime(), DdlMoneda.SelectedValue.ToEntero(), ObjMov) <= 0 Then + If AgregarSaldoInicial(TxtImporte.Text.ToDouble(), TxtFechaDocumento.Text.ToDateTime(), 1, ObjMov) <= 0 Then MsgError = "No se pudo insertar la póliza de saldo inicial." End If End If @@ -2784,7 +2777,7 @@ Partial Class Bancos_IE If MsgError = "" Then - CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, TxtFolio.Text.Trim, PagueseA, TxtImporte.Text.Trim.ToDouble, DdlMoneda.SelectedValue.ToEntero, + CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, TxtFolio.Text.Trim, PagueseA, TxtImporte.Text.Trim.ToDouble, tCveMoneda, TxtTipoCambio.Text.Trim.ToDouble, TxtObservaciones.Text.Trim, TxtNotificarA.Text.Trim, ChkAbonoCuenta.Checked, ChkAplicaImpuestos.Checked, -1, CvePrePoliza, Comprobante, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaDeposito:=CveCuentaDeposito, CveEstatusIE:=DdlEstatusIE.SelectedValue.ToString.ToEntero, Referencia:=If(TxtReferenciaCIE.Visible, TxtReferenciaCIE.Text, "-1"), CveCuentaTarjeta:=If(DivTarjeta.Visible, DdlTarjeta.SelectedValue.ToEntero, -1), ConceptoCIE:=If(TxtConceptoCIE.Text.Trim.Length > 0, TxtConceptoCIE.Text, "-1"), CveCorte:=Me.CveCorte, CveOCAnticipo:=CveOCSolicitudAnticipo) @@ -3035,10 +3028,10 @@ Partial Class Bancos_IE ImporteAplicarME = ImporteAplicar 'CONSIDERA COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then ImporteAplicarMN = ImporteAplicar Else - ImporteAplicarMN = (ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TxtTipoCambio.Text.ToDecimal)).RoundSQL() + ImporteAplicarMN = (ImporteAplicar * If(tCveMoneda = 1, 1, TxtTipoCambio.Text.ToDecimal)).RoundSQL() End If 'BANCOS @@ -3049,8 +3042,8 @@ Partial Class Bancos_IE End If 'BANCOS COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then - ImporteAplicarMN = ((ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TxtTipoCambio.Text.ToDecimal)) - ImporteAplicar).RoundSQL() + If tCveMoneda > 1 Then + ImporteAplicarMN = ((ImporteAplicar * If(tCveMoneda = 1, 1, TxtTipoCambio.Text.ToDecimal)) - ImporteAplicar).RoundSQL() If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, ImporteAplicar, ReferenciaAplicar, 204, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME) Then MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" End If @@ -3082,7 +3075,7 @@ Partial Class Bancos_IE 'CANCELA NC IdCtaContableAplicar = IDCtaBeneficiario ImporteAplicar = ImporteAplicar + Impo - ImporteAplicarMN = (ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TxtTipoCambio.Text.ToDecimal)).RoundSQL() + ImporteAplicarMN = (ImporteAplicar * If(tCveMoneda = 1, 1, TxtTipoCambio.Text.ToDecimal)).RoundSQL() If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -(ImporteAplicar), ReferenciaAplicar, 12, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=-(ImporteAplicarMN), ImporteME:=ImporteAplicarME) Then MsgError = "Ocurrió un error al registrar el asiento de pago de devolución" Exit Select @@ -3144,10 +3137,10 @@ Partial Class Bancos_IE 'CONSIDERA COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then ImporteAplicarMN = ImporteAplicar Else - ImporteAplicarMN = (ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TxtTipoCambio.Text.ToDecimal)).RoundSQL() + ImporteAplicarMN = (ImporteAplicar * If(tCveMoneda = 1, 1, TxtTipoCambio.Text.ToDecimal)).RoundSQL() End If Dim TCCompra As Decimal = 1 @@ -3170,7 +3163,7 @@ Partial Class Bancos_IE Dim FechaCompraNota As Date = GvRow.DataKey("Fecha").ToDate - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then TCCompra = GlobalTipoCambio(FechaCompraNota).ToDecimal TCDocumento = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).ToDecimal @@ -3192,14 +3185,14 @@ Partial Class Bancos_IE 'CONSIDERA COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then ImporteAplicarMN = ImporteAplicar Else - ImporteAplicarMN = (ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TxtTipoCambio.Text.ToDecimal)).RoundSQL() + ImporteAplicarMN = (ImporteAplicar * If(tCveMoneda = 1, 1, TxtTipoCambio.Text.ToDecimal)).RoundSQL() End If - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then TCCompra = GlobalTipoCambio(GvRow.DataKey("Fecha").ToDate).ToDecimal TCDocumento = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).ToDecimal @@ -3221,8 +3214,8 @@ Partial Class Bancos_IE '' 'BANCOS COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then - ImporteAplicarMN = ((ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TCDocumento)) - ImporteAplicar).RoundSQL() + If tCveMoneda > 1 Then + ImporteAplicarMN = ((ImporteAplicar * If(tCveMoneda = 1, 1, TCDocumento)) - ImporteAplicar).RoundSQL() If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteAplicar, ReferenciaAplicar, 204, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME, TipoCambio:=TCDocumento) Then MsgError = "Ocurrió un error al registrara el asiento de bancos complementaria de devolución" End If @@ -3267,9 +3260,9 @@ Partial Class Bancos_IE 'NC COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then - ImporteAplicarMN = ((ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TCCompra)) - ImporteAplicar).RoundSQL() + ImporteAplicarMN = ((ImporteAplicar * If(tCveMoneda = 1, 1, TCCompra)) - ImporteAplicar).RoundSQL() If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -(ImporteAplicar), ReferenciaAplicar, 201, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-(ImporteAplicarMN), ImporteME:=-(ImporteAplicarME), TipoCambio:=TCCompra) Then MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" @@ -3334,7 +3327,7 @@ Partial Class Bancos_IE IEPSDev = Math.Round(IEPSDev * PorcentajeDevolucion, 2) Dim IdCtaIVADevolucionIMPUESTOS As Integer = -1 - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then IVADevMN = IVADev IEPSDevMN = IEPSDev Else @@ -3416,7 +3409,7 @@ Partial Class Bancos_IE Else - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then TCCompra = GlobalTipoCambio(FechaCompra).ToDecimal TCDocumento = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).ToDecimal @@ -3433,8 +3426,8 @@ Partial Class Bancos_IE 'BANCOS COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then - ImporteAplicarMN = ((ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TCDocumento)) - ImporteAplicar).RoundSQL() + If tCveMoneda > 1 Then + ImporteAplicarMN = ((ImporteAplicar * If(tCveMoneda = 1, 1, TCDocumento)) - ImporteAplicar).RoundSQL() If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, ImporteAplicar, ReferenciaAplicar, 204, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME, TipoCambio:=TCDocumento) Then MsgError = "Ocurrió un error al registrara el asiento de bancos complementaria de devolución" End If @@ -3475,13 +3468,10 @@ Partial Class Bancos_IE End If - - - 'NC COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then - ImporteAplicarMN = ((ImporteAplicar * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TCCompra)) - ImporteAplicar).RoundSQL() + ImporteAplicarMN = ((ImporteAplicar * If(tCveMoneda = 1, 1, TCCompra)) - ImporteAplicar).RoundSQL() If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -(ImporteAplicar), ReferenciaAplicar, 201, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-(ImporteAplicarMN), ImporteME:=-(ImporteAplicarME), TipoCambio:=TCCompra) Then MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" @@ -3511,8 +3501,6 @@ Partial Class Bancos_IE End If - - End If 'IMPUESTOS @@ -3557,7 +3545,7 @@ Partial Class Bancos_IE Dim IdCtaIVADevolucionIMPUESTOS As Integer = -1 - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then IVADevMN = IVADev IEPSDevMN = IEPSDev Else @@ -3714,7 +3702,7 @@ Partial Class Bancos_IE TipoMovimiento = False End If - If CveConceptoCompra = 10 AndAlso DdlMoneda.SelectedValue.ToEntero > 1 AndAlso UsaComplementariaBancos Then + If CveConceptoCompra = 10 AndAlso tCveMoneda > 1 AndAlso UsaComplementariaBancos Then IDCtaBeneficiario = IdCtaAnticipoExtranjera End If @@ -3737,7 +3725,7 @@ Partial Class Bancos_IE End If 'BANCOS COMPLEMENTARIA - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If tCveMoneda > 1 Then Dim ImporteAplicar As Decimal = TxtImporte.Text.ToDecimal Dim ImporteAplicarMN = (ImporteAplicar * TxtTipoCambio.Text.ToDecimal - ImporteAplicar).RoundSQL() If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAplicar, Ref, 204, Conc, Now, IDCtaContableComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then @@ -3749,6 +3737,11 @@ Partial Class Bancos_IE MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" End If End If + If CveConceptoCompra = 66 Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, ImporteAplicar, Ref, 226, Conc, Now, IdCtaAnticipoComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then + MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" + End If + End If End If If Opcion.Contiene("EGSSINFACT") AndAlso CveSolicitudViatico > 0 AndAlso MsgError = "" Then @@ -4715,12 +4708,8 @@ Partial Class Bancos_IE #End Region - Protected Sub DdlMoneda_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlMoneda.SelectedIndexChanged - CambiaTipoMoneda() - End Sub - Private Sub CambiaTipoMoneda() - If DdlMoneda.SelectedValue.ToEntero > 1 Then + If CveMoneda > 1 Then TrTipoCambio.Visible = True TxtTipoCambio.Text = GlobalTipoCambio(TxtFechaDocumento.Text.Trim.ToDate).ToString Else @@ -5078,7 +5067,7 @@ Partial Class Bancos_IE If HdnCveProveedor.Value.ToEntero > 0 Or HdnCvePersonal.Value.ToEntero > 0 Then trIEDevolucion.Visible = True - If ObjMov.GetEgresosSinComprobar("-1", "-1", HdnCveProveedor.Value.ToEntero, HdnCvePersonal.Value.ToEntero, -1, -1, -1, DdlMoneda.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) Then + If ObjMov.GetEgresosSinComprobar("-1", "-1", HdnCveProveedor.Value.ToEntero, HdnCvePersonal.Value.ToEntero, -1, -1, -1, CveMoneda, -1, UsuarioActual.CveEmpresa) Then DtIEDevolucion = ObjMov.DtResultados.FiltraParametros("CveIE > 0 AND Saldo > 0 ", "", {"CveIE", "IEDevolucion", "Saldo"}) Else @@ -5103,7 +5092,7 @@ Partial Class Bancos_IE If HdnCveCliente.Value.ToEntero > 0 Then trIEDevolucion.Visible = True - If ObjMov.GetMovimientosIE(1, HdnCveCliente.Value.ToEntero, DdlCuenta.SelectedValue.ToEntero, Now.AddMonths(-24), Now, DdlMoneda.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) Then + If ObjMov.GetMovimientosIE(1, HdnCveCliente.Value.ToEntero, DdlCuenta.SelectedValue.ToEntero, Now.AddMonths(-24), Now, CveMoneda, -1, UsuarioActual.CveEmpresa) Then DtIEDevolucion = ObjMov.DtResultados.FiltraParametros("Saldo > 0 ") Else Alert("Ocurrió un error al cargar los Egresos del Proveedor seleccionado. Por favor vuelva a intetar.", TipoMensaje.MsgError) @@ -5152,7 +5141,7 @@ Partial Class Bancos_IE DivIEAcreedor.Visible = True DdlIEDevolucion.Items.Clear() - If ObjMov.GetIngresosAcreedorXSaldar(HdnCveProveedor.Value.ToEntero, DdlMoneda.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + If ObjMov.GetIngresosAcreedorXSaldar(HdnCveProveedor.Value.ToEntero, CveMoneda, UsuarioActual.CveEmpresa) Then DdlIEAcreedor.DataSource = ObjMov.DtResultados.FiltraParametros("CveIE > 0 AND Saldo > 0 ", "", {"CveIE", "IEAcreedor", "Saldo"}) DdlIEAcreedor.DataBind() DdlIEAcreedor.Items.Insert(0, New ListItem("Seleccione", "-1")) @@ -5492,7 +5481,6 @@ Partial Class Bancos_IE CveOCSolicitudAnticipo = Request("CveOC").ToString.ToEntero TxtImporte.Enabled = False - End If End If @@ -5507,8 +5495,6 @@ Partial Class Bancos_IE SaldoOCAnticipo = 0 End If - - If ObjOC.GetSolicitudAnticipo(CveOCSolicitudAnticipo, UsuarioActual.CveEmpresa) AndAlso ObjOC.DtResultados.Rows.Count > 0 Then Dim DrOC = ObjOC.DtResultados.FiltroPrimero("") @@ -5529,20 +5515,14 @@ Partial Class Bancos_IE ImporteOriginalDolaras = DrOC("ImporteAnticipo").ToString.ToDecimal End If - - DdlMoneda.SelectedValue = DrOC("CveMoneda").ToString - CveMoneda = DrOC("CveMoneda").ToString.ToEntero - CargaCuenta(DrOC("CveMoneda").ToString.ToEntero) - - CveMonedaOriginal = DrOC("CveMoneda").ToString.ToEntero - + CargaCuenta(CveMoneda) + CveMonedaOriginal = CveMoneda If CveMonedaOriginal > 1 Then MostrarPagoEnPesos(True) End If - UpCuentaDeposito.Update() If DrOC("CveProveedor").ToString.ToEntero > 0 Then HdnCveProveedor.Value = DrOC("CveProveedor").ToString @@ -5740,8 +5720,6 @@ Partial Class Bancos_IE Dim ObjBancos As New ClsBancos - - DVGenerarComplementoModal.Visible = False If Tipo = "Abono" Then @@ -5768,7 +5746,6 @@ Partial Class Bancos_IE DivCancelarComplemento.Visible = True End If - ' GvComplementoPagos.DataSource = ObjBancos.DtResultados.FiltraParametros("", DistinctColumns:={"CveComplementoPago", "SerieFolio", "Fecha", "CveIE"}) GvComplementoPagos.DataSource = ObjBancos.DtResultados.FiltraParametros("", DistinctColumns:={"CveComplementoPago", "FolioFiscal", "Folio", "SerieFolio", "FechaComplemento", "Importe", "RFCReceptor", "StrEstatus", "FechaCancelacion", "Tipo", "Estatus", "CveIE", "CvePAC", "MotivoCancelacion"}) @@ -5822,8 +5799,6 @@ Partial Class Bancos_IE End If End If - - ElseIf e.Row.DataKey("Tipo") = "Egs" Then e.Row.Cells(3).Text = String.Format("", Encripta(String.Format("OP=Fact&EXT=xml&CveFactura={0}&RFC={1}", e.Row.DBCampo("CveFactura"), e.Row.DBCampo(("RFCde").ToString.Replace("&", "%26%"))))) @@ -5835,9 +5810,6 @@ Partial Class Bancos_IE End If - - - End If End Sub @@ -5847,7 +5819,6 @@ Partial Class Bancos_IE RegistraScript("$('#ModalComplementoPagos').modal('show');") End Sub - Private Function VerificaComplementos(Validos As Boolean) As Boolean Dim ObjBancos As New ClsBancos Dim Retorno As Boolean = False @@ -5926,9 +5897,8 @@ Partial Class Bancos_IE CargaCliente(CveCliente) 'BuscarCliente() - DdlMoneda.SelectedValue = UrlParametros("CVEMONEDA").ToString - CveMoneda = DdlMoneda.SelectedValue.ToEntero - CargaCuenta(DdlMoneda.SelectedValue.ToEntero) + CveMoneda = UrlParametros("CVEMONEDA").ToString.ToEntero + CargaCuenta(CveMoneda) CambiaTipoMoneda() UpCuentaDeposito.Update() @@ -5939,7 +5909,6 @@ Partial Class Bancos_IE Dim ParametrosTexto As String = Decripta(Request("P")) - If ParametrosTexto <> "" Then CargaParametros(ParametrosTexto) @@ -5958,24 +5927,16 @@ Partial Class Bancos_IE CargaProveedor(CveProveedor, "-1") - - - - - 'BuscarCliente() - - DdlMoneda.SelectedValue = UrlParametros("CVEMONEDA").ToString - CveMoneda = DdlMoneda.SelectedValue.ToEntero - CargaCuenta(DdlMoneda.SelectedValue.ToEntero) + 'BuscarCliente() + CveMoneda = UrlParametros("CVEMONEDA").ToString.ToEntero + CargaCuenta(CveMoneda) CambiaTipoMoneda() UpCuentaDeposito.Update() - End If End If - End Sub #End Region diff --git a/Bancos/PopIECompras.aspx b/Bancos/PopIECompras.aspx index 9fd27ba8a..268ad0e85 100644 --- a/Bancos/PopIECompras.aspx +++ b/Bancos/PopIECompras.aspx @@ -1,797 +1,807 @@ -<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PopIECompras.aspx.vb" Inherits="Bancos_PopIECompras" %> - - - - - - - -   - - - - - - - - -
- - : - -           - - : - -           - - - - -
- - - - + + + + +
- - - -
-
- - Bancos - Viaticos - Personal - Deudores - Acreedores - Ventas - -
-
- -
-
-
-
-
- - Información - -
-
-
-
-
- -
- -
-
-
-
-
- - -
-
- - - -
- -
- - - -
-
- -
- -
- - - -
-
- -
- -
- -
-
- -
- -
- - - - - -
-
- -
-
- : -
-
- - - -
- -
- -
-
- : -
-
- -
-
- -
- -
- - - - Otros Ingresos - -
-
- - - -
-
- : -
-
- - - -
-
- -
-
- -
- - - +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PopIECompras.aspx.vb" Inherits="Bancos_PopIECompras" %> + + + + + + + +   + + + + + + + + +
+ + : + +           + + : + +           + + + + +
+ + + + - - - - -
+ + + +
+
+ + Bancos + Viaticos - Personal + Deudores + Acreedores + Ventas + +
+
+ +
+
+
+
+
+ + Información + +
+
+
+
+
+ +
+ +
+
+
+
+
+ + +
+
+ + + +
+ +
+ + + +
+
+ +
+ +
+ + + +
+
+ +
+ +
+ +
+
+ +
+ +
+ + + + + +
+
+ +
+
+ : +
+
+ + + +
+ +
+ +
+
+ : +
+
+ +
+
+ +
+ +
+ + - + Otros Ingresos + +
+
+ + + +
+
+ :
-
- - - -
- -
- - <%-- - --%> +
+ + +
-
- - - - -
-
-
- -
-
Observaciones:
-
- -
-
- -
-
- -
- - -
- -
- - - -
-
-
- - -
- -
- - - -
-
- -
-
- - - - - - - - - - - Fecha - - - - - - Folio - - - - - - Saldo - -   - - - - - Saldo Abonar - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
- - - -
-
- -
-
- - - - - - - - - - - Fecha - - - - - - Folio - - - - - - Saldo - -   - - - - - Saldo Abonar - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -
- - - -
-
- -
-
- - - - - - - - - - - Fecha - - - - - - Folio - - - - - - Saldo - -   - - - - - Saldo Abonar - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-
- - - -
- - - - - - - - - Fecha - - - - - - Folio - - - - - - Saldo - -   - - - - - Saldo Abonar - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- -
-
-
- -
-
-
-
- - Importes - -
-
-
-
-
- -
- -
-
-
- -
- -
-
- - - - -
- - - - - - +
+ +
+
+ +
+ + + +
+
+ + + +
+ +
+ + <%-- + --%> +
+
+ + + + +
+ + + +
+
Observaciones:
+
+ +
+
+ +
+
+ + + + +
+ +
+ + + +
+
+ +
+ +
+ + + +
+
+ +
+ + +
+ +
+ + + +
+
+ +
+
+ + + + + + + + + + + Fecha + + + + + + Folio + + + + + + Saldo + +   + + + + + Saldo Abonar + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+ + + +
+
+ +
+
+ + + + + + + + + + + Fecha + + + + + + Folio + + + + + + Saldo + +   + + + + + Saldo Abonar + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ +
+ + + +
+
+ +
+
+ + + + + + + + + + + Fecha + + + + + + Folio + + + + + + Saldo + +   + + + + + Saldo Abonar + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+
+ + + +
+ + + + + + + + + Fecha + + + + + + Folio + + + + + + Saldo + +   + + + + + Saldo Abonar + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+
+ +
+
+
+
+ + Importes + +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + + + +
+ + + + + + - -
-
- -
-
Importe $:
-
- - - - - -
-
- -
-
Comision: $
-
- - - <%-- --%> -
-
- -
-
Total: $
-
- - - -
-
- -
- -
-
Tipo Cambio:
-
- - - -
-
- -
-
-
-
-
- - - -
- - - - - - - -
-
- - - - + +
+
+ +
+
Importe $:
+
+ + + + + +
+
+ +
+
Comision: $
+
+ + + <%-- --%> +
+
+ +
+
Total: $
+
+ + + +
+
+ +
+ +
+
Tipo Cambio:
+
+ + + +
+
+ +
+
+
+
+ + + +
+ + + + + + + +
+
+ + + + diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index c8bc70e44..9c2195276 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -428,6 +428,19 @@ Partial Class Bancos_PopIECompras End Property + Private Property DtCheques As DataTable + Get + + If ViewState("DtCheques") Is Nothing Then + ViewState("DtCheques") = New DataTable + End If + + Return CType(ViewState("DtCheques"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtCheques") = value + End Set + End Property @@ -1075,23 +1088,67 @@ Partial Class Bancos_PopIECompras End Sub Protected Sub DdlFuncionarioEmpleado_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlFuncionarioEmpleado.SelectedIndexChanged - ArrIEFuncionariosEmpleados = New ArrayList() - - Dim CvePersonal As Integer = DdlFuncionarioEmpleado.SelectedValue.ToEntero - - If CveCompra > 0 Then - For Each Ant As Anticipos In ArrIE - If Ant.CvePersonal = CvePersonal Then - ArrIEFuncionariosEmpleados.Add(New Anticipos With {.CveIE = Ant.CveIE, .Importe = Ant.Importe, .CvePersonal = Ant.CvePersonal}) - End If - Next - 'actualizo el monto maximo a pagar en el movimiento bancario - Dim tSaldo As Decimal = DdlFuncionarioEmpleado.SelectedItem.Text.Split(CChar("-"))(1).ToDecimal - If tSaldo < MovimientoPagar.Saldo Then - TxtImporte.Text = tSaldo.FormatoNumero() - End If - End If + ArrIEFuncionariosEmpleados = New ArrayList() + ArrIE = New ArrayList() + DtCheques = New DataTable + + 'Dim objGastosXComprobar As New ClsMovimientos + Dim CvePersonal As Integer = DdlFuncionarioEmpleado.SelectedValue.ToEntero + + 'If objGastosXComprobar.GetEgresosSinComprobarPersonal(UsuarioActual.CveEmpresa) Then + + 'For Each Row As DataRow In objGastosXComprobar.DtResultados.FiltraParametros("CvePersonal > 0 AND FechaDocumento IS NOT NULL").Rows + ' ArrIE.Add(New Anticipos With {.CveIE = Row("CveIE").ToString.ToEntero, .Importe = Row("Saldo").ToString.ToDecimal, .CvePersonal = Row("CvePersonal").ToString.ToEntero}) + 'Next + + + + + Dim ObjMovtos As New ClsMovimientos + RowCheque.Visible = True + + ObjMovtos.GetEgresosSinComprobarPersonalDetalle(DdlFuncionarioEmpleado.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) + DtCheques = ObjMovtos.DtResultados.FiltraParametros("CveIE > 0", "FechaDocumento, FolioFecha") + + 'Limpia Ddl Cheques + DDlCheques.Items.Clear() + + If DtCheques.Rows.Count > 0 Then + DDlCheques.DataSource = DtCheques + End If + + ObjMovtos.Dispose() + DDlCheques.DataBind() + 'EstaAsociadoAPersonal = True + + + DDlCheques_SelectedIndexChanged(DDlCheques, EventArgs.Empty) + + + UpDatos.Update() + + 'End If + + + + End Sub + + Protected Sub DDlCheques_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDlCheques.SelectedIndexChanged + 'Dim saldo As Double = DtCheques.Rows(DDlCheques.SelectedIndex)("Saldo").ToString.ToDecimal + Dim saldo As Double = DtCheques.Rows(DDlCheques.SelectedIndex)("Saldo").ToString.ToDecimal + 'TxtDocumentoImporteFE.Text = If(saldo < TxtTotal.Text.ToDouble, saldo.FormatoNumero, TxtTotal.Text) + 'lblSaldoFE.Text = saldo.FormatoNumero + If CveCompra > 0 Then + 'Dim tSaldo As Decimal = DdlFuncionarioEmpleado.SelectedItem.Text.Split(CChar("-"))(1).ToDecimal + If saldo < MovimientoPagar.Saldo Then + TxtImporte.Text = saldo.FormatoNumero() + Else + TxtImporte.Text = MovimientoPagar.Saldo.FormatoNumero() + End If + End If + UpDatos.Update() + End Sub Private Sub DdlIngreso_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlIngreso.SelectedIndexChanged @@ -1374,11 +1431,25 @@ Partial Class Bancos_PopIECompras ImportePagado = TxtImporte.Text.Trim.ToDecimal Fecha = TxtFechaDocumento.Text.Trim.ToDate TipoMovimiento = True - Case "2" 'FyE + Case "2" 'FyE + ImportePagado = TxtImporte.Text.Trim.ToDecimal Fecha = TxtFechaDocumento.Text.Trim.ToDate CveConcepto = 29 - CveIE = -1 + CveIE = DDlCheques.SelectedValue.ToEntero + + If Not CveIE > 0 Then + Alert("No se encontro movimientos bancarios de perosonal", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim saldo As Double = DtCheques.Rows(DDlCheques.SelectedIndex)("Saldo").ToString.ToDecimal + + If TxtImporte.Text.ToDecimal > saldo Then + Alert("El importe no debe de superar el saldo del cheque seleccionado.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + TipoMovimiento = True Dim stringPersonal As String = DdlFuncionarioEmpleado.SelectedItem.ToString CvePersonal = DdlFuncionarioEmpleado.SelectedValue.ToEntero @@ -1516,9 +1587,13 @@ Partial Class Bancos_PopIECompras Else MsgError = "Ocurrio un Error al registrarse el movimiento bancario." Inserta = False - End If - Case Else + End If + Case "2" ' F Y E + + Case Else + CveIE = -1 + End Select If DdlOtrosPagos.SelectedValue = "2" AndAlso TxtComision.Text.ToDecimal > 0 Then @@ -2234,7 +2309,7 @@ Partial Class Bancos_PopIECompras End If If MovimientoPagar.IVANoDeducible > 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, If(ConceptoContable = 30, TxtFolio.Text.Trim, TxtObservaciones.Text), 280, ConceptoMovimiento, Fecha, IdCtaContableNoIVA, -1, CveIE, -1, CveCompra, -1, CveProveedor:=CveProveedor2, ImporteMX:=ImporteMXNoDeducible, TipoCambio:=TimpocambioGeneral, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeImpuesto) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, If(ConceptoContable = 30, TxtFolio.Text.Trim, TxtObservaciones.Text), 280, ConceptoMovimiento, Fecha, IdCtaContableNoIVA, -1, CveIE, -1, CveCompra, CveProveedor:=CveProveedor2, ImporteMX:=ImporteMXNoDeducible, TipoCambio:=TimpocambioGeneral, CvePersonal:=CvePersonal, PorcentajeImpuesto:=PorcentajeImpuesto, CveSubProyecto:=CveSubProyecto) Then MsgError = "No se pudo insertar la póliza" Else ImporteMovimiento = 0 diff --git a/Bancos/ProveedoresAbonar.aspx b/Bancos/ProveedoresAbonar.aspx index cfd8e4adf..412f0db79 100644 --- a/Bancos/ProveedoresAbonar.aspx +++ b/Bancos/ProveedoresAbonar.aspx @@ -131,7 +131,7 @@
- +
diff --git a/Bin/AjaxControlToolkit.StaticResources.dll.refresh b/Bin/AjaxControlToolkit.StaticResources.dll.refresh index b3cf24911..c88057f8c 100644 Binary files a/Bin/AjaxControlToolkit.StaticResources.dll.refresh and b/Bin/AjaxControlToolkit.StaticResources.dll.refresh differ diff --git a/Bin/AjaxControlToolkit.dll.refresh b/Bin/AjaxControlToolkit.dll.refresh index 77c4b3e42..2455d273e 100644 --- a/Bin/AjaxControlToolkit.dll.refresh +++ b/Bin/AjaxControlToolkit.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\AjaxControlToolkit.15.1.4.0\lib\net40\AjaxControlToolkit.dll \ No newline at end of file +..\packages\AjaxControlToolkit.15.1.4.0\lib\net40\AjaxControlToolkit.dll \ No newline at end of file diff --git a/Bin/Antlr3.Runtime.dll.refresh b/Bin/Antlr3.Runtime.dll.refresh index 38d3e5b03..19eeed0e7 100644 --- a/Bin/Antlr3.Runtime.dll.refresh +++ b/Bin/Antlr3.Runtime.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll \ No newline at end of file +..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll \ No newline at end of file diff --git a/Bin/BarcodeStandard.dll.refresh b/Bin/BarcodeStandard.dll.refresh index a4e749e42..9235a5c00 100644 Binary files a/Bin/BarcodeStandard.dll.refresh and b/Bin/BarcodeStandard.dll.refresh differ diff --git a/Bin/BouncyCastle.Crypto.dll b/Bin/BouncyCastle.Crypto.dll new file mode 100644 index 000000000..967a9332b Binary files /dev/null and b/Bin/BouncyCastle.Crypto.dll differ diff --git a/Bin/BouncyCastle.Crypto.dll.refresh b/Bin/BouncyCastle.Crypto.dll.refresh new file mode 100644 index 000000000..53b094274 --- /dev/null +++ b/Bin/BouncyCastle.Crypto.dll.refresh @@ -0,0 +1 @@ +..\packages\Portable.BouncyCastle.1.8.9\lib\net40\BouncyCastle.Crypto.dll \ No newline at end of file diff --git a/Bin/BouncyCastle.Crypto.xml b/Bin/BouncyCastle.Crypto.xml new file mode 100644 index 000000000..364abd39d --- /dev/null +++ b/Bin/BouncyCastle.Crypto.xml @@ -0,0 +1,26258 @@ + + + + BouncyCastle.Crypto + + + + return the X9ECParameters object for the named curve represented by + the passed in object identifier. Null if the curve isn't present. + + @param oid an object identifier representing a named curve, if present. + + + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + + + return the named curve name represented by the given object identifier. + + + returns an enumeration containing the name strings for curves + contained in this structure. + + + Return the DER encoding of the object, null if the DER encoding can not be made. + + @return a DER byte array, null otherwise. + + + Mutable class for building ASN.1 constructed objects such as SETs or SEQUENCEs. + + + a general purpose ASN.1 decoder - note: this class differs from the + others in that it returns null after it has read the last object in + the stream. If an ASN.1 Null is encountered a Der/BER Null object is + returned. + + + Create an ASN1InputStream where no DER object will be longer than limit. + + @param input stream containing ASN.1 encoded data. + @param limit maximum size of a DER encoded object. + + + Create an ASN1InputStream based on the input byte array. The length of DER objects in + the stream is automatically limited to the length of the input array. + + @param input array containing ASN.1 encoded data. + + + build an object given its tag and the number of bytes to construct it from. + + + A Null object. + + + Create a base ASN.1 object from a byte array. + The byte array to parse. + The base ASN.1 object represented by the byte array. + + If there is a problem parsing the data, or parsing an object did not exhaust the available data. + + + + Read a base ASN.1 object from a stream. + The stream to parse. + The base ASN.1 object represented by the byte array. + If there is a problem parsing the data. + + + return an Octet string from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + return an Octet string from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + @param string the octets making up the octet string. + + + return an Asn1Sequence from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Return an ASN1 sequence from a tagged object. There is a special + case here, if an object appears to have been explicitly tagged on + reading but we were expecting it to be implicitly tagged in the + normal course of events it indicates that we lost the surrounding + sequence - so we need to add it back (this will happen if the tagged + object is a sequence that contains other sequences). If you are + dealing with implicitly tagged sequences you really should + be using this method. + + @param obj the tagged object. + @param explicitly true if the object is meant to be explicitly tagged, + false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + return the object at the sequence position indicated by index. + + @param index the sequence number (starting at zero) of the object + @return the object at the sequence position indicated by index. + + + return an ASN1Set from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Return an ASN1 set from a tagged object. There is a special + case here, if an object appears to have been explicitly tagged on + reading but we were expecting it to be implicitly tagged in the + normal course of events it indicates that we lost the surrounding + set - so we need to add it back (this will happen if the tagged + object is a sequence that contains other sequences). If you are + dealing with implicitly tagged sets you really should + be using this method. + + @param obj the tagged object. + @param explicitly true if the object is meant to be explicitly tagged + false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + return the object at the set position indicated by index. + + @param index the set number (starting at zero) of the object + @return the object at the set position indicated by index. + + + ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by + a [n] where n is some number - these are assumed to follow the construction + rules (as with sequences). + + + @param tagNo the tag number for this object. + @param obj the tagged object. + + + @param explicitly true if the object is explicitly tagged. + @param tagNo the tag number for this object. + @param obj the tagged object. + + + return whether or not the object may be explicitly tagged. +

+ Note: if the object has been read from an input stream, the only + time you can be sure if isExplicit is returning the true state of + affairs is if it returns false. An implicitly tagged object may appear + to be explicitly tagged, so you need to understand the context under + which the reading was done as well, see GetObject below.

+
+ + return whatever was following the tag. +

+ Note: tagged objects are generally context dependent if you're + trying to extract a tagged object you should be going via the + appropriate GetInstance method.

+
+ + Return the object held in this tagged object as a parser assuming it has + the type of the passed in tag. If the object doesn't have a parser + associated with it, the base object is returned. + + + iso.org.dod.internet.private.enterprise.legion-of-the-bouncy-castle +

1.3.6.1.4.1.22554

+
+ + pbe(1) algorithms +

1.3.6.1.4.1.22554.1

+
+ + SHA-1(1) +

1.3.6.1.4.1.22554.1.1

+
+ + SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1 + + + SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2 + + + SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3 + + + SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4 + + + PKCS-5(1)|PKCS-12(2) + SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1 + + + SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2 + + + SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1 + + + SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2 + + + AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42)) + 1.3.6.1.4.1.22554.1.1.2.1.2 + + + 1.3.6.1.4.1.22554.1.1.2.1.22 + + + 1.3.6.1.4.1.22554.1.1.2.1.42 + + + 1.3.6.1.4.1.22554.1.1.2.2.2 + + + 1.3.6.1.4.1.22554.1.1.2.2.22 + + + 1.3.6.1.4.1.22554.1.1.2.2.42 + + + signature(2) algorithms + + + Sphincs-256 + + + XMSS + + + XMSS^MT + + + key_exchange(3) algorithms + + + NewHope + + + + Extension to tie an alternate certificate to the containing certificate. +
+                LinkedCertificate := SEQUENCE {
+                    digest        DigestInfo,                   -- digest of PQC certificate
+                    certLocation  GeneralName,                  -- location of PQC certificate
+                    certIssuer    [0] Name OPTIONAL,            -- issuer of PQC cert (if different from current certificate)
+                    cACerts       [1] GeneralNames OPTIONAL,    -- CA certificates for PQC cert (one of more locations)
+            }
+            
+
+ + A BER Null object. + + + return the DER octets that make up this string. + + + create an empty sequence + + + create a sequence containing one object + + + create a sequence containing a vector of objects. + + + create an empty sequence + + + create a set containing one object + + + create a set containing a vector of objects. + + + BER TaggedObject - in ASN.1 notation this is any object preceded by + a [n] where n is some number - these are assumed to follow the construction + rules (as with sequences). + + + @param tagNo the tag number for this object. + @param obj the tagged object. + + + @param explicitly true if an explicitly tagged object. + @param tagNo the tag number for this object. + @param obj the tagged object. + + + create an implicitly tagged object that contains a zero + length sequence. + + + See https://www.bsi.bund.de/cae/servlet/contentblob/471398/publicationFile/30615/BSI-TR-03111_pdf.pdf + + + 0.4.0.127.0.7.1 + + + ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1 + + + ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 + with hash function SHA-1 + OID: 0.4.0.127.0.7.1.1.5.1.1.1 + + + ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 + with hash function SHA224 + OID: 0.4.0.127.0.7.1.1.5.1.1.2 + + + ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 + with hash function SHA256 + OID: 0.4.0.127.0.7.1.1.5.1.1.3 + + + ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 + with hash function SHA384 + OID: 0.4.0.127.0.7.1.1.5.1.1.4 + + + ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 + with hash function SHA512 + OID: 0.4.0.127.0.7.1.1.5.1.1.5 + + + ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 + with hash function RIPEMD160 + OID: 0.4.0.127.0.7.1.1.5.1.1.6 + + + Key Derivation Function for Session Keys + + +
+            CAKeyUpdAnnContent ::= SEQUENCE {
+                                        oldWithNew   CmpCertificate, -- old pub signed with new priv
+                                        newWithOld   CmpCertificate, -- new pub signed with old priv
+                                        newWithNew   CmpCertificate  -- new pub signed with new priv
+             }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertConfirmContent ::= SEQUENCE OF CertStatus
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertifiedKeyPair ::= SEQUENCE {
+                                             certOrEncCert       CertOrEncCert,
+                                             privateKey      [0] EncryptedValue      OPTIONAL,
+                                             -- see [CRMF] for comment on encoding
+                                             publicationInfo [1] PKIPublicationInfo  OPTIONAL
+                  }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertOrEncCert ::= CHOICE {
+                                 certificate     [0] CMPCertificate,
+                                 encryptedCert   [1] EncryptedValue
+                      }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertRepMessage ::= SEQUENCE {
+                                     caPubs       [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+                                                                                        OPTIONAL,
+                                     response         SEQUENCE OF CertResponse
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertResponse ::= SEQUENCE {
+                                       certReqId           INTEGER,
+                                       -- to match this response with corresponding request (a value
+                                       -- of -1 is to be used if certReqId is not specified in the
+                                       -- corresponding request)
+                                       status              PKIStatusInfo,
+                                       certifiedKeyPair    CertifiedKeyPair    OPTIONAL,
+                                       rspInfo             OCTET STRING        OPTIONAL
+                                       -- analogous to the id-regInfo-utf8Pairs string defined
+                                       -- for regInfo in CertReqMsg [CRMF]
+                        }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertStatus ::= SEQUENCE {
+                              certHash    OCTET STRING,
+                              -- the hash of the certificate, using the same hash algorithm
+                              -- as is used to create and verify the certificate signature
+                              certReqId   INTEGER,
+                              -- to match this confirmation with the corresponding req/rep
+                              statusInfo  PKIStatusInfo OPTIONAL
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+             Challenge ::= SEQUENCE {
+                             owf                 AlgorithmIdentifier  OPTIONAL,
+            
+                             -- MUST be present in the first Challenge; MAY be omitted in
+                             -- any subsequent Challenge in POPODecKeyChallContent (if
+                             -- omitted, then the owf used in the immediately preceding
+                             -- Challenge is to be used).
+            
+                             witness             OCTET STRING,
+                             -- the result of applying the one-way function (owf) to a
+                             -- randomly-generated INTEGER, A.  [Note that a different
+                             -- INTEGER MUST be used for each Challenge.]
+                             challenge           OCTET STRING
+                             -- the encryption (under the public key for which the cert.
+                             -- request is being made) of Rand, where Rand is specified as
+                             --   Rand ::= SEQUENCE {
+                             --      int      INTEGER,
+                             --       - the randomly-generated INTEGER A (above)
+                             --      sender   GeneralName
+                             --       - the sender's name (as included in PKIHeader)
+                             --   }
+                  }
+             
+ @return a basic ASN.1 object representation. +
+ + Note: the addition of attribute certificates is a BC extension. + + +
+             CMPCertificate ::= CHOICE {
+                        x509v3PKCert        Certificate
+                        x509v2AttrCert      [1] AttributeCertificate
+              }
+             
+ Note: the addition of attribute certificates is a BC extension. + + @return a basic ASN.1 object representation. +
+ +
+            CrlAnnContent ::= SEQUENCE OF CertificateList
+            
+ @return a basic ASN.1 object representation. +
+ +
+            ErrorMsgContent ::= SEQUENCE {
+                                   pKIStatusInfo          PKIStatusInfo,
+                                   errorCode              INTEGER           OPTIONAL,
+                                   -- implementation-specific error codes
+                                   errorDetails           PKIFreeText       OPTIONAL
+                                   -- implementation-specific error details
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+            
+ @return a basic ASN.1 object representation. +
+ +
+            GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+            
+ @return a basic ASN.1 object representation. +
+ + Example InfoTypeAndValue contents include, but are not limited + to, the following (un-comment in this ASN.1 module and use as + appropriate for a given environment): +
+               id-it-caProtEncCert    OBJECT IDENTIFIER ::= {id-it 1}
+                  CAProtEncCertValue      ::= CMPCertificate
+               id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+                 SignKeyPairTypesValue   ::= SEQUENCE OF AlgorithmIdentifier
+               id-it-encKeyPairTypes  OBJECT IDENTIFIER ::= {id-it 3}
+                 EncKeyPairTypesValue    ::= SEQUENCE OF AlgorithmIdentifier
+               id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+                  PreferredSymmAlgValue   ::= AlgorithmIdentifier
+               id-it-caKeyUpdateInfo  OBJECT IDENTIFIER ::= {id-it 5}
+                  CAKeyUpdateInfoValue    ::= CAKeyUpdAnnContent
+               id-it-currentCRL       OBJECT IDENTIFIER ::= {id-it 6}
+                  CurrentCRLValue         ::= CertificateList
+               id-it-unsupportedOIDs  OBJECT IDENTIFIER ::= {id-it 7}
+                  UnsupportedOIDsValue    ::= SEQUENCE OF OBJECT IDENTIFIER
+               id-it-keyPairParamReq  OBJECT IDENTIFIER ::= {id-it 10}
+                  KeyPairParamReqValue    ::= OBJECT IDENTIFIER
+               id-it-keyPairParamRep  OBJECT IDENTIFIER ::= {id-it 11}
+                  KeyPairParamRepValue    ::= AlgorithmIdentifer
+               id-it-revPassphrase    OBJECT IDENTIFIER ::= {id-it 12}
+                  RevPassphraseValue      ::= EncryptedValue
+               id-it-implicitConfirm  OBJECT IDENTIFIER ::= {id-it 13}
+                  ImplicitConfirmValue    ::= NULL
+               id-it-confirmWaitTime  OBJECT IDENTIFIER ::= {id-it 14}
+                  ConfirmWaitTimeValue    ::= GeneralizedTime
+               id-it-origPKIMessage   OBJECT IDENTIFIER ::= {id-it 15}
+                  OrigPKIMessageValue     ::= PKIMessages
+               id-it-suppLangTags     OBJECT IDENTIFIER ::= {id-it 16}
+                  SuppLangTagsValue       ::= SEQUENCE OF UTF8String
+            
+             where
+            
+               id-pkix OBJECT IDENTIFIER ::= {
+                  iso(1) identified-organization(3)
+                  dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+             and
+                  id-it   OBJECT IDENTIFIER ::= {id-pkix 4}
+             
+
+ +
+            InfoTypeAndValue ::= SEQUENCE {
+                                    infoType               OBJECT IDENTIFIER,
+                                    infoValue              ANY DEFINED BY infoType  OPTIONAL
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            KeyRecRepContent ::= SEQUENCE {
+                                    status                  PKIStatusInfo,
+                                    newSigCert          [0] CMPCertificate OPTIONAL,
+                                    caCerts             [1] SEQUENCE SIZE (1..MAX) OF
+                                                                      CMPCertificate OPTIONAL,
+                                    keyPairHist         [2] SEQUENCE SIZE (1..MAX) OF
+                                                                      CertifiedKeyPair OPTIONAL
+                         }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            OobCertHash ::= SEQUENCE {
+                                 hashAlg     [0] AlgorithmIdentifier     OPTIONAL,
+                                 certId      [1] CertId                  OPTIONAL,
+                                 hashVal         BIT STRING
+                                 -- hashVal is calculated over the Der encoding of the
+                                 -- self-signed certificate with the identifier certID.
+                  }
+            
+ @return a basic ASN.1 object representation. +
+ +
+             PbmParameter ::= SEQUENCE {
+                                   salt                OCTET STRING,
+                                   -- note:  implementations MAY wish to limit acceptable sizes
+                                   -- of this string to values appropriate for their environment
+                                   -- in order to reduce the risk of denial-of-service attacks
+                                   owf                 AlgorithmIdentifier,
+                                   -- AlgId for a One-Way Function (SHA-1 recommended)
+                                   iterationCount      INTEGER,
+                                   -- number of times the OWF is applied
+                                   -- note:  implementations MAY wish to limit acceptable sizes
+                                   -- of this integer to values appropriate for their environment
+                                   -- in order to reduce the risk of denial-of-service attacks
+                                   mac                 AlgorithmIdentifier
+                                   -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+               }   -- or HMAC [RFC2104, RFC2202])
+            
+ @return a basic ASN.1 object representation. +
+ + Creates a new PkiBody. + @param type one of the TYPE_* constants + @param content message content + + +
+            PkiBody ::= CHOICE {       -- message-specific body elements
+                   ir       [0]  CertReqMessages,        --Initialization Request
+                   ip       [1]  CertRepMessage,         --Initialization Response
+                   cr       [2]  CertReqMessages,        --Certification Request
+                   cp       [3]  CertRepMessage,         --Certification Response
+                   p10cr    [4]  CertificationRequest,   --imported from [PKCS10]
+                   popdecc  [5]  POPODecKeyChallContent, --pop Challenge
+                   popdecr  [6]  POPODecKeyRespContent,  --pop Response
+                   kur      [7]  CertReqMessages,        --Key Update Request
+                   kup      [8]  CertRepMessage,         --Key Update Response
+                   krr      [9]  CertReqMessages,        --Key Recovery Request
+                   krp      [10] KeyRecRepContent,       --Key Recovery Response
+                   rr       [11] RevReqContent,          --Revocation Request
+                   rp       [12] RevRepContent,          --Revocation Response
+                   ccr      [13] CertReqMessages,        --Cross-Cert. Request
+                   ccp      [14] CertRepMessage,         --Cross-Cert. Response
+                   ckuann   [15] CAKeyUpdAnnContent,     --CA Key Update Ann.
+                   cann     [16] CertAnnContent,         --Certificate Ann.
+                   rann     [17] RevAnnContent,          --Revocation Ann.
+                   crlann   [18] CRLAnnContent,          --CRL Announcement
+                   pkiconf  [19] PKIConfirmContent,      --Confirmation
+                   nested   [20] NestedMessageContent,   --Nested Message
+                   genm     [21] GenMsgContent,          --General Message
+                   genp     [22] GenRepContent,          --General Response
+                   error    [23] ErrorMsgContent,        --Error Message
+                   certConf [24] CertConfirmContent,     --Certificate confirm
+                   pollReq  [25] PollReqContent,         --Polling request
+                   pollRep  [26] PollRepContent          --Polling response
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            PkiConfirmContent ::= NULL
+            
+ @return a basic ASN.1 object representation. +
+ +
+            PKIFailureInfo ::= BIT STRING {
+            badAlg               (0),
+              -- unrecognized or unsupported Algorithm Identifier
+            badMessageCheck      (1), -- integrity check failed (e.g., signature did not verify)
+            badRequest           (2),
+              -- transaction not permitted or supported
+            badTime              (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+            badCertId            (4), -- no certificate could be found matching the provided criteria
+            badDataFormat        (5),
+              -- the data submitted has the wrong format
+            wrongAuthority       (6), -- the authority indicated in the request is different from the one creating the response token
+            incorrectData        (7), -- the requester's data is incorrect (for notary services)
+            missingTimeStamp     (8), -- when the timestamp is missing but should be there (by policy)
+            badPOP               (9)  -- the proof-of-possession failed
+            certRevoked         (10),
+            certConfirmed       (11),
+            wrongIntegrity      (12),
+            badRecipientNonce   (13), 
+            timeNotAvailable    (14),
+              -- the TSA's time source is not available
+            unacceptedPolicy    (15),
+              -- the requested TSA policy is not supported by the TSA
+            unacceptedExtension (16),
+              -- the requested extension is not supported by the TSA
+            addInfoNotAvailable (17)
+              -- the additional information requested could not be understood
+              -- or is not available
+            badSenderNonce      (18),
+            badCertTemplate     (19),
+            signerNotTrusted    (20),
+            transactionIdInUse  (21),
+            unsupportedVersion  (22),
+            notAuthorized       (23),
+            systemUnavail       (24),    
+            systemFailure       (25),
+              -- the request cannot be handled due to system failure
+            duplicateCertReq    (26) 
+            
+
+ + Basic constructor. + + + Return the number of string elements present. + + @return number of elements present. + + + Return the UTF8STRING at index. + + @param index index of the string of interest + @return the string at index. + + +
+            PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+            
+
+ + Value for a "null" recipient or sender. + + +
+             PkiHeader ::= SEQUENCE {
+                       pvno                INTEGER     { cmp1999(1), cmp2000(2) },
+                       sender              GeneralName,
+                       -- identifies the sender
+                       recipient           GeneralName,
+                       -- identifies the intended recipient
+                       messageTime     [0] GeneralizedTime         OPTIONAL,
+                       -- time of production of this message (used when sender
+                       -- believes that the transport will be "suitable"; i.e.,
+                       -- that the time will still be meaningful upon receipt)
+                       protectionAlg   [1] AlgorithmIdentifier     OPTIONAL,
+                       -- algorithm used for calculation of protection bits
+                       senderKID       [2] KeyIdentifier           OPTIONAL,
+                       recipKID        [3] KeyIdentifier           OPTIONAL,
+                       -- to identify specific keys used for protection
+                       transactionID   [4] OCTET STRING            OPTIONAL,
+                       -- identifies the transaction; i.e., this will be the same in
+                       -- corresponding request, response, certConf, and PKIConf
+                       -- messages
+                       senderNonce     [5] OCTET STRING            OPTIONAL,
+                       recipNonce      [6] OCTET STRING            OPTIONAL,
+                       -- nonces used to provide replay protection, senderNonce
+                       -- is inserted by the creator of this message; recipNonce
+                       -- is a nonce previously inserted in a related message by
+                       -- the intended recipient of this message
+                       freeText        [7] PKIFreeText             OPTIONAL,
+                       -- this may be used to indicate context-specific instructions
+                       -- (this field is intended for human consumption)
+                       generalInfo     [8] SEQUENCE SIZE (1..MAX) OF
+                                            InfoTypeAndValue     OPTIONAL
+                       -- this may be used to convey context-specific information
+                       -- (this field not primarily intended for human consumption)
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+             PKIHeader ::= SEQUENCE {
+                       pvno                INTEGER     { cmp1999(1), cmp2000(2) },
+                       sender              GeneralName,
+                       -- identifies the sender
+                       recipient           GeneralName,
+                       -- identifies the intended recipient
+                       messageTime     [0] GeneralizedTime         OPTIONAL,
+                       -- time of production of this message (used when sender
+                       -- believes that the transport will be "suitable"; i.e.,
+                       -- that the time will still be meaningful upon receipt)
+                       protectionAlg   [1] AlgorithmIdentifier     OPTIONAL,
+                       -- algorithm used for calculation of protection bits
+                       senderKID       [2] KeyIdentifier           OPTIONAL,
+                       recipKID        [3] KeyIdentifier           OPTIONAL,
+                       -- to identify specific keys used for protection
+                       transactionID   [4] OCTET STRING            OPTIONAL,
+                       -- identifies the transaction; i.e., this will be the same in
+                       -- corresponding request, response, certConf, and PKIConf
+                       -- messages
+                       senderNonce     [5] OCTET STRING            OPTIONAL,
+                       recipNonce      [6] OCTET STRING            OPTIONAL,
+                       -- nonces used to provide replay protection, senderNonce
+                       -- is inserted by the creator of this message; recipNonce
+                       -- is a nonce previously inserted in a related message by
+                       -- the intended recipient of this message
+                       freeText        [7] PKIFreeText             OPTIONAL,
+                       -- this may be used to indicate context-specific instructions
+                       -- (this field is intended for human consumption)
+                       generalInfo     [8] SEQUENCE SIZE (1..MAX) OF
+                                            InfoTypeAndValue     OPTIONAL
+                       -- this may be used to convey context-specific information
+                       -- (this field not primarily intended for human consumption)
+            }
+            
+ @return a basic ASN.1 object representation. +
+ + Creates a new PkiMessage. + + @param header message header + @param body message body + @param protection message protection (may be null) + @param extraCerts extra certificates (may be null) + + +
+            PkiMessage ::= SEQUENCE {
+                             header           PKIHeader,
+                             body             PKIBody,
+                             protection   [0] PKIProtection OPTIONAL,
+                             extraCerts   [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+                                                                                OPTIONAL
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+            
+ @return a basic ASN.1 object representation. +
+ + @param status + + + @param status + @param statusString + + +
+             PkiStatusInfo ::= SEQUENCE {
+                 status        PKIStatus,                (INTEGER)
+                 statusString  PkiFreeText     OPTIONAL,
+                 failInfo      PkiFailureInfo  OPTIONAL  (BIT STRING)
+             }
+            
+             PKIStatus:
+               granted                (0), -- you got exactly what you asked for
+               grantedWithMods        (1), -- you got something like what you asked for
+               rejection              (2), -- you don't get it, more information elsewhere in the message
+               waiting                (3), -- the request body part has not yet been processed, expect to hear more later
+               revocationWarning      (4), -- this message contains a warning that a revocation is imminent
+               revocationNotification (5), -- notification that a revocation has occurred
+               keyUpdateWarning       (6)  -- update already done for the oldCertId specified in CertReqMsg
+            
+             PkiFailureInfo:
+               badAlg           (0), -- unrecognized or unsupported Algorithm Identifier
+               badMessageCheck  (1), -- integrity check failed (e.g., signature did not verify)
+               badRequest       (2), -- transaction not permitted or supported
+               badTime          (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+               badCertId        (4), -- no certificate could be found matching the provided criteria
+               badDataFormat    (5), -- the data submitted has the wrong format
+               wrongAuthority   (6), -- the authority indicated in the request is different from the one creating the response token
+               incorrectData    (7), -- the requester's data is incorrect (for notary services)
+               missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+               badPOP           (9)  -- the proof-of-possession failed
+            
+             
+
+ +
+            PollRepContent ::= SEQUENCE OF SEQUENCE {
+                    certReqId              INTEGER,
+                    checkAfter             INTEGER,  -- time in seconds
+                    reason                 PKIFreeText OPTIONAL
+                }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            PollReqContent ::= SEQUENCE OF SEQUENCE {
+                                   certReqId              INTEGER
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+            
+ @return a basic ASN.1 object representation. +
+ +
+            PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+            
+ @return a basic ASN.1 object representation. +
+ +
+            ProtectedPart ::= SEQUENCE {
+                               header    PKIHeader,
+                               body      PKIBody
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            RevAnnContent ::= SEQUENCE {
+                  status              PKIStatus,
+                  certId              CertId,
+                  willBeRevokedAt     GeneralizedTime,
+                  badSinceDate        GeneralizedTime,
+                  crlDetails          Extensions  OPTIONAL
+                   -- extra CRL details (e.g., crl number, reason, location, etc.)
+            }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            RevDetails ::= SEQUENCE {
+                             certDetails         CertTemplate,
+                              -- allows requester to specify as much as they can about
+                              -- the cert. for which revocation is requested
+                              -- (e.g., for cases in which serialNumber is not available)
+                              crlEntryDetails     Extensions       OPTIONAL
+                              -- requested crlEntryExtensions
+                        }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            RevRepContent ::= SEQUENCE {
+                   status       SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+                   -- in same order as was sent in RevReqContent
+                   revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+                   -- IDs for which revocation was requested
+                   -- (same order as status)
+                   crls     [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+                   -- the resulting CRLs (there may be more than one)
+              }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            RevReqContent ::= SEQUENCE OF RevDetails
+            
+ @return a basic ASN.1 object representation. +
+ + return an Attribute object from the given object. + + @param o the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            Attribute ::= SEQUENCE {
+                attrType OBJECT IDENTIFIER,
+                attrValues SET OF AttributeValue
+            }
+            
+
+ +
+            Attributes ::=
+              SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+            
+ @return +
+ + Return the first attribute matching the given OBJECT IDENTIFIER + + + Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be + empty if there are no attributes of the required type present. + + @param oid type of attribute required. + @return a vector of all the attributes found of type oid. + + + Return a new table with the passed in attribute added. + + @param attrType + @param attrValue + @return + + + return an AuthenticatedData object from a tagged object. + + @param obj the tagged object holding the object we want. + @param isExplicit true if the object is meant to be explicitly + tagged false otherwise. + @throws ArgumentException if the object held by the + tagged object cannot be converted. + + + return an AuthenticatedData object from the given object. + + @param obj the object we want converted. + @throws ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+             AuthenticatedData ::= SEQUENCE {
+                   version CMSVersion,
+                   originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+                   recipientInfos RecipientInfos,
+                   macAlgorithm MessageAuthenticationCodeAlgorithm,
+                   digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+                   encapContentInfo EncapsulatedContentInfo,
+                   authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+                   mac MessageAuthenticationCode,
+                   unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+            
+             AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+            
+             UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+            
+             MessageAuthenticationCode ::= OCTET STRING
+             
+
+ + Produce an object suitable for an Asn1OutputStream. +
+             AuthenticatedData ::= SEQUENCE {
+                   version CMSVersion,
+                   originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+                   recipientInfos RecipientInfos,
+                   macAlgorithm MessageAuthenticationCodeAlgorithm,
+                   digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+                   encapContentInfo EncapsulatedContentInfo,
+                   authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+                   mac MessageAuthenticationCode,
+                   unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+            
+             AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+            
+             UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+            
+             MessageAuthenticationCode ::= OCTET STRING
+             
+
+ + return an AuthEnvelopedData object from a tagged object. + + @param obj the tagged object holding the object we want. + @param isExplicit true if the object is meant to be explicitly + tagged false otherwise. + @throws ArgumentException if the object held by the + tagged object cannot be converted. + + + return an AuthEnvelopedData object from the given object. + + @param obj the object we want converted. + @throws ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            AuthEnvelopedData ::= SEQUENCE {
+              version CMSVersion,
+              originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+              recipientInfos RecipientInfos,
+              authEncryptedContentInfo EncryptedContentInfo,
+              authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+              mac MessageAuthenticationCode,
+              unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. + +
+            AuthEnvelopedData ::= SEQUENCE {
+              version CMSVersion,
+              originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+              recipientInfos RecipientInfos,
+              authEncryptedContentInfo EncryptedContentInfo,
+              authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+              mac MessageAuthenticationCode,
+              unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+            
+
+ + The other Revocation Info arc + id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) + dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) } + + + RFC 3274 - CMS Compressed Data. +
+            CompressedData ::= Sequence {
+             version CMSVersion,
+             compressionAlgorithm CompressionAlgorithmIdentifier,
+             encapContentInfo EncapsulatedContentInfo
+            }
+            
+
+ + return a CompressedData object from a tagged object. + + @param ato the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return a CompressedData object from the given object. + + @param _obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + RFC 3274 - CMS Compressed Data. +
+            CompressedData ::= SEQUENCE {
+             version CMSVersion,
+             compressionAlgorithm CompressionAlgorithmIdentifier,
+             encapContentInfo EncapsulatedContentInfo
+            }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            ContentInfo ::= Sequence {
+                     contentType ContentType,
+                     content
+                     [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            ContentInfo ::= SEQUENCE {
+                     contentType ContentType,
+                     content
+                     [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+            
+
+ + return an AuthEnvelopedData object from a tagged object. + + @param obj the tagged object holding the object we want. + @param isExplicit true if the object is meant to be explicitly + tagged false otherwise. + @throws ArgumentException if the object held by the + tagged object cannot be converted. + + + return an AuthEnvelopedData object from the given object. + + @param obj the object we want converted. + @throws ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            MQVuserKeyingMaterial ::= SEQUENCE {
+              ephemeralPublicKey OriginatorPublicKey,
+              addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL  }
+            
+
+ + return an EncryptedContentInfo object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            EncryptedContentInfo ::= Sequence {
+                contentType ContentType,
+                contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+                encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+            }
+            
+
+ +
+            EncryptedContentInfo ::= SEQUENCE {
+                contentType ContentType,
+                contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+                encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+            }
+            
+
+ +
+                  EncryptedData ::= SEQUENCE {
+                                version CMSVersion,
+                                encryptedContentInfo EncryptedContentInfo,
+                                unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+            
+ @return a basic ASN.1 object representation. +
+ + return an EnvelopedData object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return an EnvelopedData object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            EnvelopedData ::= Sequence {
+                version CMSVersion,
+                originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+                recipientInfos RecipientInfos,
+                encryptedContentInfo EncryptedContentInfo,
+                unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+            }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            EnvelopedData ::= SEQUENCE {
+                version CMSVersion,
+                originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+                recipientInfos RecipientInfos,
+                encryptedContentInfo EncryptedContentInfo,
+                unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+            }
+            
+
+ + return a KekIdentifier object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return a KekIdentifier object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            KekIdentifier ::= Sequence {
+                keyIdentifier OCTET STRING,
+                date GeneralizedTime OPTIONAL,
+                other OtherKeyAttribute OPTIONAL
+            }
+            
+
+ + return a KekRecipientInfo object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return a KekRecipientInfo object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            KekRecipientInfo ::= Sequence {
+                version CMSVersion,  -- always set to 4
+                kekID KekIdentifier,
+                keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+                encryptedKey EncryptedKey
+            }
+            
+
+ + return an KeyAgreeRecipientIdentifier object from a tagged object. + + @param obj the tagged object holding the object we want. + @param isExplicit true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return an KeyAgreeRecipientIdentifier object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            KeyAgreeRecipientIdentifier ::= CHOICE {
+                issuerAndSerialNumber IssuerAndSerialNumber,
+                rKeyId [0] IMPLICIT RecipientKeyIdentifier
+            }
+            
+
+ + return a KeyAgreeRecipientInfo object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return a KeyAgreeRecipientInfo object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + * Produce an object suitable for an Asn1OutputStream. + *
+                     * KeyAgreeRecipientInfo ::= Sequence {
+                     *     version CMSVersion,  -- always set to 3
+                     *     originator [0] EXPLICIT OriginatorIdentifierOrKey,
+                     *     ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+                     *     keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+                     *     recipientEncryptedKeys RecipientEncryptedKeys
+                     * }
+            		 *
+            		 * UserKeyingMaterial ::= OCTET STRING
+                     * 
+
+ + return a KeyTransRecipientInfo object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            KeyTransRecipientInfo ::= Sequence {
+                version CMSVersion,  -- always set to 0 or 2
+                rid RecipientIdentifier,
+                keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+                encryptedKey EncryptedKey
+            }
+            
+
+ +
+            MetaData ::= SEQUENCE {
+              hashProtected        BOOLEAN,
+              fileName             UTF8String OPTIONAL,
+              mediaType            IA5String OPTIONAL,
+              otherMetaData        Attributes OPTIONAL
+            }
+            
+ @return +
+ + return an OriginatorIdentifierOrKey object from a tagged object. + + @param o the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return an OriginatorIdentifierOrKey object from the given object. + + @param o the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+             OriginatorIdentifierOrKey ::= CHOICE {
+                 issuerAndSerialNumber IssuerAndSerialNumber,
+                 subjectKeyIdentifier [0] SubjectKeyIdentifier,
+                 originatorKey [1] OriginatorPublicKey
+             }
+            
+             SubjectKeyIdentifier ::= OCTET STRING
+             
+
+ + return an OriginatorInfo object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return an OriginatorInfo object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            OriginatorInfo ::= Sequence {
+                certs [0] IMPLICIT CertificateSet OPTIONAL,
+                crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+            }
+            
+
+ + return an OriginatorPublicKey object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return an OriginatorPublicKey object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            OriginatorPublicKey ::= Sequence {
+                algorithm AlgorithmIdentifier,
+                publicKey BIT STRING
+            }
+            
+
+ + return an OtherKeyAttribute object from the given object. + + @param o the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            OtherKeyAttribute ::= Sequence {
+                keyAttrId OBJECT IDENTIFIER,
+                keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+            }
+            
+
+ + return a OtherRecipientInfo object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return a OtherRecipientInfo object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            OtherRecipientInfo ::= Sequence {
+               oriType OBJECT IDENTIFIER,
+               oriValue ANY DEFINED BY oriType }
+            
+
+ + return a OtherRevocationInfoFormat object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicit true if the object is meant to be explicitly + tagged false otherwise. + @exception IllegalArgumentException if the object held by the + tagged object cannot be converted. + + + return a OtherRevocationInfoFormat object from the given object. + + @param obj the object we want converted. + @exception IllegalArgumentException if the object cannot be converted. + + + Produce an object suitable for an ASN1OutputStream. +
+            OtherRevocationInfoFormat ::= SEQUENCE {
+                 otherRevInfoFormat OBJECT IDENTIFIER,
+                 otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+            
+
+ + return a PasswordRecipientInfo object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return a PasswordRecipientInfo object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            PasswordRecipientInfo ::= Sequence {
+              version CMSVersion,   -- Always set to 0
+              keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+                                        OPTIONAL,
+             keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+             encryptedKey EncryptedKey }
+            
+
+ + return an RecipientEncryptedKey object from a tagged object. + + @param obj the tagged object holding the object we want. + @param isExplicit true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return a RecipientEncryptedKey object from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            RecipientEncryptedKey ::= SEQUENCE {
+                rid KeyAgreeRecipientIdentifier,
+                encryptedKey EncryptedKey
+            }
+            
+
+ + return a RecipientIdentifier object from the given object. + + @param o the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+             RecipientIdentifier ::= CHOICE {
+                 issuerAndSerialNumber IssuerAndSerialNumber,
+                 subjectKeyIdentifier [0] SubjectKeyIdentifier
+             }
+            
+             SubjectKeyIdentifier ::= OCTET STRING
+             
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            RecipientInfo ::= CHOICE {
+                ktri KeyTransRecipientInfo,
+                kari [1] KeyAgreeRecipientInfo,
+                kekri [2] KekRecipientInfo,
+                pwri [3] PasswordRecipientInfo,
+                ori [4] OtherRecipientInfo }
+            
+
+ + return a RecipientKeyIdentifier object from a tagged object. + + @param _ato the tagged object holding the object we want. + @param _explicit true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the object held by the + tagged object cannot be converted. + + + return a RecipientKeyIdentifier object from the given object. + + @param _obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+             RecipientKeyIdentifier ::= Sequence {
+                 subjectKeyIdentifier SubjectKeyIdentifier,
+                 date GeneralizedTime OPTIONAL,
+                 other OtherKeyAttribute OPTIONAL
+             }
+            
+             SubjectKeyIdentifier ::= OCTET STRING
+             
+
+ +
+               ScvpReqRes ::= SEQUENCE {
+               request  [0] EXPLICIT ContentInfo OPTIONAL,
+               response     ContentInfo }
+            
+ @return the ASN.1 primitive representation. +
+ + a signed data object. + + + Produce an object suitable for an Asn1OutputStream. +
+            SignedData ::= Sequence {
+                version CMSVersion,
+                digestAlgorithms DigestAlgorithmIdentifiers,
+                encapContentInfo EncapsulatedContentInfo,
+                certificates [0] IMPLICIT CertificateSet OPTIONAL,
+                crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+                signerInfos SignerInfos
+              }
+            
+
+ +
+            SignedData ::= SEQUENCE {
+                version CMSVersion,
+                digestAlgorithms DigestAlgorithmIdentifiers,
+                encapContentInfo EncapsulatedContentInfo,
+                certificates [0] IMPLICIT CertificateSet OPTIONAL,
+                crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+                signerInfos SignerInfos
+              }
+            
+
+ + return a SignerIdentifier object from the given object. + + @param o the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+             SignerIdentifier ::= CHOICE {
+                 issuerAndSerialNumber IssuerAndSerialNumber,
+                 subjectKeyIdentifier [0] SubjectKeyIdentifier
+             }
+            
+             SubjectKeyIdentifier ::= OCTET STRING
+             
+
+ + Produce an object suitable for an Asn1OutputStream. +
+              SignerInfo ::= Sequence {
+                  version Version,
+                  SignerIdentifier sid,
+                  digestAlgorithm DigestAlgorithmIdentifier,
+                  authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+                  digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+                  encryptedDigest EncryptedDigest,
+                  unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+              }
+            
+              EncryptedDigest ::= OCTET STRING
+            
+              DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+            
+              DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+             
+
+ + creates a time object from a given date - if the date is between 1950 + and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime + is used. + + + Produce an object suitable for an Asn1OutputStream. +
+            Time ::= CHOICE {
+                        utcTime        UTCTime,
+                        generalTime    GeneralizedTime }
+            
+
+ +
+            TimeStampAndCRL ::= SEQUENCE {
+                timeStamp   TimeStampToken,          -- according to RFC 3161
+                crl         CertificateList OPTIONAL -- according to RFC 5280
+             }
+            
+ @return +
+ +
+            TimeStampedData ::= SEQUENCE {
+              version              INTEGER { v1(1) },
+              dataUri              IA5String OPTIONAL,
+              metaData             MetaData OPTIONAL,
+              content              OCTET STRING OPTIONAL,
+              temporalEvidence     Evidence
+            }
+            
+ @return +
+ +
+            TimeStampTokenEvidence ::=
+               SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+            
+ @return +
+ +
+            AttributeTypeAndValue ::= SEQUENCE {
+                      type         OBJECT IDENTIFIER,
+                      value        ANY DEFINED BY type }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertId ::= SEQUENCE {
+                            issuer           GeneralName,
+                            serialNumber     INTEGER }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+            
+ @return a basic ASN.1 object representation. +
+ + Creates a new CertReqMsg. + @param certReq CertRequest + @param popo may be null + @param regInfo may be null + + +
+            CertReqMsg ::= SEQUENCE {
+                               certReq   CertRequest,
+                               pop       ProofOfPossession  OPTIONAL,
+                               -- content depends upon key type
+                               regInfo   SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            CertRequest ::= SEQUENCE {
+                                 certReqId     INTEGER,          -- ID for matching request and reply
+                                 certTemplate  CertTemplate,  -- Selected fields of cert to be issued
+                                 controls      Controls OPTIONAL }   -- Attributes affecting issuance
+            
+ @return a basic ASN.1 object representation. +
+ +
+             CertTemplate ::= SEQUENCE {
+                 version      [0] Version               OPTIONAL,
+                 serialNumber [1] INTEGER               OPTIONAL,
+                 signingAlg   [2] AlgorithmIdentifier   OPTIONAL,
+                 issuer       [3] Name                  OPTIONAL,
+                 validity     [4] OptionalValidity      OPTIONAL,
+                 subject      [5] Name                  OPTIONAL,
+                 publicKey    [6] SubjectPublicKeyInfo  OPTIONAL,
+                 issuerUID    [7] UniqueIdentifier      OPTIONAL,
+                 subjectUID   [8] UniqueIdentifier      OPTIONAL,
+                 extensions   [9] Extensions            OPTIONAL }
+            
+ @return a basic ASN.1 object representation. +
+ + Sets the X.509 version. Note: for X509v3, use 2 here. + + + Sets the issuer unique ID (deprecated in X.509v3) + + + Sets the subject unique ID (deprecated in X.509v3) + + +
+             CertTemplate ::= SEQUENCE {
+                 version      [0] Version               OPTIONAL,
+                 serialNumber [1] INTEGER               OPTIONAL,
+                 signingAlg   [2] AlgorithmIdentifier   OPTIONAL,
+                 issuer       [3] Name                  OPTIONAL,
+                 validity     [4] OptionalValidity      OPTIONAL,
+                 subject      [5] Name                  OPTIONAL,
+                 publicKey    [6] SubjectPublicKeyInfo  OPTIONAL,
+                 issuerUID    [7] UniqueIdentifier      OPTIONAL,
+                 subjectUID   [8] UniqueIdentifier      OPTIONAL,
+                 extensions   [9] Extensions            OPTIONAL }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            Controls  ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+            
+ @return a basic ASN.1 object representation. +
+ +
+            EncKeyWithID ::= SEQUENCE {
+                 privateKey           PrivateKeyInfo,
+                 identifier CHOICE {
+                    string               UTF8String,
+                    generalName          GeneralName
+                } OPTIONAL
+            }
+            
+ @return +
+ +
+               EncryptedKey ::= CHOICE {
+                   encryptedValue        EncryptedValue, -- deprecated
+                   envelopedData     [0] EnvelopedData }
+                   -- The encrypted private key MUST be placed in the envelopedData
+                   -- encryptedContentInfo encryptedContent OCTET STRING.
+            
+
+ +
+            EncryptedValue ::= SEQUENCE {
+                                intendedAlg   [0] AlgorithmIdentifier  OPTIONAL,
+                                -- the intended algorithm for which the value will be used
+                                symmAlg       [1] AlgorithmIdentifier  OPTIONAL,
+                                -- the symmetric algorithm used to encrypt the value
+                                encSymmKey    [2] BIT STRING           OPTIONAL,
+                                -- the (encrypted) symmetric key used to encrypt the value
+                                keyAlg        [3] AlgorithmIdentifier  OPTIONAL,
+                                -- algorithm used to encrypt the symmetric key
+                                valueHint     [4] OCTET STRING         OPTIONAL,
+                                -- a brief description or identifier of the encValue content
+                                -- (may be meaningful only to the sending entity, and used only
+                                -- if EncryptedValue might be re-examined by the sending entity
+                                -- in the future)
+                                encValue       BIT STRING }
+                                -- the encrypted value itself
+            
+ @return a basic ASN.1 object representation. +
+ +
+            OptionalValidity ::= SEQUENCE {
+                                   notBefore  [0] Time OPTIONAL,
+                                   notAfter   [1] Time OPTIONAL } --at least one MUST be present
+            
+ @return a basic ASN.1 object representation. +
+ +
+             PkiArchiveOptions ::= CHOICE {
+                 encryptedPrivKey     [0] EncryptedKey,
+                 -- the actual value of the private key
+                 keyGenParameters     [1] KeyGenParameters,
+                 -- parameters which allow the private key to be re-generated
+                 archiveRemGenPrivKey [2] BOOLEAN }
+                 -- set to TRUE if sender wishes receiver to archive the private
+                 -- key of a key pair that the receiver generates in response to
+                 -- this request; set to FALSE if no archival is desired.
+            
+
+ +
+            PkiPublicationInfo ::= SEQUENCE {
+                             action     INTEGER {
+                                            dontPublish (0),
+                                            pleasePublish (1) },
+                             pubInfos  SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+            -- pubInfos MUST NOT be present if action is "dontPublish"
+            -- (if action is "pleasePublish" and pubInfos is omitted,
+            -- "dontCare" is assumed)
+            
+ @return a basic ASN.1 object representation. +
+ + Password-based MAC value for use with POPOSigningKeyInput. + + + Creates a new PKMACValue. + @param params parameters for password-based MAC + @param value MAC of the DER-encoded SubjectPublicKeyInfo + + + Creates a new PKMACValue. + @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter + @param value MAC of the DER-encoded SubjectPublicKeyInfo + + +
+            PKMACValue ::= SEQUENCE {
+                 algId  AlgorithmIdentifier,
+                 -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+                 -- parameter value is PBMParameter
+                 value  BIT STRING }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            PopoPrivKey ::= CHOICE {
+                   thisMessage       [0] BIT STRING,         -- Deprecated
+                    -- possession is proven in this message (which contains the private
+                    -- key itself (encrypted for the CA))
+                   subsequentMessage [1] SubsequentMessage,
+                    -- possession will be proven in a subsequent message
+                   dhMAC             [2] BIT STRING,         -- Deprecated
+                   agreeMAC          [3] PKMACValue,
+                   encryptedKey      [4] EnvelopedData }
+            
+
+ + Creates a new Proof of Possession object for a signing key. + @param poposkIn the PopoSigningKeyInput structure, or null if the + CertTemplate includes both subject and publicKey values. + @param aid the AlgorithmIdentifier used to sign the proof of possession. + @param signature a signature over the DER-encoded value of poposkIn, + or the DER-encoded value of certReq if poposkIn is null. + + +
+            PopoSigningKey ::= SEQUENCE {
+                                 poposkInput           [0] PopoSigningKeyInput OPTIONAL,
+                                 algorithmIdentifier   AlgorithmIdentifier,
+                                 signature             BIT STRING }
+             -- The signature (using "algorithmIdentifier") is on the
+             -- DER-encoded value of poposkInput.  NOTE: If the CertReqMsg
+             -- certReq CertTemplate contains the subject and publicKey values,
+             -- then poposkInput MUST be omitted and the signature MUST be
+             -- computed on the DER-encoded value of CertReqMsg certReq.  If
+             -- the CertReqMsg certReq CertTemplate does not contain the public
+             -- key and subject values, then poposkInput MUST be present and
+             -- MUST be signed.  This strategy ensures that the public key is
+             -- not present in both the poposkInput and CertReqMsg certReq
+             -- CertTemplate fields.
+            
+ @return a basic ASN.1 object representation. +
+ + Creates a new PopoSigningKeyInput with sender name as authInfo. + + + Creates a new PopoSigningKeyInput using password-based MAC. + + + Returns the sender field, or null if authInfo is publicKeyMac + + + Returns the publicKeyMac field, or null if authInfo is sender + + +
+            PopoSigningKeyInput ::= SEQUENCE {
+                   authInfo             CHOICE {
+                                            sender              [0] GeneralName,
+                                            -- used only if an authenticated identity has been
+                                            -- established for the sender (e.g., a DN from a
+                                            -- previously-issued and currently-valid certificate
+                                            publicKeyMac        PKMacValue },
+                                            -- used if no authenticated GeneralName currently exists for
+                                            -- the sender; publicKeyMac contains a password-based MAC
+                                            -- on the DER-encoded value of publicKey
+                   publicKey           SubjectPublicKeyInfo }  -- from CertTemplate
+            
+ @return a basic ASN.1 object representation. +
+ + Creates a ProofOfPossession with type raVerified. + + + Creates a ProofOfPossession for a signing key. + + + Creates a ProofOfPossession for key encipherment or agreement. + @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT + + +
+            ProofOfPossession ::= CHOICE {
+                                      raVerified        [0] NULL,
+                                      -- used if the RA has already verified that the requester is in
+                                      -- possession of the private key
+                                      signature         [1] PopoSigningKey,
+                                      keyEncipherment   [2] PopoPrivKey,
+                                      keyAgreement      [3] PopoPrivKey }
+            
+ @return a basic ASN.1 object representation. +
+ +
+            SinglePubInfo ::= SEQUENCE {
+                   pubMethod    INTEGER {
+                      dontCare    (0),
+                      x500        (1),
+                      web         (2),
+                      ldap        (3) },
+                  pubLocation  GeneralName OPTIONAL }
+            
+ @return a basic ASN.1 object representation. +
+ + + Table of the available named parameters for GOST 3410-2001 / 2012. + + + + return the ECDomainParameters object for the given OID, null if it + isn't present. + + @param oid an object identifier representing a named parameters, if present. + + + returns an enumeration containing the name strings for curves + contained in this structure. + + + return the named curve name represented by the given object identifier. + + +
+             Gost28147-89-Parameters ::=
+                           SEQUENCE {
+                                   iv                   Gost28147-89-IV,
+                                   encryptionParamSet   OBJECT IDENTIFIER
+                            }
+            
+               Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+             
+
+ + table of the available named parameters for GOST 3410-94. + + + return the GOST3410ParamSetParameters object for the given OID, null if it + isn't present. + + @param oid an object identifier representing a named parameters, if present. + + + returns an enumeration containing the name strings for parameters + contained in this structure. + + + Base class for an application specific object + + + Return the enclosed object assuming explicit tagging. + + @return the resulting object + @throws IOException if reconstruction fails. + + + Return the enclosed object assuming implicit tagging. + + @param derTagNo the type tag that should be applied to the object's contents. + @return the resulting object + @throws IOException if reconstruction fails. + + + return a Bit string from the passed in object + + @exception ArgumentException if the object cannot be converted. + + + return a Bit string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + @param data the octets making up the bit string. + @param padBits the number of extra bits at the end of the string. + + + Return the octets contained in this BIT STRING, checking that this BIT STRING really + does represent an octet aligned string. Only use this method when the standard you are + following dictates that the BIT STRING will be octet aligned. + + @return a copy of the octet aligned data. + + + @return the value of the bit string as an int (truncating if necessary) + + + Der BMPString object. + + + return a BMP string from the given object. + + @param obj the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + return a BMP string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + basic constructor - byte encoded string. + + + basic constructor + + + return a bool from the passed in object. + + @exception ArgumentException if the object cannot be converted. + + + return a DerBoolean from the passed in bool. + + + return a Boolean from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + return an integer from the passed in object + + @exception ArgumentException if the object cannot be converted. + + + return an Enumerated from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + Class representing the DER-type External + + + Creates a new instance of DerExternal + See X.690 for more informations about the meaning of these parameters + @param directReference The direct reference or null if not set. + @param indirectReference The indirect reference or null if not set. + @param dataValueDescriptor The data value descriptor or null if not set. + @param externalData The external data in its encoded form. + + + Creates a new instance of DerExternal. + See X.690 for more informations about the meaning of these parameters + @param directReference The direct reference or null if not set. + @param indirectReference The indirect reference or null if not set. + @param dataValueDescriptor The data value descriptor or null if not set. + @param encoding The encoding to be used for the external data + @param externalData The external data + + + The encoding of the content. Valid values are +
    +
  • 0 single-ASN1-type
  • +
  • 1 OCTET STRING
  • +
  • 2 BIT STRING
  • +
+
+ + Generalized time object. + + + return a generalized time from the passed in object + + @exception ArgumentException if the object cannot be converted. + + + return a Generalized Time object from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z + for local time, or Z+-HHMM on the end, for difference between local + time and UTC time. The fractional second amount f must consist of at + least one number with trailing zeroes removed. + + @param time the time string. + @exception ArgumentException if string is an illegal format. + + + base constructor from a local time object + + + Return the time. + @return The time string as it appeared in the encoded object. + + + return the time - always in the form of + YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm). +

+ Normally in a certificate we would expect "Z" rather than "GMT", + however adding the "GMT" means we can just use: +

+                dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+            
+ To read in the time and Get a date which is compatible with our local + time zone.

+
+ + return a Graphic String from the passed in object + + @param obj a DerGraphicString or an object that can be converted into one. + @exception IllegalArgumentException if the object cannot be converted. + @return a DerGraphicString instance, or null. + + + return a Graphic String from a tagged object. + + @param obj the tagged object holding the object we want + @param explicit true if the object is meant to be explicitly + tagged false otherwise. + @exception IllegalArgumentException if the tagged object cannot + be converted. + @return a DerGraphicString instance, or null. + + + basic constructor - with bytes. + @param string the byte encoding of the characters making up the string. + + + Der IA5String object - this is an ascii string. + + + return a IA5 string from the passed in object + + @exception ArgumentException if the object cannot be converted. + + + return an IA5 string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + basic constructor - with bytes. + + + basic constructor - without validation. + + + Constructor with optional validation. + + @param string the base string to wrap. + @param validate whether or not to check the string. + @throws ArgumentException if validate is true and the string + contains characters that should not be in an IA5String. + + + return true if the passed in String can be represented without + loss as an IA5String, false otherwise. + + @return true if in printable set, false otherwise. + + + return an integer from the passed in object + + @exception ArgumentException if the object cannot be converted. + + + return an Integer from a tagged object. + + @param obj the tagged object holding the object we want + @param isExplicit true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + in some cases positive values Get crammed into a space, + that's not quite big enough... + + + Apply the correct validation for an INTEGER primitive following the BER rules. + + @param bytes The raw encoding of the integer. + @return true if the (in)put fails this validation. + + + A Null object. + + + Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }. + + + return a Numeric string from the passed in object + + @exception ArgumentException if the object cannot be converted. + + + return an Numeric string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + basic constructor - with bytes. + + + basic constructor - without validation.. + + + Constructor with optional validation. + + @param string the base string to wrap. + @param validate whether or not to check the string. + @throws ArgumentException if validate is true and the string + contains characters that should not be in a NumericString. + + + Return true if the string can be represented as a NumericString ('0'..'9', ' ') + + @param str string to validate. + @return true if numeric, fale otherwise. + + + return an Oid from the passed in object + + @exception ArgumentException if the object cannot be converted. + + + return an object Identifier from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + Return true if this oid is an extension of the passed in branch, stem. + @param stem the arc or branch that is a possible parent. + @return true if the branch is on the passed in stem, false otherwise. + + + The octets making up the octet string. + + + Der PrintableString object. + + + return a printable string from the passed in object. + + @exception ArgumentException if the object cannot be converted. + + + return a Printable string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + basic constructor - byte encoded string. + + + basic constructor - this does not validate the string + + + Constructor with optional validation. + + @param string the base string to wrap. + @param validate whether or not to check the string. + @throws ArgumentException if validate is true and the string + contains characters that should not be in a PrintableString. + + + return true if the passed in String can be represented without + loss as a PrintableString, false otherwise. + + @return true if in printable set, false otherwise. + + + create an empty sequence + + + create a sequence containing one object + + + create a sequence containing a vector of objects. + + + A Der encoded set object + + + create an empty set + + + @param obj - a single object that makes up the set. + + + @param v - a vector of objects making up the set. + + + Der T61String (also the teletex string) - 8-bit characters + + + return a T61 string from the passed in object. + + @exception ArgumentException if the object cannot be converted. + + + return an T61 string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + basic constructor - with bytes. + + + basic constructor - with string. + + + DER TaggedObject - in ASN.1 notation this is any object preceded by + a [n] where n is some number - these are assumed to follow the construction + rules (as with sequences). + + + @param tagNo the tag number for this object. + @param obj the tagged object. + + + @param explicitly true if an explicitly tagged object. + @param tagNo the tag number for this object. + @param obj the tagged object. + + + create an implicitly tagged object that contains a zero + length sequence. + + + Der UniversalString object. + + + return a Universal string from the passed in object. + + @exception ArgumentException if the object cannot be converted. + + + return a Universal string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + basic constructor - byte encoded string. + + + UTC time object. + + + return an UTC Time from the passed in object. + + @exception ArgumentException if the object cannot be converted. + + + return an UTC Time from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were + never encoded. When you're creating one of these objects from scratch, that's + what you want to use, otherwise we'll try to deal with whatever Gets read from + the input stream... (this is why the input format is different from the GetTime() + method output). +

+ @param time the time string.

+
+ + base constructor from a DateTime object + + + return the time as a date based on whatever a 2 digit year will return. For + standardised processing use ToAdjustedDateTime(). + + @return the resulting date + @exception ParseException if the date string cannot be parsed. + + + return the time as an adjusted date + in the range of 1950 - 2049. + + @return a date in the range of 1950 to 2049. + @exception ParseException if the date string cannot be parsed. + + + return the time - always in the form of + YYMMDDhhmmssGMT(+hh:mm|-hh:mm). +

+ Normally in a certificate we would expect "Z" rather than "GMT", + however adding the "GMT" means we can just use: +

+                dateF = new SimpleDateFormat("yyMMddHHmmssz");
+            
+ To read in the time and Get a date which is compatible with our local + time zone.

+

+ Note: In some cases, due to the local date processing, this + may lead to unexpected results. If you want to stick the normal + convention of 1950 to 2049 use the GetAdjustedTime() method.

+
+ + + Return a time string as an adjusted date with a 4 digit year. + This goes in the range of 1950 - 2049. + + + + Der UTF8String object. + + + return an UTF8 string from the passed in object. + + @exception ArgumentException if the object cannot be converted. + + + return an UTF8 string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + basic constructor - byte encoded string. + + + basic constructor + + + return a Videotex String from the passed in object + + @param obj a DERVideotexString or an object that can be converted into one. + @exception IllegalArgumentException if the object cannot be converted. + @return a DERVideotexString instance, or null. + + + return a Videotex String from a tagged object. + + @param obj the tagged object holding the object we want + @param explicit true if the object is meant to be explicitly + tagged false otherwise. + @exception IllegalArgumentException if the tagged object cannot + be converted. + @return a DERVideotexString instance, or null. + + + basic constructor - with bytes. + @param string the byte encoding of the characters making up the string. + + + Der VisibleString object. + + + return a Visible string from the passed in object. + + @exception ArgumentException if the object cannot be converted. + + + return a Visible string from a tagged object. + + @param obj the tagged object holding the object we want + @param explicitly true if the object is meant to be explicitly + tagged false otherwise. + @exception ArgumentException if the tagged object cannot + be converted. + + + basic constructor - byte encoded string. + + + basic constructor + + + Edwards Elliptic Curve Object Identifiers (RFC 8410) + + + + RFC 3126: 4.3.1 Certificate Values Attribute Definition + + CertificateValues ::= SEQUENCE OF Certificate + + + + +
+            CommitmentTypeIndication ::= SEQUENCE {
+                 commitmentTypeId   CommitmentTypeIdentifier,
+                 commitmentTypeQualifier   SEQUENCE SIZE (1..MAX) OF
+                         CommitmentTypeQualifier OPTIONAL }
+            
+
+ + Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126). + +
+               CommitmentTypeQualifier ::= SEQUENCE {
+                   commitmentTypeIdentifier  CommitmentTypeIdentifier,
+                   qualifier          ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+             
+
+ + Creates a new CommitmentTypeQualifier instance. + + @param commitmentTypeIdentifier a CommitmentTypeIdentifier value + + + Creates a new CommitmentTypeQualifier instance. + + @param commitmentTypeIdentifier a CommitmentTypeIdentifier value + @param qualifier the qualifier, defined by the above field. + + + Creates a new CommitmentTypeQualifier instance. + + @param as CommitmentTypeQualifier structure + encoded as an Asn1Sequence. + + + Returns a DER-encodable representation of this instance. + + @return a Asn1Object value + + + + RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition + + CompleteCertificateRefs ::= SEQUENCE OF OtherCertID + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + CrlIdentifier ::= SEQUENCE + { + crlissuer Name, + crlIssuedTime UTCTime, + crlNumber INTEGER OPTIONAL + } + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + CRLListID ::= SEQUENCE + { + crls SEQUENCE OF CrlValidatedID + } + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + CrlOcspRef ::= SEQUENCE { + crlids [0] CRLListID OPTIONAL, + ocspids [1] OcspListID OPTIONAL, + otherRev [2] OtherRevRefs OPTIONAL + } + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + CrlValidatedID ::= SEQUENCE { + crlHash OtherHash, + crlIdentifier CrlIdentifier OPTIONAL} + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + OcspIdentifier ::= SEQUENCE { + ocspResponderID ResponderID, + -- As in OCSP response data + producedAt GeneralizedTime + -- As in OCSP response data + } + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + OcspListID ::= SEQUENCE { + ocspResponses SEQUENCE OF OcspResponsesID + } + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + OcspResponsesID ::= SEQUENCE { + ocspIdentifier OcspIdentifier, + ocspRepHash OtherHash OPTIONAL + } + + + + + + + OtherCertID ::= SEQUENCE { + otherCertHash OtherHash, + issuerSerial IssuerSerial OPTIONAL + } + + + + + + + OtherHash ::= CHOICE { + sha1Hash OtherHashValue, -- This contains a SHA-1 hash + otherHash OtherHashAlgAndValue + } + + OtherHashValue ::= OCTET STRING + + + + + + Summary description for OtherHashAlgAndValue. + + + + OtherHashAlgAndValue ::= SEQUENCE { + hashAlgorithm AlgorithmIdentifier, + hashValue OtherHashValue + } + + OtherHashValue ::= OCTET STRING + + + + + + RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + + OtherRevRefs ::= SEQUENCE + { + otherRevRefType OtherRevRefType, + otherRevRefs ANY DEFINED BY otherRevRefType + } + + OtherRevRefType ::= OBJECT IDENTIFIER + + + + + + RFC 3126: 4.3.2 Revocation Values Attribute Definition + + OtherRevVals ::= SEQUENCE + { + otherRevValType OtherRevValType, + otherRevVals ANY DEFINED BY otherRevValType + } + + OtherRevValType ::= OBJECT IDENTIFIER + + + + + + + OtherSigningCertificate ::= SEQUENCE { + certs SEQUENCE OF OtherCertID, + policies SEQUENCE OF PolicyInformation OPTIONAL + } + + + + + + RFC 5126: 6.3.4. revocation-values Attribute Definition + + RevocationValues ::= SEQUENCE { + crlVals [0] SEQUENCE OF CertificateList OPTIONAL, + ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL, + otherRevVals [2] OtherRevVals OPTIONAL + } + + + + + + + SignaturePolicyId ::= SEQUENCE { + sigPolicyIdentifier SigPolicyId, + sigPolicyHash SigPolicyHash, + sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL + } + + SigPolicyId ::= OBJECT IDENTIFIER + + SigPolicyHash ::= OtherHashAlgAndValue + + + + + + + SignaturePolicyIdentifier ::= CHOICE { + SignaturePolicyId SignaturePolicyId, + SignaturePolicyImplied SignaturePolicyImplied + } + + SignaturePolicyImplied ::= NULL + + + + + +
+              SignerAttribute ::= SEQUENCE OF CHOICE {
+                  claimedAttributes   [0] ClaimedAttributes,
+                  certifiedAttributes [1] CertifiedAttributes }
+            
+              ClaimedAttributes ::= SEQUENCE OF Attribute
+              CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+             
+
+ + Signer-Location attribute (RFC3126). + +
+               SignerLocation ::= SEQUENCE {
+                   countryName        [0] DirectoryString OPTIONAL,
+                   localityName       [1] DirectoryString OPTIONAL,
+                   postalAddress      [2] PostalAddress OPTIONAL }
+            
+               PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+             
+
+ +
+               SignerLocation ::= SEQUENCE {
+                   countryName        [0] DirectoryString OPTIONAL,
+                   localityName       [1] DirectoryString OPTIONAL,
+                   postalAddress      [2] PostalAddress OPTIONAL }
+            
+               PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+            
+               DirectoryString ::= CHOICE {
+                     teletexString           TeletexString (SIZE (1..MAX)),
+                     printableString         PrintableString (SIZE (1..MAX)),
+                     universalString         UniversalString (SIZE (1..MAX)),
+                     utf8String              UTF8String (SIZE (1.. MAX)),
+                     bmpString               BMPString (SIZE (1..MAX)) }
+             
+
+ + + + SigPolicyQualifierInfo ::= SEQUENCE { + sigPolicyQualifierId SigPolicyQualifierId, + sigQualifier ANY DEFINED BY sigPolicyQualifierId + } + + SigPolicyQualifierId ::= OBJECT IDENTIFIER + + + + + constructor + + +
+            ContentHints ::= SEQUENCE {
+              contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+              contentType ContentType }
+            
+
+ + Create from OCTET STRING whose octets represent the identifier. + + + Create from byte array representing the identifier. + + + The definition of ContentIdentifier is +
+            ContentIdentifier ::=  OCTET STRING
+            
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1) + member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) + smime(16) id-aa(2) 7 } +
+ + constructor + + +
+            EssCertID ::= SEQUENCE {
+                certHash Hash,
+                issuerSerial IssuerSerial OPTIONAL }
+            
+
+ +
+             EssCertIDv2 ::=  SEQUENCE {
+                 hashAlgorithm     AlgorithmIdentifier
+                          DEFAULT {algorithm id-sha256},
+                 certHash          Hash,
+                 issuerSerial      IssuerSerial OPTIONAL
+             }
+            
+             Hash ::= OCTET STRING
+            
+             IssuerSerial ::= SEQUENCE {
+                 issuer         GeneralNames,
+                 serialNumber   CertificateSerialNumber
+             }
+             
+
+ + constructor + + +
+             OtherCertID ::= SEQUENCE {
+                 otherCertHash    OtherHash,
+                 issuerSerial     IssuerSerial OPTIONAL }
+            
+             OtherHash ::= CHOICE {
+                 sha1Hash     OCTET STRING,
+                 otherHash    OtherHashAlgAndValue }
+            
+             OtherHashAlgAndValue ::= SEQUENCE {
+                 hashAlgorithm    AlgorithmIdentifier,
+                 hashValue        OCTET STRING }
+            
+             
+
+ + constructors + + + The definition of OtherSigningCertificate is +
+            OtherSigningCertificate ::=  SEQUENCE {
+                 certs        SEQUENCE OF OtherCertID,
+                 policies     SEQUENCE OF PolicyInformation OPTIONAL
+            }
+            
+ id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1) + member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) + smime(16) id-aa(2) 19 } +
+ + constructors + + + The definition of SigningCertificate is +
+            SigningCertificate ::=  SEQUENCE {
+                 certs        SEQUENCE OF EssCertID,
+                 policies     SEQUENCE OF PolicyInformation OPTIONAL
+            }
+            
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1) + member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) + smime(16) id-aa(2) 12 } +
+ + The definition of SigningCertificateV2 is +
+            SigningCertificateV2 ::=  SEQUENCE {
+                 certs        SEQUENCE OF EssCertIDv2,
+                 policies     SEQUENCE OF PolicyInformation OPTIONAL
+            }
+            
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1) + member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) + smime(16) id-aa(2) 47 } +
+ + return the X9ECParameters object for the named curve represented by + the passed in object identifier. Null if the curve isn't present. + + @param oid an object identifier representing a named curve, if present. + + + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + + + return the named curve name represented by the given object identifier. + + + returns an enumeration containing the name strings for curves + contained in this structure. + + + 1.3.6.1.4.1.11591.15 - ellipticCurve + + + Marker interface for CHOICE objects - if you implement this in a roll-your-own + object, any attempt to tag the object implicitly will convert the tag to an + explicit one as the encoding rules require. +

+ If you use this interface your class should also implement the getInstance + pattern which takes a tag object and the tagging mode used. +

+
+ + basic interface for Der string objects. + + + The CscaMasterList object. This object can be wrapped in a + CMSSignedData to be published in LDAP. + +
+             CscaMasterList ::= SEQUENCE {
+               version                CscaMasterListVersion,
+               certList               SET OF Certificate }
+               
+             CscaMasterListVersion :: INTEGER {v0(0)}
+             
+
+ + The DataGroupHash object. +
+             DataGroupHash  ::=  SEQUENCE {
+                  dataGroupNumber         DataGroupNumber,
+                  dataGroupHashValue     OCTET STRING }
+            
+             DataGroupNumber ::= INTEGER {
+                     dataGroup1    (1),
+                     dataGroup1    (2),
+                     dataGroup1    (3),
+                     dataGroup1    (4),
+                     dataGroup1    (5),
+                     dataGroup1    (6),
+                     dataGroup1    (7),
+                     dataGroup1    (8),
+                     dataGroup1    (9),
+                     dataGroup1    (10),
+                     dataGroup1    (11),
+                     dataGroup1    (12),
+                     dataGroup1    (13),
+                     dataGroup1    (14),
+                     dataGroup1    (15),
+                     dataGroup1    (16) }
+            
+             
+
+ + The LDSSecurityObject object (V1.8). +
+             LDSSecurityObject ::= SEQUENCE {
+               version                LDSSecurityObjectVersion,
+               hashAlgorithm          DigestAlgorithmIdentifier,
+               dataGroupHashValues    SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+               ldsVersionInfo         LDSVersionInfo OPTIONAL
+                 -- if present, version MUST be v1 }
+            
+             DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+            
+             LDSSecurityObjectVersion :: INTEGER {V0(0)}
+             
+
+ +
+            LDSVersionInfo ::= SEQUENCE {
+               ldsVersion PRINTABLE STRING
+               unicodeVersion PRINTABLE STRING
+             }
+            
+ @return +
+ + The id-isismtt-cp-accredited OID indicates that the certificate is a + qualified certificate according to Directive 1999/93/EC of the European + Parliament and of the Council of 13 December 1999 on a Community + Framework for Electronic Signatures, which additionally conforms the + special requirements of the SigG and has been issued by an accredited CA. + + + Certificate extensionDate of certificate generation + +
+            		DateOfCertGenSyntax ::= GeneralizedTime
+             
+
+ + Attribute to indicate that the certificate holder may sign in the name of + a third person. May also be used as extension in a certificate. + + + Attribute to indicate admissions to certain professions. May be used as + attribute in attribute certificate or as extension in a certificate + + + Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST + be used in new certificates in place of the extension/attribute + MonetaryLimit since January 1, 2004. For the sake of backward + compatibility with certificates already in use, SigG conforming + components MUST support MonetaryLimit (as well as QcEuLimitValue). + + + A declaration of majority. May be used as attribute in attribute + certificate or as extension in a certificate + + + + Serial number of the smart card containing the corresponding private key + +
+            		ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+             
+
+ + + Reference for a file of a smartcard that stores the public key of this + certificate and that is used as �security anchor�. + +
+            		PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+             
+
+ + Some other restriction regarding the usage of this certificate. May be + used as attribute in attribute certificate or as extension in a + certificate. + +
+            		RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+             
+ + @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction +
+ + + (Single)Request extension: Clients may include this extension in a + (single) Request to request the responder to send the certificate in the + response message along with the status information. Besides the LDAP + service, this extension provides another mechanism for the distribution + of certificates, which MAY optionally be provided by certificate + repositories. + +
+            		RetrieveIfAllowed ::= BOOLEAN
+             
+
+ + SingleOCSPResponse extension: The certificate requested by the client by + inserting the RetrieveIfAllowed extension in the request, will be + returned in this extension. + + @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate + + + Base ObjectIdentifier for naming authorities + + + SingleOCSPResponse extension: Date, when certificate has been published + in the directory and status information has become available. Currently, + accrediting authorities enforce that SigG-conforming OCSP servers include + this extension in the responses. + +
+            		CertInDirSince ::= GeneralizedTime
+             
+
+ + Hash of a certificate in OCSP. + + @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash + + +
+            		NameAtBirth ::= DirectoryString(SIZE(1..64)
+             
+ + Used in + {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes} +
+ + Some other information of non-restrictive nature regarding the usage of + this certificate. May be used as attribute in atribute certificate or as + extension in a certificate. + +
+                          AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+            
+ + @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax +
+ + Indicates that an attribute certificate exists, which limits the + usability of this public key certificate. Whenever verifying a signature + with the help of this certificate, the content of the corresponding + attribute certificate should be concerned. This extension MUST be + included in a PKC, if a corresponding attribute certificate (having the + PKC as base certificate) contains some attribute that restricts the + usability of the PKC too. Attribute certificates with restricting content + MUST always be included in the signed document. + +
+            		LiabilityLimitationFlagSyntax ::= BOOLEAN
+             
+
+ + ISIS-MTT PROFILE: The responder may include this extension in a response to + send the hash of the requested certificate to the responder. This hash is + cryptographically bound to the certificate and serves as evidence that the + certificate is known to the responder (i.e. it has been issued and is present + in the directory). Hence, this extension is a means to provide a positive + statement of availability as described in T8.[8]. As explained in T13.[1], + clients may rely on this information to be able to validate signatures after + the expiry of the corresponding certificate. Hence, clients MUST support this + extension. If a positive statement of availability is to be delivered, this + extension syntax and OID MUST be used. +

+

+

+                CertHash ::= SEQUENCE {
+                  hashAlgorithm AlgorithmIdentifier,
+                  certificateHash OCTET STRING
+                }
+            
+
+ + Constructor from Asn1Sequence. +

+ The sequence is of type CertHash: +

+

+                 CertHash ::= SEQUENCE {
+                   hashAlgorithm AlgorithmIdentifier,
+                   certificateHash OCTET STRING
+                 }
+             
+ + @param seq The ASN.1 sequence. +
+ + Constructor from a given details. + + @param hashAlgorithm The hash algorithm identifier. + @param certificateHash The hash of the whole DER encoding of the certificate. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                 CertHash ::= SEQUENCE {
+                   hashAlgorithm AlgorithmIdentifier,
+                   certificateHash OCTET STRING
+                 }
+             
+ + @return an Asn1Object +
+ + ISIS-MTT-Optional: The certificate requested by the client by inserting the + RetrieveIfAllowed extension in the request, will be returned in this + extension. +

+ ISIS-MTT-SigG: The signature act allows publishing certificates only then, + when the certificate owner gives his isExplicit permission. Accordingly, there + may be �nondownloadable� certificates, about which the responder must provide + status information, but MUST NOT include them in the response. Clients may + get therefore the following three kind of answers on a single request + including the RetrieveIfAllowed extension: +

    +
  • a) the responder supports the extension and is allowed to publish the + certificate: RequestedCertificate returned including the requested + certificate
  • +
  • b) the responder supports the extension but is NOT allowed to publish + the certificate: RequestedCertificate returned including an empty OCTET + STRING
  • +
  • c) the responder does not support the extension: RequestedCertificate is + not included in the response
  • +
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If + any of the OCTET STRING options is used, it MUST contain the DER encoding of + the requested certificate. +

+

+                       RequestedCertificate ::= CHOICE {
+                         Certificate Certificate,
+                         publicKeyCertificate [0] EXPLICIT OCTET STRING,
+                         attributeCertificate [1] EXPLICIT OCTET STRING
+                       }
+            
+
+ + Constructor from a given details. +

+ Only one parameter can be given. All other must be null. + + @param certificate Given as Certificate + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                        RequestedCertificate ::= CHOICE {
+                          Certificate Certificate,
+                          publicKeyCertificate [0] EXPLICIT OCTET STRING,
+                          attributeCertificate [1] EXPLICIT OCTET STRING
+                        }
+             
+ + @return an Asn1Object +
+ + Some other information of non-restrictive nature regarding the usage of this + certificate. + +
+               AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+            
+
+ + Constructor from a given details. + + @param information The describtion of the information. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+               AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+             
+ + @return an Asn1Object +
+ + An Admissions structure. +

+

+                        Admissions ::= SEQUENCE
+                        {
+                          admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+                          namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+                          professionInfos SEQUENCE OF ProfessionInfo
+                        }
+             

+

+ + @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax + @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo + @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority +
+ + Constructor from Asn1Sequence. +

+ The sequence is of type ProcurationSyntax: +

+

+                        Admissions ::= SEQUENCE
+                        {
+                          admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+                          namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+                          professionInfos SEQUENCE OF ProfessionInfo
+                        }
+             
+ + @param seq The ASN.1 sequence. +
+ + Constructor from a given details. +

+ Parameter professionInfos is mandatory. + + @param admissionAuthority The admission authority. + @param namingAuthority The naming authority. + @param professionInfos The profession infos. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                   Admissions ::= SEQUENCE
+                   {
+                     admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+                     namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+                     professionInfos SEQUENCE OF ProfessionInfo
+                   }
+             

+

+ + @return an Asn1Object +
+ + Attribute to indicate admissions to certain professions. +

+

+                 AdmissionSyntax ::= SEQUENCE
+                 {
+                   admissionAuthority GeneralName OPTIONAL,
+                   contentsOfAdmissions SEQUENCE OF Admissions
+                 }
+             

+ Admissions ::= SEQUENCE + { + admissionAuthority [0] EXPLICIT GeneralName OPTIONAL + namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL + professionInfos SEQUENCE OF ProfessionInfo + } +

+ NamingAuthority ::= SEQUENCE + { + namingAuthorityId OBJECT IDENTIFIER OPTIONAL, + namingAuthorityUrl IA5String OPTIONAL, + namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL + } +

+ ProfessionInfo ::= SEQUENCE + { + namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL, + professionItems SEQUENCE OF DirectoryString (SIZE(1..128)), + professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + registrationNumber PrintableString(SIZE(1..128)) OPTIONAL, + addProfessionInfo OCTET STRING OPTIONAL + } +

+

+

+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax + supports the following concepts and requirements: +

    +
  • External institutions (e.g. professional associations, chambers, unions, + administrative bodies, companies, etc.), which are responsible for granting + and verifying professional admissions, are indicated by means of the data + field admissionAuthority. An admission authority is indicated by a + GeneralName object. Here an X.501 directory name (distinguished name) can be + indicated in the field directoryName, a URL address can be indicated in the + field uniformResourceIdentifier, and an object identifier can be indicated in + the field registeredId.
  • +
  • The names of authorities which are responsible for the administration of + title registers are indicated in the data field namingAuthority. The name of + the authority can be identified by an object identifier in the field + namingAuthorityId, by means of a text string in the field + namingAuthorityText, by means of a URL address in the field + namingAuthorityUrl, or by a combination of them. For example, the text string + can contain the name of the authority, the country and the name of the title + register. The URL-option refers to a web page which contains lists with + officially registered professions (text and possibly OID) as well as + further information on these professions. Object identifiers for the + component namingAuthorityId are grouped under the OID-branch + id-isis-at-namingAuthorities and must be applied for.
  • +
  • See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0 + for an application form and http://www.teletrust.de/links.asp?id=30220,11 + for an overview of registered naming authorities.
  • +
  • By means of the data type ProfessionInfo certain professions, + specializations, disciplines, fields of activity, etc. are identified. A + profession is represented by one or more text strings, resp. profession OIDs + in the fields professionItems and professionOIDs and by a registration number + in the field registrationNumber. An indication in text form must always be + present, whereas the other indications are optional. The component + addProfessionInfo may contain additional applicationspecific information in + DER-encoded form.
  • +
+

+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of + professions, specializations, disciplines, fields of activity, etc. can be + expressed. The issuing admission authority should always be indicated (field + admissionAuthority), whenever a registration number is presented. Still, + information on admissions can be given without indicating an admission or a + naming authority by the exclusive use of the component professionItems. In + this case the certification authority is responsible for the verification of + the admission information. +

+

+

+ This attribute is single-valued. Still, several admissions can be captured in + the sequence structure of the component contentsOfAdmissions of + AdmissionSyntax or in the component professionInfos of Admissions. The + component admissionAuthority of AdmissionSyntax serves as default value for + the component admissionAuthority of Admissions. Within the latter component + the default value can be overwritten, in case that another authority is + responsible. The component namingAuthority of Admissions serves as a default + value for the component namingAuthority of ProfessionInfo. Within the latter + component the default value can be overwritten, in case that another naming + authority needs to be recorded. +

+ The length of the string objects is limited to 128 characters. It is + recommended to indicate a namingAuthorityURL in all issued attribute + certificates. If a namingAuthorityURL is indicated, the field professionItems + of ProfessionInfo should contain only registered titles. If the field + professionOIDs exists, it has to contain the OIDs of the professions listed + in professionItems in the same order. In general, the field professionInfos + should contain only one entry, unless the admissions that are to be listed + are logically connected (e.g. they have been issued under the same admission + number). + + @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions + @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo + @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority + + + Constructor from Asn1Sequence. +

+ The sequence is of type ProcurationSyntax: +

+

+                 AdmissionSyntax ::= SEQUENCE
+                 {
+                   admissionAuthority GeneralName OPTIONAL,
+                   contentsOfAdmissions SEQUENCE OF Admissions
+                 }
+             

+ Admissions ::= SEQUENCE + { + admissionAuthority [0] EXPLICIT GeneralName OPTIONAL + namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL + professionInfos SEQUENCE OF ProfessionInfo + } +

+ NamingAuthority ::= SEQUENCE + { + namingAuthorityId OBJECT IDENTIFIER OPTIONAL, + namingAuthorityUrl IA5String OPTIONAL, + namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL + } +

+ ProfessionInfo ::= SEQUENCE + { + namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL, + professionItems SEQUENCE OF DirectoryString (SIZE(1..128)), + professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + registrationNumber PrintableString(SIZE(1..128)) OPTIONAL, + addProfessionInfo OCTET STRING OPTIONAL + } +

+ + @param seq The ASN.1 sequence. +
+ + Constructor from given details. + + @param admissionAuthority The admission authority. + @param contentsOfAdmissions The admissions. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                 AdmissionSyntax ::= SEQUENCE
+                 {
+                   admissionAuthority GeneralName OPTIONAL,
+                   contentsOfAdmissions SEQUENCE OF Admissions
+                 }
+             

+ Admissions ::= SEQUENCE + { + admissionAuthority [0] EXPLICIT GeneralName OPTIONAL + namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL + professionInfos SEQUENCE OF ProfessionInfo + } +

+ NamingAuthority ::= SEQUENCE + { + namingAuthorityId OBJECT IDENTIFIER OPTIONAL, + namingAuthorityUrl IA5String OPTIONAL, + namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL + } +

+ ProfessionInfo ::= SEQUENCE + { + namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL, + professionItems SEQUENCE OF DirectoryString (SIZE(1..128)), + professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + registrationNumber PrintableString(SIZE(1..128)) OPTIONAL, + addProfessionInfo OCTET STRING OPTIONAL + } +

+ + @return an Asn1Object +
+ + @return Returns the admissionAuthority if present, null otherwise. + + + @return Returns the contentsOfAdmissions. + + + A declaration of majority. +

+

+                      DeclarationOfMajoritySyntax ::= CHOICE
+                      {
+                        notYoungerThan [0] IMPLICIT INTEGER,
+                        fullAgeAtCountry [1] IMPLICIT SEQUENCE
+                        {
+                          fullAge BOOLEAN DEFAULT TRUE,
+                          country PrintableString (SIZE(2))
+                        }
+                        dateOfBirth [2] IMPLICIT GeneralizedTime
+                      }
+            
+

+ fullAgeAtCountry indicates the majority of the owner with respect to the laws + of a specific country. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                       DeclarationOfMajoritySyntax ::= CHOICE
+                       {
+                         notYoungerThan [0] IMPLICIT INTEGER,
+                         fullAgeAtCountry [1] IMPLICIT SEQUENCE
+                         {
+                           fullAge BOOLEAN DEFAULT TRUE,
+                           country PrintableString (SIZE(2))
+                         }
+                         dateOfBirth [2] IMPLICIT GeneralizedTime
+                       }
+             
+ + @return an Asn1Object +
+ + @return notYoungerThan if that's what we are, -1 otherwise + + + Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be + used in new certificates in place of the extension/attribute MonetaryLimit + since January 1, 2004. For the sake of backward compatibility with + certificates already in use, components SHOULD support MonetaryLimit (as well + as QcEuLimitValue). +

+ Indicates a monetary limit within which the certificate holder is authorized + to act. (This value DOES NOT express a limit on the liability of the + certification authority). +

+

+               MonetaryLimitSyntax ::= SEQUENCE
+               {
+                 currency PrintableString (SIZE(3)),
+                 amount INTEGER,
+                 exponent INTEGER
+               }
+            
+

+ currency must be the ISO code. +

+ value = amount�10*exponent + + + Constructor from a given details. +

+

+ value = amount�10^exponent + + @param currency The currency. Must be the ISO code. + @param amount The amount + @param exponent The exponent + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                MonetaryLimitSyntax ::= SEQUENCE
+                {
+                  currency PrintableString (SIZE(3)),
+                  amount INTEGER,
+                  exponent INTEGER
+                }
+             
+ + @return an Asn1Object +
+ + Names of authorities which are responsible for the administration of title + registers. + +
+                        NamingAuthority ::= SEQUENCE 
+                        {
+                          namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+                          namingAuthorityUrl IA5String OPTIONAL,
+                          namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+                        }
+            
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax + +
+ + Profession OIDs should always be defined under the OID branch of the + responsible naming authority. At the time of this writing, the work group + �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the + first naming authority under the OID id-isismtt-at-namingAuthorities. + + + Constructor from Asn1Sequence. +

+

+

+                         NamingAuthority ::= SEQUENCE
+                         {
+                           namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+                           namingAuthorityUrl IA5String OPTIONAL,
+                           namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+                         }
+             
+ + @param seq The ASN.1 sequence. +
+ + @return Returns the namingAuthorityID. + + + @return Returns the namingAuthorityText. + + + @return Returns the namingAuthorityUrl. + + + Constructor from given details. +

+ All parameters can be combined. + + @param namingAuthorityID ObjectIdentifier for naming authority. + @param namingAuthorityUrl URL for naming authority. + @param namingAuthorityText Textual representation of naming authority. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                         NamingAuthority ::= SEQUENCE
+                         {
+                           namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+                           namingAuthorityUrl IA5String OPTIONAL,
+                           namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+                         }
+             
+ + @return an Asn1Object +
+ + Attribute to indicate that the certificate holder may sign in the name of a + third person. +

+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the + name of the person who is represented (subcomponent thirdPerson) or a + reference to his/her base certificate (in the component signingFor, + subcomponent certRef), furthermore the optional components country and + typeSubstitution to indicate the country whose laws apply, and respectively + the type of procuration (e.g. manager, procuration, custody). +

+

+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only + contain: - RFC3039 attributes, except pseudonym (countryName, commonName, + surname, givenName, serialNumber, organizationName, organizationalUnitName, + stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName + attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship, + countryOfResidence and NameAtBirth). +

+
+                          ProcurationSyntax ::= SEQUENCE {
+                            country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+                            typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+                            signingFor [3] EXPLICIT SigningFor 
+                          }
+                          
+                          SigningFor ::= CHOICE 
+                          { 
+                            thirdPerson GeneralName,
+                            certRef IssuerSerial 
+                          }
+            
+ +
+ + Constructor from Asn1Sequence. +

+ The sequence is of type ProcurationSyntax: +

+

+                           ProcurationSyntax ::= SEQUENCE {
+                             country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+                             typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+                             signingFor [3] EXPLICIT SigningFor
+                           }
+             

+ SigningFor ::= CHOICE + { + thirdPerson GeneralName, + certRef IssuerSerial + } +

+ + @param seq The ASN.1 sequence. +
+ + Constructor from a given details. +

+

+ Either generalName or certRef MUST be + null. + + @param country The country code whose laws apply. + @param typeOfSubstitution The type of procuration. + @param certRef Reference to certificate of the person who is represented. + + + Constructor from a given details. +

+

+ Either generalName or certRef MUST be + null. + + @param country The country code whose laws apply. + @param typeOfSubstitution The type of procuration. + @param thirdPerson The GeneralName of the person who is represented. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                           ProcurationSyntax ::= SEQUENCE {
+                             country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+                             typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+                             signingFor [3] EXPLICIT SigningFor
+                           }
+             

+ SigningFor ::= CHOICE + { + thirdPerson GeneralName, + certRef IssuerSerial + } +

+ + @return an Asn1Object +
+ + Professions, specializations, disciplines, fields of activity, etc. + +
+                          ProfessionInfo ::= SEQUENCE 
+                          {
+                            namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+                            professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+                            professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+                            registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+                            addProfessionInfo OCTET STRING OPTIONAL 
+                          }
+            
+ + @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax +
+ + Rechtsanw�ltin + + + Rechtsanwalt + + + Rechtsbeistand + + + Steuerberaterin + + + Steuerberater + + + Steuerbevollm�chtigte + + + Steuerbevollm�chtigter + + + Notarin + + + Notar + + + Notarvertreterin + + + Notarvertreter + + + Notariatsverwalterin + + + Notariatsverwalter + + + Wirtschaftspr�ferin + + + Wirtschaftspr�fer + + + Vereidigte Buchpr�ferin + + + Vereidigter Buchpr�fer + + + Patentanw�ltin + + + Patentanwalt + + + Constructor from Asn1Sequence. +

+

+

+                           ProfessionInfo ::= SEQUENCE
+                           {
+                             namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+                             professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+                             professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+                             registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+                             addProfessionInfo OCTET STRING OPTIONAL
+                           }
+             
+ + @param seq The ASN.1 sequence. +
+ + Constructor from given details. +

+ professionItems is mandatory, all other parameters are + optional. + + @param namingAuthority The naming authority. + @param professionItems Directory strings of the profession. + @param professionOids DERObjectIdentfier objects for the + profession. + @param registrationNumber Registration number. + @param addProfessionInfo Additional infos in encoded form. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                           ProfessionInfo ::= SEQUENCE
+                           {
+                             namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+                             professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+                             professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+                             registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+                             addProfessionInfo OCTET STRING OPTIONAL
+                           }
+             
+ + @return an Asn1Object +
+ + @return Returns the addProfessionInfo. + + + @return Returns the namingAuthority. + + + @return Returns the professionItems. + + + @return Returns the professionOids. + + + @return Returns the registrationNumber. + + + Some other restriction regarding the usage of this certificate. +

+

+             RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+            
+
+ + Constructor from DirectoryString. +

+ The DirectoryString is of type RestrictionSyntax: +

+

+                  RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+             
+ + @param restriction A IAsn1String. +
+ + Constructor from a given details. + + @param restriction The description of the restriction. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                  RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+             

+

+ + @return an Asn1Object +
+ + Produce an object suitable for an Asn1OutputStream. +
+            cast5CBCParameters ::= Sequence {
+                                      iv         OCTET STRING DEFAULT 0,
+                                             -- Initialization vector
+                                      keyLength  Integer
+                                             -- Key length, in bits
+                                 }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            IDEA-CBCPar ::= Sequence {
+                                 iv    OCTET STRING OPTIONAL -- exactly 8 octets
+                             }
+            
+
+ + The NetscapeCertType object. +
+               NetscapeCertType ::= BIT STRING {
+                    SSLClient               (0),
+                    SSLServer               (1),
+                    S/MIME                  (2),
+                    Object Signing          (3),
+                    Reserved                (4),
+                    SSL CA                  (5),
+                    S/MIME CA               (6),
+                    Object Signing CA       (7) }
+            
+
+ + Basic constructor. + + @param usage - the bitwise OR of the Key Usage flags giving the + allowed uses for the key. + e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA) + + + This is designed to parse + the PublicKeyAndChallenge created by the KEYGEN tag included by + Mozilla based browsers. +
+              PublicKeyAndChallenge ::= SEQUENCE {
+                spki SubjectPublicKeyInfo,
+                challenge IA5STRING
+              }
+            
+              
+
+ + + KMACwithSHAKE128-params ::= SEQUENCE { + kMACOutputLength INTEGER DEFAULT 256, -- Output length in bits + customizationString OCTET STRING DEFAULT ''H + } + + + + + KMACwithSHAKE256-params ::= SEQUENCE { + kMACOutputLength INTEGER DEFAULT 512, -- Output length in bits + customizationString OCTET STRING DEFAULT ''H + } + + + + Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3 + + + return the X9ECParameters object for the named curve represented by + the passed in object identifier. Null if the curve isn't present. + + @param oid an object identifier representing a named curve, if present. + + + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + + + return the named curve name represented by the given object identifier. + + + returns an enumeration containing the name strings for curves + contained in this structure. + + + 2.16.840.1.101.3.4.3.5 + + + 2.16.840.1.101.3.4.3.6 + + + 2.16.840.1.101.3.4.3.7 + + + 2.16.840.1.101.3.4.3.8 + + + 2.16.840.1.101.3.4.3.9 + + + 2.16.840.1.101.3.4.3.10 + + + 2.16.840.1.101.3.4.3.11 + + + 2.16.840.1.101.3.4.3.12 + + + 2.16.840.1.101.3.4.3.9 + + + 2.16.840.1.101.3.4.3.10 + + + 2.16.840.1.101.3.4.3.11 + + + 2.16.840.1.101.3.4.3.12 + + + From RFC 3657 + + + Produce an object suitable for an Asn1OutputStream. +
+            BasicOcspResponse       ::= Sequence {
+                 tbsResponseData      ResponseData,
+                 signatureAlgorithm   AlgorithmIdentifier,
+                 signature            BIT STRING,
+                 certs                [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            CertID          ::=     Sequence {
+                hashAlgorithm       AlgorithmIdentifier,
+                issuerNameHash      OCTET STRING, -- Hash of Issuer's DN
+                issuerKeyHash       OCTET STRING, -- Hash of Issuers public key
+                serialNumber        CertificateSerialNumber }
+            
+
+ + create a CertStatus object with a tag of zero. + + + Produce an object suitable for an Asn1OutputStream. +
+             CertStatus ::= CHOICE {
+                             good        [0]     IMPLICIT Null,
+                             revoked     [1]     IMPLICIT RevokedInfo,
+                             unknown     [2]     IMPLICIT UnknownInfo }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            CrlID ::= Sequence {
+                crlUrl               [0]     EXPLICIT IA5String OPTIONAL,
+                crlNum               [1]     EXPLICIT Integer OPTIONAL,
+                crlTime              [2]     EXPLICIT GeneralizedTime OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            OcspRequest     ::=     Sequence {
+                tbsRequest                  TBSRequest,
+                optionalSignature   [0]     EXPLICIT Signature OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            OcspResponse ::= Sequence {
+                responseStatus         OcspResponseStatus,
+                responseBytes          [0] EXPLICIT ResponseBytes OPTIONAL }
+            
+
+ + The OcspResponseStatus enumeration. +
+            OcspResponseStatus ::= Enumerated {
+                successful            (0),  --Response has valid confirmations
+                malformedRequest      (1),  --Illegal confirmation request
+                internalError         (2),  --Internal error in issuer
+                tryLater              (3),  --Try again later
+                                            --(4) is not used
+                sigRequired           (5),  --Must sign the request
+                unauthorized          (6)   --Request unauthorized
+            }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            Request         ::=     Sequence {
+                reqCert                     CertID,
+                singleRequestExtensions     [0] EXPLICIT Extensions OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            ResponderID ::= CHOICE {
+                 byName          [1] Name,
+                 byKey           [2] KeyHash }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            ResponseBytes ::=       Sequence {
+                responseType   OBJECT IDENTIFIER,
+                response       OCTET STRING }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            ResponseData ::= Sequence {
+                version              [0] EXPLICIT Version DEFAULT v1,
+                responderID              ResponderID,
+                producedAt               GeneralizedTime,
+                responses                Sequence OF SingleResponse,
+                responseExtensions   [1] EXPLICIT Extensions OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            RevokedInfo ::= Sequence {
+                 revocationTime              GeneralizedTime,
+                 revocationReason    [0]     EXPLICIT CRLReason OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            ServiceLocator ::= Sequence {
+                issuer    Name,
+                locator   AuthorityInfoAccessSyntax OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            Signature       ::=     Sequence {
+                signatureAlgorithm      AlgorithmIdentifier,
+                signature               BIT STRING,
+                certs               [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+             SingleResponse ::= Sequence {
+                     certID                       CertID,
+                     certStatus                   CertStatus,
+                     thisUpdate                   GeneralizedTime,
+                     nextUpdate         [0]       EXPLICIT GeneralizedTime OPTIONAL,
+                     singleExtensions   [1]       EXPLICIT Extensions OPTIONAL }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            TBSRequest      ::=     Sequence {
+                version             [0]     EXPLICIT Version DEFAULT v1,
+                requestorName       [1]     EXPLICIT GeneralName OPTIONAL,
+                requestList                 Sequence OF Request,
+                requestExtensions   [2]     EXPLICIT Extensions OPTIONAL }
+            
+
+ + class for breaking up an Oid into it's component tokens, ala + java.util.StringTokenizer. We need this class as some of the + lightweight Java environment don't support classes like + StringTokenizer. + + + return an Attribute object from the given object. + + @param o the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            Attr ::= Sequence {
+                attrType OBJECT IDENTIFIER,
+                attrValues Set OF AttributeValue
+            }
+            
+
+ + Pkcs10 Certfication request object. +
+            CertificationRequest ::= Sequence {
+              certificationRequestInfo  CertificationRequestInfo,
+              signatureAlgorithm        AlgorithmIdentifier{{ SignatureAlgorithms }},
+              signature                 BIT STRING
+            }
+            
+
+ + Pkcs10 CertificationRequestInfo object. +
+              CertificationRequestInfo ::= Sequence {
+               version             Integer { v1(0) } (v1,...),
+               subject             Name,
+               subjectPKInfo   SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+               attributes          [0] Attributes{{ CRIAttributes }}
+              }
+            
+              Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+            
+              Attr { ATTRIBUTE:IOSet } ::= Sequence {
+                type    ATTRIBUTE.&id({IOSet}),
+                values  Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+              }
+             
+
+ + Produce an object suitable for an Asn1OutputStream. +
+            ContentInfo ::= Sequence {
+                     contentType ContentType,
+                     content
+                     [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+            
+
+ + The EncryptedData object. +
+                  EncryptedData ::= Sequence {
+                       version Version,
+                       encryptedContentInfo EncryptedContentInfo
+                  }
+            
+            
+                  EncryptedContentInfo ::= Sequence {
+                      contentType ContentType,
+                      contentEncryptionAlgorithm  ContentEncryptionAlgorithmIdentifier,
+                      encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+                }
+            
+                EncryptedContent ::= OCTET STRING
+             
+
+ + Produce an object suitable for an Asn1OutputStream. +
+             EncryptedPrivateKeyInfo ::= Sequence {
+                  encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+                  encryptedData EncryptedData
+             }
+            
+             EncryptedData ::= OCTET STRING
+            
+             KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+                      ... -- For local profiles
+             }
+             
+
+ +
+            MacData ::= SEQUENCE {
+                mac      DigestInfo,
+                macSalt  OCTET STRING,
+                iterations INTEGER DEFAULT 1
+                -- Note: The default is for historic reasons and its use is deprecated. A
+                -- higher value, like 1024 is recommended.
+            
+ @return the basic DERObject construction. +
+ + the infamous Pfx from Pkcs12 + + + PKCS#1: 1.2.840.113549.1.1.15 + + + PKCS#1: 1.2.840.113549.1.1.16 + + +
+             id-alg-AEADChaCha20Poly1305 OBJECT IDENTIFIER ::=
+             { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+                pkcs9(9) smime(16) alg(3) 18 }
+            
+             AEADChaCha20Poly1305Nonce ::= OCTET STRING (SIZE(12))
+             
+
+ + PKCS#9: 1.2.840.113549.1.9.16.2.37 - RFC 4108 + + + PKCS#9: 1.2.840.113549.1.9.16.2.38 - RFC 4108 + + + PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030 + + + PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030 + + + PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030 + + + RFC 5958 + +
+              [IMPLICIT TAGS]
+            
+              OneAsymmetricKey ::= SEQUENCE {
+                  version                   Version,
+                  privateKeyAlgorithm       PrivateKeyAlgorithmIdentifier,
+                  privateKey                PrivateKey,
+                  attributes            [0] Attributes OPTIONAL,
+                  ...,
+                  [[2: publicKey        [1] PublicKey OPTIONAL ]],
+                  ...
+              }
+            
+              PrivateKeyInfo ::= OneAsymmetricKey
+            
+              Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
+            
+              PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
+                                                 { PUBLIC-KEY,
+                                                   { PrivateKeyAlgorithms } }
+            
+              PrivateKey ::= OCTET STRING
+                                 -- Content varies based on type of key.  The
+                                 -- algorithm identifier dictates the format of
+                                 -- the key.
+            
+              PublicKey ::= BIT STRING
+                                 -- Content varies based on type of key.  The
+                                 -- algorithm identifier dictates the format of
+                                 -- the key.
+            
+              Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
+              
+
+ + Return true if a public key is present, false otherwise. + + + For when the public key is an ASN.1 encoding. + + + Return the public key as a raw bit string. + + + The default version + + +
+              RSAES-OAEP-params ::= SEQUENCE {
+                 hashAlgorithm      [0] OAEP-PSSDigestAlgorithms     DEFAULT sha1,
+                 maskGenAlgorithm   [1] PKCS1MGFAlgorithms  DEFAULT mgf1SHA1,
+                 pSourceAlgorithm   [2] PKCS1PSourceAlgorithms  DEFAULT pSpecifiedEmpty
+               }
+            
+               OAEP-PSSDigestAlgorithms    ALGORITHM-IDENTIFIER ::= {
+                 { OID id-sha1 PARAMETERS NULL   }|
+                 { OID id-sha256 PARAMETERS NULL }|
+                 { OID id-sha384 PARAMETERS NULL }|
+                 { OID id-sha512 PARAMETERS NULL },
+                 ...  -- Allows for future expansion --
+               }
+               PKCS1MGFAlgorithms    ALGORITHM-IDENTIFIER ::= {
+                 { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+                ...  -- Allows for future expansion --
+               }
+               PKCS1PSourceAlgorithms    ALGORITHM-IDENTIFIER ::= {
+                 { OID id-pSpecified PARAMETERS OCTET STRING },
+                 ...  -- Allows for future expansion --
+              }
+             
+ @return the asn1 primitive representing the parameters. +
+ + This outputs the key in Pkcs1v2 format. +
+                  RsaPrivateKey ::= Sequence {
+                                      version Version,
+                                      modulus Integer, -- n
+                                      publicExponent Integer, -- e
+                                      privateExponent Integer, -- d
+                                      prime1 Integer, -- p
+                                      prime2 Integer, -- q
+                                      exponent1 Integer, -- d mod (p-1)
+                                      exponent2 Integer, -- d mod (q-1)
+                                      coefficient Integer -- (inverse of q) mod p
+                                  }
+            
+                  Version ::= Integer
+             
+

This routine is written to output Pkcs1 version 0, private keys.

+
+ + The default version + + +
+             RSASSA-PSS-params ::= SEQUENCE {
+               hashAlgorithm      [0] OAEP-PSSDigestAlgorithms  DEFAULT sha1,
+                maskGenAlgorithm   [1] PKCS1MGFAlgorithms  DEFAULT mgf1SHA1,
+                saltLength         [2] INTEGER  DEFAULT 20,
+                trailerField       [3] TrailerField  DEFAULT trailerFieldBC
+              }
+            
+             OAEP-PSSDigestAlgorithms    ALGORITHM-IDENTIFIER ::= {
+                { OID id-sha1 PARAMETERS NULL   }|
+                { OID id-sha256 PARAMETERS NULL }|
+                { OID id-sha384 PARAMETERS NULL }|
+                { OID id-sha512 PARAMETERS NULL },
+                ...  -- Allows for future expansion --
+             }
+            
+             PKCS1MGFAlgorithms    ALGORITHM-IDENTIFIER ::= {
+               { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+                ...  -- Allows for future expansion --
+             }
+            
+             TrailerField ::= INTEGER { trailerFieldBC(1) }
+             
+ @return the asn1 primitive representing the parameters. +
+ + a Pkcs#7 signed data object. + + + Produce an object suitable for an Asn1OutputStream. +
+             SignedData ::= Sequence {
+                 version Version,
+                 digestAlgorithms DigestAlgorithmIdentifiers,
+                 contentInfo ContentInfo,
+                 certificates
+                     [0] IMPLICIT ExtendedCertificatesAndCertificates
+                              OPTIONAL,
+                 crls
+                     [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+                 signerInfos SignerInfos }
+            
+
+ + a Pkcs#7 signer info object. + + + Produce an object suitable for an Asn1OutputStream. +
+              SignerInfo ::= Sequence {
+                  version Version,
+                  issuerAndSerialNumber IssuerAndSerialNumber,
+                  digestAlgorithm DigestAlgorithmIdentifier,
+                  authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+                  digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+                  encryptedDigest EncryptedDigest,
+                  unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+              }
+            
+              EncryptedDigest ::= OCTET STRING
+            
+              DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+            
+              DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+             
+
+ + the elliptic curve private key object from SEC 1 + + + ECPrivateKey ::= SEQUENCE { + version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1), + privateKey OCTET STRING, + parameters [0] Parameters OPTIONAL, + publicKey [1] BIT STRING OPTIONAL } + + + return the X9ECParameters object for the named curve represented by + the passed in object identifier. Null if the curve isn't present. + + @param oid an object identifier representing a named curve, if present. + + + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + + + return the named curve name represented by the given object identifier. + + + returns an enumeration containing the name strings for curves + contained in this structure. + + + EllipticCurve OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) + } + + + Handler class for dealing with S/MIME Capabilities + + + general preferences + + + encryption algorithms preferences + + + return an Attr object from the given object. + + @param o the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + returns an ArrayList with 0 or more objects of all the capabilities + matching the passed in capability Oid. If the Oid passed is null the + entire set is returned. + + + Produce an object suitable for an Asn1OutputStream. +
+            SMIMECapabilities ::= Sequence OF SMIMECapability
+            
+
+ + general preferences + + + encryption algorithms preferences + + + Produce an object suitable for an Asn1OutputStream. +
+            SMIMECapability ::= Sequence {
+                capabilityID OBJECT IDENTIFIER,
+                parameters ANY DEFINED BY capabilityID OPTIONAL
+            }
+            
+
+ + Handler for creating a vector S/MIME Capabilities + + + The SmimeEncryptionKeyPreference object. +
+            SmimeEncryptionKeyPreference ::= CHOICE {
+                issuerAndSerialNumber   [0] IssuerAndSerialNumber,
+                receipentKeyId          [1] RecipientKeyIdentifier,
+                subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+            }
+            
+
+ + @param sKeyId the subjectKeyIdentifier value (normally the X.509 one) + + + elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation" + http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt + + + return the X9ECParameters object for the named curve represented by + the passed in object identifier. Null if the curve isn't present. + + @param oid an object identifier representing a named curve, if present. + + + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + + + return the named curve name represented by the given object identifier. + + + returns an enumeration containing the name strings for curves + contained in this structure. + + +
+            Accuracy ::= SEQUENCE {
+                        seconds        INTEGER              OPTIONAL,
+                        millis     [0] INTEGER  (1..999)    OPTIONAL,
+                        micros     [1] INTEGER  (1..999)    OPTIONAL
+                        }
+            
+
+ +
+               MessageImprint ::= SEQUENCE  {
+                  hashAlgorithm                AlgorithmIdentifier,
+                  hashedMessage                OCTET STRING  }
+            
+
+ +
+            TimeStampReq ::= SEQUENCE  {
+             version                      INTEGER  { v1(1) },
+             messageImprint               MessageImprint,
+               --a hash algorithm OID and the hash value of the data to be
+               --time-stamped
+             reqPolicy             TSAPolicyId              OPTIONAL,
+             nonce                 INTEGER                  OPTIONAL,
+             certReq               BOOLEAN                  DEFAULT FALSE,
+             extensions            [0] IMPLICIT Extensions  OPTIONAL
+            }
+            
+
+ +
+            TimeStampResp ::= SEQUENCE  {
+              status                  PkiStatusInfo,
+              timeStampToken          TimeStampToken     OPTIONAL  }
+            
+
+ +
+            
+                 TstInfo ::= SEQUENCE  {
+                    version                      INTEGER  { v1(1) },
+                    policy                       TSAPolicyId,
+                    messageImprint               MessageImprint,
+                      -- MUST have the same value as the similar field in
+                      -- TimeStampReq
+                    serialNumber                 INTEGER,
+                     -- Time-Stamping users MUST be ready to accommodate integers
+                     -- up to 160 bits.
+                    genTime                      GeneralizedTime,
+                    accuracy                     Accuracy                 OPTIONAL,
+                    ordering                     BOOLEAN             DEFAULT FALSE,
+                    nonce                        INTEGER                  OPTIONAL,
+                      -- MUST be present if the similar field was present
+                      -- in TimeStampReq.  In that case it MUST have the same value.
+                    tsa                          [0] GeneralName          OPTIONAL,
+                    extensions                   [1] IMPLICIT Extensions   OPTIONAL  }
+            
+             
+
+ + + Base OID: 1.2.804.2.1.1.1 + + + DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1 + + + DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1 + + + DSTU7564 256-bit digest presentation. + + + DSTU7564 384-bit digest presentation. + + + DSTU7564 512-bit digest presentation. + + + DSTU7564 256-bit mac presentation. + + + DSTU7564 384-bit mac presentation. + + + DSTU7564 512-bit mac presentation. + + + DSTU7624 in ECB mode with 128 bit block/key presentation + + + DSTU7624 in ECB mode with 256 bit block/key presentation + + + DSTU7624 in ECB mode with 512 bit block/key presentation + + + DSTU7624 in CTR mode with 128 bit block/key presentation + + + DSTU7624 in CTR mode with 256 bit block/key presentation + + + DSTU7624 in CTR mode with 512 bit block/key presentation + + + DSTU7624 in CFB mode with 128 bit block/key presentation + + + DSTU7624 in CFB mode with 256 bit block/key presentation + + + DSTU7624 in CFB mode with 512 bit block/key presentation + + + DSTU7624 in MAC mode with 128 bit block/key presentation + + + DSTU7624 in MAC mode with 256 bit block/key presentation + + + DSTU7624 in MAC mode with 512 bit block/key presentation + + + DSTU7624 in CBC mode with 128 bit block/key presentation + + + DSTU7624 in CBC mode with 256 bit block/key presentation + + + DSTU7624 in CBC mode with 512 bit block/key presentation + + + DSTU7624 in OFB mode with 128 bit block/key presentation + + + DSTU7624 in OFB mode with 256 bit block/key presentation + + + DSTU7624 in OFB mode with 512 bit block/key presentation + + + DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation + + + DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation + + + DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation + + + DSTU7624 in CCM mode with 128 bit block/key presentation + + + DSTU7624 in CCM mode with 256 bit block/key presentation + + + DSTU7624 in CCM mode with 512 bit block/key presentation + + + DSTU7624 in XTS mode with 128 bit block/key presentation + + + DSTU7624 in XTS mode with 256 bit block/key presentation + + + DSTU7624 in XTS mode with 512 bit block/key presentation + + + DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation + + + DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation + + + DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation + + + dump a Der object as a formatted string with indentation + + @param obj the Asn1Object to be dumped out. + + + dump out a DER object as a formatted string, in non-verbose mode + + @param obj the Asn1Encodable to be dumped out. + @return the resulting string. + + + Dump out the object as a string + + @param obj the Asn1Encodable to be dumped out. + @param verbose if true, dump out the contents of octet and bit strings. + @return the resulting string. + + + Holding class for the AttributeTypeAndValue structures that make up an RDN. + + +
+            AttributeTypeAndValue ::= SEQUENCE {
+                      type         OBJECT IDENTIFIER,
+                      value        ANY DEFINED BY type }
+            
+ @return a basic ASN.1 object representation. +
+ +
+             DirectoryString ::= CHOICE {
+               teletexString               TeletexString (SIZE (1..MAX)),
+               printableString             PrintableString (SIZE (1..MAX)),
+               universalString             UniversalString (SIZE (1..MAX)),
+               utf8String                  UTF8String (SIZE (1..MAX)),
+               bmpString                   BMPString (SIZE (1..MAX))  }
+            
+
+ + Holding class for a single Relative Distinguished Name (RDN). + + + Create a single valued RDN. + + @param oid RDN type. + @param value RDN value. + + + Create a multi-valued RDN. + + @param aAndVs attribute type/value pairs making up the RDN + + + Return the number of AttributeTypeAndValue objects in this RDN, + + @return size of RDN, greater than 1 if multi-valued. + + + *
+                     * RelativeDistinguishedName ::=
+                     *                     SET OF AttributeTypeAndValue
+            
+                     * AttributeTypeAndValue ::= SEQUENCE {
+                     *        type     AttributeType,
+                     *        value    AttributeValue }
+                     * 
+ * @return this object as its ASN1Primitive type +
+ + The AccessDescription object. +
+            AccessDescription  ::=  SEQUENCE {
+                  accessMethod          OBJECT IDENTIFIER,
+                  accessLocation        GeneralName  }
+            
+
+ + create an AccessDescription with the oid and location provided. + + + + @return the access method. + + + + @return the access location + + + + Return the OID in the Algorithm entry of this identifier. + + + + + Return the parameters structure in the Parameters entry of this identifier. + + + + Produce an object suitable for an Asn1OutputStream. +
+                 AlgorithmIdentifier ::= Sequence {
+                                       algorithm OBJECT IDENTIFIER,
+                                       parameters ANY DEFINED BY algorithm OPTIONAL }
+            
+
+ + + Don't use this one if you are trying to be RFC 3281 compliant. + Use it for v1 attribute certificates only. + + Our GeneralNames structure + + + Produce an object suitable for an Asn1OutputStream. +
+             AttCertIssuer ::= CHOICE {
+                  v1Form   GeneralNames,  -- MUST NOT be used in this
+                                          -- profile
+                  v2Form   [0] V2Form     -- v2 only
+             }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+             AttCertValidityPeriod  ::= Sequence {
+                  notBeforeTime  GeneralizedTime,
+                  notAfterTime   GeneralizedTime
+             }
+            
+
+ + return an Attr object from the given object. + + @param o the object we want converted. + @exception ArgumentException if the object cannot be converted. + + + Produce an object suitable for an Asn1OutputStream. +
+            Attr ::= Sequence {
+                attrType OBJECT IDENTIFIER,
+                attrValues Set OF AttributeValue
+            }
+            
+
+ + @param obj + @return + + + Produce an object suitable for an Asn1OutputStream. +
+             AttributeCertificate ::= Sequence {
+                  acinfo               AttributeCertificateInfo,
+                  signatureAlgorithm   AlgorithmIdentifier,
+                  signatureValue       BIT STRING
+             }
+            
+
+ + Produce an object suitable for an Asn1OutputStream. +
+              AttributeCertificateInfo ::= Sequence {
+                   version              AttCertVersion -- version is v2,
+                   holder               Holder,
+                   issuer               AttCertIssuer,
+                   signature            AlgorithmIdentifier,
+                   serialNumber         CertificateSerialNumber,
+                   attrCertValidityPeriod   AttCertValidityPeriod,
+                   attributes           Sequence OF Attr,
+                   issuerUniqueID       UniqueIdentifier OPTIONAL,
+                   extensions           Extensions OPTIONAL
+              }
+            
+              AttCertVersion ::= Integer { v2(1) }
+             
+
+ + The AuthorityInformationAccess object. +
+             id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+            
+             AuthorityInfoAccessSyntax  ::=
+                  Sequence SIZE (1..MAX) OF AccessDescription
+             AccessDescription  ::=  Sequence {
+                   accessMethod          OBJECT IDENTIFIER,
+                   accessLocation        GeneralName  }
+            
+             id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+             id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+             id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+             
+
+ + create an AuthorityInformationAccess with the oid and location provided. + + + The AuthorityKeyIdentifier object. +
+             id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::=  { id-ce 35 }
+            
+               AuthorityKeyIdentifier ::= Sequence {
+                  keyIdentifier             [0] IMPLICIT KeyIdentifier           OPTIONAL,
+                  authorityCertIssuer       [1] IMPLICIT GeneralNames            OPTIONAL,
+                  authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL  }
+            
+               KeyIdentifier ::= OCTET STRING
+             
+ +
+ + * + * Calulates the keyidentifier using a SHA1 hash over the BIT STRING + * from SubjectPublicKeyInfo as defined in RFC2459. + * + * Example of making a AuthorityKeyIdentifier: + *
+            	     *   SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+            		 *       publicKey.getEncoded()).readObject());
+                     *   AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+                     * 
+ * + * +
+ + create an AuthorityKeyIdentifier with the GeneralNames tag and + the serial number provided as well. + + + create an AuthorityKeyIdentifier with the GeneralNames tag and + the serial number provided. + + + create an AuthorityKeyIdentifier with a precomputed key identifier + + + create an AuthorityKeyIdentifier with a precomupted key identifier + and the GeneralNames tag and the serial number provided as well. + + + Produce an object suitable for an Asn1OutputStream. + + + create a cA=true object for the given path length constraint. + + @param pathLenConstraint + + + Produce an object suitable for an Asn1OutputStream. +
+            BasicConstraints := Sequence {
+               cA                  Boolean DEFAULT FALSE,
+               pathLenConstraint   Integer (0..MAX) OPTIONAL
+            }
+            
+
+ + PKIX RFC-2459 + + The X.509 v2 CRL syntax is as follows. For signature calculation, + the data that is to be signed is ASN.1 Der encoded. + +
+             CertificateList  ::=  Sequence  {
+                  tbsCertList          TbsCertList,
+                  signatureAlgorithm   AlgorithmIdentifier,
+                  signatureValue       BIT STRING  }
+             
+
+ + This class helps to support crossCerfificatePairs in a LDAP directory + according RFC 2587 + +
+                 crossCertificatePairATTRIBUTE::={
+                   WITH SYNTAX   CertificatePair
+                   EQUALITY MATCHING RULE certificatePairExactMatch
+                   ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+             
+ +
The forward elements of the crossCertificatePair attribute of a + CA's directory entry shall be used to store all, except self-issued + certificates issued to this CA. Optionally, the reverse elements of the + crossCertificatePair attribute, of a CA's directory entry may contain a + subset of certificates issued by this CA to other CAs. When both the forward + and the reverse elements are present in a single attribute value, issuer name + in one certificate shall match the subject name in the other and vice versa, + and the subject public key in one certificate shall be capable of verifying + the digital signature on the other certificate and vice versa. + + When a reverse element is present, the forward element value and the reverse + element value need not be stored in the same attribute value; in other words, + they can be stored in either a single attribute value or two attribute + values.
+ +
+                   CertificatePair ::= SEQUENCE {
+                     forward		[0]	Certificate OPTIONAL,
+                     reverse		[1]	Certificate OPTIONAL,
+                     -- at least one of the pair shall be present -- }
+             
+
+ + Constructor from Asn1Sequence. +

+ The sequence is of type CertificatePair: +

+

+                   CertificatePair ::= SEQUENCE {
+                     forward		[0]	Certificate OPTIONAL,
+                     reverse		[1]	Certificate OPTIONAL,
+                     -- at least one of the pair shall be present -- }
+             
+ + @param seq The ASN.1 sequence. +
+ + Constructor from a given details. + + @param forward Certificates issued to this CA. + @param reverse Certificates issued by this CA to other CAs. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                   CertificatePair ::= SEQUENCE {
+                     forward		[0]	Certificate OPTIONAL,
+                     reverse		[1]	Certificate OPTIONAL,
+                     -- at least one of the pair shall be present -- }
+             
+ + @return a DERObject +
+ + @return Returns the forward. + + + @return Returns the reverse. + + + Construct a CertificatePolicies object containing one PolicyInformation. + + @param name the name to be contained. + + + Produce an object suitable for an ASN1OutputStream. +
+            CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+            
+
+ + CertPolicyId, used in the CertificatePolicies and PolicyMappings + X509V3 Extensions. + +
+                 CertPolicyId ::= OBJECT IDENTIFIER
+             
+
+ + Return the distribution points making up the sequence. + + @return DistributionPoint[] + + + Produce an object suitable for an Asn1OutputStream. +
+            CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+            
+
+ + The CRLNumber object. +
+            CRLNumber::= Integer(0..MAX)
+            
+
+ + The CRLReason enumeration. +
+            CRLReason ::= Enumerated {
+             unspecified             (0),
+             keyCompromise           (1),
+             cACompromise            (2),
+             affiliationChanged      (3),
+             superseded              (4),
+             cessationOfOperation    (5),
+             certificateHold         (6),
+             removeFromCRL           (8),
+             privilegeWithdrawn      (9),
+             aACompromise           (10)
+            }
+            
+
+ + The DigestInfo object. +
+            DigestInfo::=Sequence{
+                     digestAlgorithm  AlgorithmIdentifier,
+                     digest OCTET STRING }
+            
+
+ + DisplayText class, used in + CertificatePolicies X509 V3 extensions (in policy qualifiers). + +

It stores a string in a chosen encoding. +

+             DisplayText ::= CHOICE {
+                  ia5String        IA5String      (SIZE (1..200)),
+                  visibleString    VisibleString  (SIZE (1..200)),
+                  bmpString        BMPString      (SIZE (1..200)),
+                  utf8String       UTF8String     (SIZE (1..200)) }
+             

+ @see PolicyQualifierInfo + @see PolicyInformation +
+ + Constant corresponding to ia5String encoding. + + + + Constant corresponding to bmpString encoding. + + + + Constant corresponding to utf8String encoding. + + + + Constant corresponding to visibleString encoding. + + + + Describe constant DisplayTextMaximumSize here. + + + + Creates a new DisplayText instance. + + @param type the desired encoding type for the text. + @param text the text to store. Strings longer than 200 + characters are truncated. + + + Creates a new DisplayText instance. + + @param text the text to encapsulate. Strings longer than 200 + characters are truncated. + + + Creates a new DisplayText instance. +

Useful when reading back a DisplayText class + from it's Asn1Encodable form.

+ + @param contents an Asn1Encodable instance. +
+ + Returns the stored string object. + + @return the stored text as a string. + + + The DistributionPoint object. +
+            DistributionPoint ::= Sequence {
+                 distributionPoint [0] DistributionPointName OPTIONAL,
+                 reasons           [1] ReasonFlags OPTIONAL,
+                 cRLIssuer         [2] GeneralNames OPTIONAL
+            }
+            
+
+ + The DistributionPointName object. +
+            DistributionPointName ::= CHOICE {
+                fullName                 [0] GeneralNames,
+                nameRelativeToCRLIssuer  [1] RDN
+            }
+            
+
+ + The extendedKeyUsage object. +
+                 extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+            
+
+ + Returns all extended key usages. + The returned ArrayList contains DerObjectIdentifier instances. + @return An ArrayList with all key purposes. + + + The GeneralName object. +
+             GeneralName ::= CHOICE {
+                  otherName                       [0]     OtherName,
+                  rfc822Name                      [1]     IA5String,
+                  dNSName                         [2]     IA5String,
+                  x400Address                     [3]     ORAddress,
+                  directoryName                   [4]     Name,
+                  ediPartyName                    [5]     EDIPartyName,
+                  uniformResourceIdentifier       [6]     IA5String,
+                  iPAddress                       [7]     OCTET STRING,
+                  registeredID                    [8]     OBJECT IDENTIFIER}
+            
+             OtherName ::= Sequence {
+                  type-id    OBJECT IDENTIFIER,
+                  value      [0] EXPLICIT ANY DEFINED BY type-id }
+            
+             EDIPartyName ::= Sequence {
+                  nameAssigner            [0]     DirectoryString OPTIONAL,
+                  partyName               [1]     DirectoryString }
+             
+
+ + When the subjectAltName extension contains an Internet mail address, + the address MUST be included as an rfc822Name. The format of an + rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822]. + + When the subjectAltName extension contains a domain name service + label, the domain name MUST be stored in the dNSName (an IA5String). + The name MUST be in the "preferred name syntax," as specified by RFC + 1034 [RFC 1034]. + + When the subjectAltName extension contains a URI, the name MUST be + stored in the uniformResourceIdentifier (an IA5String). The name MUST + be a non-relative URL, and MUST follow the URL syntax and encoding + rules specified in [RFC 1738]. The name must include both a scheme + (e.g., "http" or "ftp") and a scheme-specific-part. The scheme- + specific-part must include a fully qualified domain name or IP + address as the host. + + When the subjectAltName extension contains a iPAddress, the address + MUST be stored in the octet string in "network byte order," as + specified in RFC 791 [RFC 791]. The least significant bit (LSB) of + each octet is the LSB of the corresponding byte in the network + address. For IP Version 4, as specified in RFC 791, the octet string + MUST contain exactly four octets. For IP Version 6, as specified in + RFC 1883, the octet string MUST contain exactly sixteen octets [RFC + 1883]. + + + Create a GeneralName for the given tag from the passed in string. +

+ This constructor can handle: +

    +
  • rfc822Name
  • +
  • iPAddress
  • +
  • directoryName
  • +
  • dNSName
  • +
  • uniformResourceIdentifier
  • +
  • registeredID
  • +
+ For x400Address, otherName and ediPartyName there is no common string + format defined. +

+ Note: A directory name can be encoded in different ways into a byte + representation. Be aware of this if the byte representation is used for + comparing results. +

+ + @param tag tag number + @param name string representation of name + @throws ArgumentException if the string encoding is not correct or + not supported. +
+ + Construct a GeneralNames object containing one GeneralName. + The name to be contained. + + + Produce an object suitable for an Asn1OutputStream. +
+            GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+            
+
+ + Class for containing a restriction object subtrees in NameConstraints. See + RFC 3280. + +
+            
+                   GeneralSubtree ::= SEQUENCE
+                   {
+                     baseName                    GeneralName,
+                     minimum         [0]     BaseDistance DEFAULT 0,
+                     maximum         [1]     BaseDistance OPTIONAL
+                   }
+             
+ + @see org.bouncycastle.asn1.x509.NameConstraints + +
+ + Constructor from a given details. + + According RFC 3280, the minimum and maximum fields are not used with any + name forms, thus minimum MUST be zero, and maximum MUST be absent. +

+ If minimum is null, zero is assumed, if + maximum is null, maximum is absent.

+ + @param baseName + A restriction. + @param minimum + Minimum + + @param maximum + Maximum +
+ + Produce an object suitable for an Asn1OutputStream. + + Returns: + +
+                   GeneralSubtree ::= SEQUENCE
+                   {
+                     baseName                    GeneralName,
+                     minimum         [0]     BaseDistance DEFAULT 0,
+                     maximum         [1]     BaseDistance OPTIONAL
+                   }
+             
+ + @return a DERObject +
+ + The Holder object. +

+ For an v2 attribute certificate this is: + +

+                       Holder ::= SEQUENCE {
+                             baseCertificateID   [0] IssuerSerial OPTIONAL,
+                                      -- the issuer and serial number of
+                                      -- the holder's Public Key Certificate
+                             entityName          [1] GeneralNames OPTIONAL,
+                                      -- the name of the claimant or role
+                             objectDigestInfo    [2] ObjectDigestInfo OPTIONAL
+                                      -- used to directly authenticate the holder,
+                                      -- for example, an executable
+                       }
+            
+

+

+ For an v1 attribute certificate this is: + +

+                    subject CHOICE {
+                     baseCertificateID [0] IssuerSerial,
+                     -- associated with a Public Key Certificate
+                     subjectName [1] GeneralNames },
+                     -- associated with a name
+            
+

+
+ + Constructor for a holder for an v1 attribute certificate. + + @param tagObj The ASN.1 tagged holder object. + + + Constructor for a holder for an v2 attribute certificate. * + + @param seq The ASN.1 sequence. + + + Constructs a holder from a IssuerSerial. + @param baseCertificateID The IssuerSerial. + @param version The version of the attribute certificate. + + + Returns 1 for v2 attribute certificates or 0 for v1 attribute + certificates. + @return The version of the attribute certificate. + + + Constructs a holder with an entityName for v2 attribute certificates or + with a subjectName for v1 attribute certificates. + + @param entityName The entity or subject name. + + + Constructs a holder with an entityName for v2 attribute certificates or + with a subjectName for v1 attribute certificates. + + @param entityName The entity or subject name. + @param version The version of the attribute certificate. + + + Constructs a holder from an object digest info. + + @param objectDigestInfo The object digest info object. + + + Returns the entityName for an v2 attribute certificate or the subjectName + for an v1 attribute certificate. + + @return The entityname or subjectname. + + + The Holder object. +
+             Holder ::= Sequence {
+                   baseCertificateID   [0] IssuerSerial OPTIONAL,
+                            -- the issuer and serial number of
+                            -- the holder's Public Key Certificate
+                   entityName          [1] GeneralNames OPTIONAL,
+                            -- the name of the claimant or role
+                   objectDigestInfo    [2] ObjectDigestInfo OPTIONAL
+                            -- used to directly authenticate the holder,
+                            -- for example, an executable
+             }
+            
+
+ + Implementation of IetfAttrSyntax as specified by RFC3281. + + + + + + +
+            
+              IetfAttrSyntax ::= Sequence {
+                policyAuthority [0] GeneralNames OPTIONAL,
+                values Sequence OF CHOICE {
+                  octets OCTET STRING,
+                  oid OBJECT IDENTIFIER,
+                  string UTF8String
+                }
+              }
+            
+             
+
+ + Produce an object suitable for an Asn1OutputStream. +
+             IssuerSerial  ::=  Sequence {
+                  issuer         GeneralNames,
+                  serial         CertificateSerialNumber,
+                  issuerUid      UniqueIdentifier OPTIONAL
+             }
+            
+
+ +
+            IssuingDistributionPoint ::= SEQUENCE { 
+              distributionPoint          [0] DistributionPointName OPTIONAL, 
+              onlyContainsUserCerts      [1] BOOLEAN DEFAULT FALSE, 
+              onlyContainsCACerts        [2] BOOLEAN DEFAULT FALSE, 
+              onlySomeReasons            [3] ReasonFlags OPTIONAL, 
+              indirectCRL                [4] BOOLEAN DEFAULT FALSE,
+              onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+            
+
+ + Constructor from given details. + + @param distributionPoint + May contain an URI as pointer to most current CRL. + @param onlyContainsUserCerts Covers revocation information for end certificates. + @param onlyContainsCACerts Covers revocation information for CA certificates. + + @param onlySomeReasons + Which revocation reasons does this point cover. + @param indirectCRL + If true then the CRL contains revocation + information about certificates ssued by other CAs. + @param onlyContainsAttributeCerts Covers revocation information for attribute certificates. + + + Constructor from Asn1Sequence + + + @return Returns the distributionPoint. + + + @return Returns the onlySomeReasons. + + + The KeyPurposeID object. +
+                KeyPurposeID ::= OBJECT IDENTIFIER
+            
+
+ + The KeyUsage object. +
+                id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 }
+            
+                KeyUsage ::= BIT STRING {
+                     digitalSignature        (0),
+                     nonRepudiation          (1),
+                     keyEncipherment         (2),
+                     dataEncipherment        (3),
+                     keyAgreement            (4),
+                     keyCertSign             (5),
+                     cRLSign                 (6),
+                     encipherOnly            (7),
+                     decipherOnly            (8) }
+             
+
+ + Basic constructor. + + @param usage - the bitwise OR of the Key Usage flags giving the + allowed uses for the key. + e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment) + + + Constructor from a given details. + +

permitted and excluded are Vectors of GeneralSubtree objects.

+ + @param permitted Permitted subtrees + @param excluded Excluded subtrees +
+ + NoticeReference class, used in + CertificatePolicies X509 V3 extensions + (in policy qualifiers). + +
+              NoticeReference ::= Sequence {
+                  organization     DisplayText,
+                  noticeNumbers    Sequence OF Integer }
+            
+             
+ + @see PolicyQualifierInfo + @see PolicyInformation +
+ + Creates a new NoticeReference instance. + + @param organization a String value + @param numbers a Vector value + + + Creates a new NoticeReference instance. + + @param organization a String value + @param noticeNumbers an ASN1EncodableVector value + + + Creates a new NoticeReference instance. + + @param organization displayText + @param noticeNumbers an ASN1EncodableVector value + + + Creates a new NoticeReference instance. +

Useful for reconstructing a NoticeReference + instance from its encodable/encoded form.

+ + @param as an Asn1Sequence value obtained from either + calling @{link ToAsn1Object()} for a NoticeReference + instance or from parsing it from a Der-encoded stream. +
+ + Describe ToAsn1Object method here. + + @return a Asn1Object value + + + ObjectDigestInfo ASN.1 structure used in v2 attribute certificates. + +
+             
+               ObjectDigestInfo ::= SEQUENCE {
+                    digestedObjectType  ENUMERATED {
+                            publicKey            (0),
+                            publicKeyCert        (1),
+                            otherObjectTypes     (2) },
+                                    -- otherObjectTypes MUST NOT
+                                    -- be used in this profile
+                    otherObjectTypeID   OBJECT IDENTIFIER OPTIONAL,
+                    digestAlgorithm     AlgorithmIdentifier,
+                    objectDigest        BIT STRING
+               }
+              
+            
+ +
+ + The public key is hashed. + + + The public key certificate is hashed. + + + An other object is hashed. + + + Constructor from given details. +

+ If digestedObjectType is not {@link #publicKeyCert} or + {@link #publicKey} otherObjectTypeID must be given, + otherwise it is ignored.

+ + @param digestedObjectType The digest object type. + @param otherObjectTypeID The object type ID for + otherObjectDigest. + @param digestAlgorithm The algorithm identifier for the hash. + @param objectDigest The hash value. +
+ + Produce an object suitable for an Asn1OutputStream. + +
+             
+               ObjectDigestInfo ::= SEQUENCE {
+                    digestedObjectType  ENUMERATED {
+                            publicKey            (0),
+                            publicKeyCert        (1),
+                            otherObjectTypes     (2) },
+                                    -- otherObjectTypes MUST NOT
+                                    -- be used in this profile
+                    otherObjectTypeID   OBJECT IDENTIFIER OPTIONAL,
+                    digestAlgorithm     AlgorithmIdentifier,
+                    objectDigest        BIT STRING
+               }
+              
+            
+
+ + The OtherName object. +
+            OtherName ::= SEQUENCE {
+                 type-id    OBJECT IDENTIFIER,
+                 value      [0] EXPLICIT ANY DEFINED BY type-id }
+            
+
+ + OtherName factory method. + @param obj the object used to construct an instance of + OtherName. It must be an instance of OtherName + or ASN1Sequence. + @return the instance of OtherName built from the + supplied object. + @throws java.lang.IllegalArgumentException if the object passed + to the factory is not an instance of OtherName or something that + can be converted into an appropriate ASN1Sequence. + + + Base constructor. + @param typeID the type of the other name. + @param value the ANY object that represents the value. + + + PolicyMappings V3 extension, described in RFC3280. +
+                PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+                  issuerDomainPolicy      CertPolicyId,
+                  subjectDomainPolicy     CertPolicyId }
+             
+ + @see RFC 3280, section 4.2.1.6 +
+ + Creates a new PolicyMappings instance. + + @param seq an Asn1Sequence constructed as specified + in RFC 3280 + + + Creates a new PolicyMappings instance. + + @param mappings a HashMap value that maps + string oids + to other string oids. + + + PolicyQualifierId, used in the CertificatePolicies + X509V3 extension. + +
+                id-qt          OBJECT IDENTIFIER ::=  { id-pkix 2 }
+                id-qt-cps      OBJECT IDENTIFIER ::=  { id-qt 1 }
+                id-qt-unotice  OBJECT IDENTIFIER ::=  { id-qt 2 }
+              PolicyQualifierId ::=
+                   OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+             
+
+ + Policy qualifiers, used in the X509V3 CertificatePolicies + extension. + +
+               PolicyQualifierInfo ::= Sequence {
+                   policyQualifierId  PolicyQualifierId,
+                   qualifier          ANY DEFINED BY policyQualifierId }
+             
+
+ + Creates a new PolicyQualifierInfo instance. + + @param policyQualifierId a PolicyQualifierId value + @param qualifier the qualifier, defined by the above field. + + + Creates a new PolicyQualifierInfo containing a + cPSuri qualifier. + + @param cps the CPS (certification practice statement) uri as a + string. + + + Creates a new PolicyQualifierInfo instance. + + @param as PolicyQualifierInfo X509 structure + encoded as an Asn1Sequence. + + + Returns a Der-encodable representation of this instance. + + @return a Asn1Object value + + + +
+            PrivateKeyUsagePeriod ::= SEQUENCE
+            {
+            notBefore       [0]     GeneralizedTime OPTIONAL,
+            notAfter        [1]     GeneralizedTime OPTIONAL }
+            
+
+
+ + The BiometricData object. +
+            BiometricData  ::=  SEQUENCE {
+                  typeOfBiometricData  TypeOfBiometricData,
+                  hashAlgorithm        AlgorithmIdentifier,
+                  biometricDataHash    OCTET STRING,
+                  sourceDataUri        IA5String OPTIONAL  }
+            
+
+ + The Iso4217CurrencyCode object. +
+            Iso4217CurrencyCode  ::=  CHOICE {
+                  alphabetic              PrintableString (SIZE 3), --Recommended
+                  numeric              INTEGER (1..999) }
+            -- Alphabetic or numeric currency code as defined in ISO 4217
+            -- It is recommended that the Alphabetic form is used
+            
+
+ + The MonetaryValue object. +
+            MonetaryValue  ::=  SEQUENCE {
+                  currency              Iso4217CurrencyCode,
+                  amount               INTEGER,
+                  exponent             INTEGER }
+            -- value = amount * 10^exponent
+            
+
+ + The QCStatement object. +
+            QCStatement ::= SEQUENCE {
+              statementId        OBJECT IDENTIFIER,
+              statementInfo      ANY DEFINED BY statementId OPTIONAL}
+            
+
+ + The SemanticsInformation object. +
+                   SemanticsInformation ::= SEQUENCE {
+                     semanticsIdentifier        OBJECT IDENTIFIER   OPTIONAL,
+                     nameRegistrationAuthorities NameRegistrationAuthorities
+                                                                     OPTIONAL }
+                     (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+                      WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+            
+                 NameRegistrationAuthorities ::=  SEQUENCE SIZE (1..MAX) OF
+                     GeneralName
+             
+
+ + The TypeOfBiometricData object. +
+             TypeOfBiometricData ::= CHOICE {
+               predefinedBiometricType   PredefinedBiometricType,
+               biometricDataOid          OBJECT IDENTIFIER }
+            
+             PredefinedBiometricType ::= INTEGER {
+               picture(0),handwritten-signature(1)}
+               (picture|handwritten-signature)
+             
+
+ + The ReasonFlags object. +
+            ReasonFlags ::= BIT STRING {
+               unused(0),
+               keyCompromise(1),
+               cACompromise(2),
+               affiliationChanged(3),
+               superseded(4),
+               cessationOfOperation(5),
+               certficateHold(6)
+            }
+            
+
+ + @param reasons - the bitwise OR of the Key Reason flags giving the + allowed uses for the key. + + + Implementation of the RoleSyntax object as specified by the RFC3281. + +
+             RoleSyntax ::= SEQUENCE {
+                             roleAuthority  [0] GeneralNames OPTIONAL,
+                             roleName       [1] GeneralName
+                       }
+             
+
+ + RoleSyntax factory method. + @param obj the object used to construct an instance of + RoleSyntax. It must be an instance of RoleSyntax + or Asn1Sequence. + @return the instance of RoleSyntax built from the + supplied object. + @throws java.lang.ArgumentException if the object passed + to the factory is not an instance of RoleSyntax or + Asn1Sequence. + + + Constructor. + @param roleAuthority the role authority of this RoleSyntax. + @param roleName the role name of this RoleSyntax. + + + Constructor. Invoking this constructor is the same as invoking + new RoleSyntax(null, roleName). + @param roleName the role name of this RoleSyntax. + + + Utility constructor. Takes a string argument representing + the role name, builds a GeneralName to hold the role name + and calls the constructor that takes a GeneralName. + @param roleName + + + Constructor that builds an instance of RoleSyntax by + extracting the encoded elements from the Asn1Sequence + object supplied. + @param seq an instance of Asn1Sequence that holds + the encoded elements used to build this RoleSyntax. + + + Gets the role authority of this RoleSyntax. + @return an instance of GeneralNames holding the + role authority of this RoleSyntax. + + + Gets the role name of this RoleSyntax. + @return an instance of GeneralName holding the + role name of this RoleSyntax. + + + Gets the role name as a java.lang.string object. + @return the role name of this RoleSyntax represented as a + string object. + + + Gets the role authority as a string[] object. + @return the role authority of this RoleSyntax represented as a + string[] array. + + + Implementation of the method ToAsn1Object as + required by the superclass ASN1Encodable. + +
+             RoleSyntax ::= SEQUENCE {
+                             roleAuthority  [0] GeneralNames OPTIONAL,
+                             roleName       [1] GeneralName
+                       }
+             
+
+ + This outputs the key in Pkcs1v2 format. +
+                 RSAPublicKey ::= Sequence {
+                                     modulus Integer, -- n
+                                     publicExponent Integer, -- e
+                                 }
+            
+
+ + Structure for a name or pseudonym. + +
+                  NameOrPseudonym ::= CHOICE {
+                	   surAndGivenName SEQUENCE {
+                	     surName DirectoryString,
+                	     givenName SEQUENCE OF DirectoryString 
+                    },
+                	   pseudonym DirectoryString 
+                  }
+            
+ + @see org.bouncycastle.asn1.x509.sigi.PersonalData + +
+ + Constructor from DERString. +

+ The sequence is of type NameOrPseudonym: +

+

+                  NameOrPseudonym ::= CHOICE {
+                	   surAndGivenName SEQUENCE {
+                	     surName DirectoryString,
+                	     givenName SEQUENCE OF DirectoryString
+                    },
+                	   pseudonym DirectoryString
+                  }
+            
+ @param pseudonym pseudonym value to use. +
+ + Constructor from Asn1Sequence. +

+ The sequence is of type NameOrPseudonym: +

+

+                   NameOrPseudonym ::= CHOICE {
+                 	   surAndGivenName SEQUENCE {
+                 	     surName DirectoryString,
+                 	     givenName SEQUENCE OF DirectoryString
+                     },
+                 	   pseudonym DirectoryString
+                   }
+             
+ + @param seq The ASN.1 sequence. +
+ + Constructor from a given details. + + @param pseudonym The pseudonym. + + + Constructor from a given details. + + @param surname The surname. + @param givenName A sequence of directory strings making up the givenName + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                   NameOrPseudonym ::= CHOICE {
+                 	   surAndGivenName SEQUENCE {
+                 	     surName DirectoryString,
+                 	     givenName SEQUENCE OF DirectoryString
+                     },
+                 	   pseudonym DirectoryString
+                   }
+             
+ + @return an Asn1Object +
+ + Contains personal data for the otherName field in the subjectAltNames + extension. +

+

+                 PersonalData ::= SEQUENCE {
+                   nameOrPseudonym NameOrPseudonym,
+                   nameDistinguisher [0] INTEGER OPTIONAL,
+                   dateOfBirth [1] GeneralizedTime OPTIONAL,
+                   placeOfBirth [2] DirectoryString OPTIONAL,
+                   gender [3] PrintableString OPTIONAL,
+                   postalAddress [4] DirectoryString OPTIONAL
+                   }
+             
+ + @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym + @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers +
+ + Constructor from Asn1Sequence. +

+ The sequence is of type NameOrPseudonym: +

+

+                 PersonalData ::= SEQUENCE {
+                   nameOrPseudonym NameOrPseudonym,
+                   nameDistinguisher [0] INTEGER OPTIONAL,
+                   dateOfBirth [1] GeneralizedTime OPTIONAL,
+                   placeOfBirth [2] DirectoryString OPTIONAL,
+                   gender [3] PrintableString OPTIONAL,
+                   postalAddress [4] DirectoryString OPTIONAL
+                   }
+             
+ + @param seq The ASN.1 sequence. +
+ + Constructor from a given details. + + @param nameOrPseudonym Name or pseudonym. + @param nameDistinguisher Name distinguisher. + @param dateOfBirth Date of birth. + @param placeOfBirth Place of birth. + @param gender Gender. + @param postalAddress Postal Address. + + + Produce an object suitable for an Asn1OutputStream. +

+ Returns: +

+

+                 PersonalData ::= SEQUENCE {
+                   nameOrPseudonym NameOrPseudonym,
+                   nameDistinguisher [0] INTEGER OPTIONAL,
+                   dateOfBirth [1] GeneralizedTime OPTIONAL,
+                   placeOfBirth [2] DirectoryString OPTIONAL,
+                   gender [3] PrintableString OPTIONAL,
+                   postalAddress [4] DirectoryString OPTIONAL
+                   }
+             
+ + @return an Asn1Object +
+ + Object Identifiers of SigI specifciation (German Signature Law + Interoperability specification). + + + Key purpose IDs for German SigI (Signature Interoperability + Specification) + + + Certificate policy IDs for German SigI (Signature Interoperability + Specification) + + + Other Name IDs for German SigI (Signature Interoperability Specification) + + + To be used for for the generation of directory service certificates. + + + ID for PersonalData + + + Certificate is conform to german signature law. + + + This extension may contain further X.500 attributes of the subject. See also + RFC 3039. + +
+                 SubjectDirectoryAttributes ::= Attributes
+                 Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+                 Attribute ::= SEQUENCE
+                 {
+                   type AttributeType
+                   values SET OF AttributeValue
+                 }
+            
+                 AttributeType ::= OBJECT IDENTIFIER
+                 AttributeValue ::= ANY DEFINED BY AttributeType
+             
+ + @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers. +
+ + Constructor from Asn1Sequence. + + The sequence is of type SubjectDirectoryAttributes: + +
+                  SubjectDirectoryAttributes ::= Attributes
+                  Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+                  Attribute ::= SEQUENCE
+                  {
+                    type AttributeType
+                    values SET OF AttributeValue
+                  }
+            
+                  AttributeType ::= OBJECT IDENTIFIER
+                  AttributeValue ::= ANY DEFINED BY AttributeType
+             
+ + @param seq + The ASN.1 sequence. +
+ + Constructor from an ArrayList of attributes. + + The ArrayList consists of attributes of type {@link Attribute Attribute} + + @param attributes The attributes. + + + + Produce an object suitable for an Asn1OutputStream. + + Returns: + +
+                  SubjectDirectoryAttributes ::= Attributes
+                  Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+                  Attribute ::= SEQUENCE
+                  {
+                    type AttributeType
+                    values SET OF AttributeValue
+                  }
+            
+                  AttributeType ::= OBJECT IDENTIFIER
+                  AttributeValue ::= ANY DEFINED BY AttributeType
+             
+ + @return a DERObject +
+ + @return Returns the attributes. + + + The SubjectKeyIdentifier object. +
+            SubjectKeyIdentifier::= OCTET STRING
+            
+
+ + Calculates the keyIdentifier using a SHA1 hash over the BIT STRING + from SubjectPublicKeyInfo as defined in RFC3280. + + @param spki the subject public key info. + + + Return a RFC 3280 type 1 key identifier. As in: +
+            (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+            value of the BIT STRING subjectPublicKey (excluding the tag,
+            length, and number of unused bits).
+            
+ @param keyInfo the key info object containing the subjectPublicKey field. + @return the key identifier. +
+ + Return a RFC 3280 type 2 key identifier. As in: +
+            (2) The keyIdentifier is composed of a four bit type field with
+            the value 0100 followed by the least significant 60 bits of the
+            SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+            
+ @param keyInfo the key info object containing the subjectPublicKey field. + @return the key identifier. +
+ + The object that contains the public key stored in a certficate. +

+ The GetEncoded() method in the public keys in the JCE produces a DER + encoded one of these.

+
+ + for when the public key is an encoded object - if the bitstring + can't be decoded this routine raises an IOException. + + @exception IOException - if the bit string doesn't represent a Der + encoded object. + + + for when the public key is an encoded object - if the bitstring + can't be decoded this routine raises an IOException. + + @exception IOException - if the bit string doesn't represent a Der + encoded object. + + + for when the public key is raw bits... + + + Produce an object suitable for an Asn1OutputStream. +
+            SubjectPublicKeyInfo ::= Sequence {
+                                     algorithm AlgorithmIdentifier,
+                                     publicKey BIT STRING }
+            
+
+ + Target structure used in target information extension for attribute + certificates from RFC 3281. + +
+                Target  ::= CHOICE {
+                  targetName          [0] GeneralName,
+                  targetGroup         [1] GeneralName,
+                  targetCert          [2] TargetCert
+                }
+            
+ +

+ The targetCert field is currently not supported and must not be used + according to RFC 3281.

+
+ + Creates an instance of a Target from the given object. +

+ obj can be a Target or a {@link Asn1TaggedObject}

+ + @param obj The object. + @return A Target instance. + @throws ArgumentException if the given object cannot be + interpreted as Target. +
+ + Constructor from Asn1TaggedObject. + + @param tagObj The tagged object. + @throws ArgumentException if the encoding is wrong. + + + Constructor from given details. +

+ Exactly one of the parameters must be not null.

+ + @param type the choice type to apply to the name. + @param name the general name. + @throws ArgumentException if type is invalid. +
+ + @return Returns the targetGroup. + + + @return Returns the targetName. + + + Produce an object suitable for an Asn1OutputStream. + + Returns: + +
+                Target  ::= CHOICE {
+                  targetName          [0] GeneralName,
+                  targetGroup         [1] GeneralName,
+                  targetCert          [2] TargetCert
+                }
+            
+ + @return an Asn1Object +
+ + Target information extension for attributes certificates according to RFC + 3281. + +
+                      SEQUENCE OF Targets
+            
+ +
+ + Creates an instance of a TargetInformation from the given object. +

+ obj can be a TargetInformation or a {@link Asn1Sequence}

+ + @param obj The object. + @return A TargetInformation instance. + @throws ArgumentException if the given object cannot be interpreted as TargetInformation. +
+ + Constructor from a Asn1Sequence. + + @param seq The Asn1Sequence. + @throws ArgumentException if the sequence does not contain + correctly encoded Targets elements. + + + Returns the targets in this target information extension. +

+ The ArrayList is cloned before it is returned.

+ + @return Returns the targets. +
+ + Constructs a target information from a single targets element. + According to RFC 3281 only one targets element must be produced. + + @param targets A Targets instance. + + + According to RFC 3281 only one targets element must be produced. If + multiple targets are given they must be merged in + into one targets element. + + @param targets An array with {@link Targets}. + + + Produce an object suitable for an Asn1OutputStream. + + Returns: + +
+                     SEQUENCE OF Targets
+            
+ +

+ According to RFC 3281 only one targets element must be produced. If + multiple targets are given in the constructor they are merged into one + targets element. If this was produced from a + {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.

+ + @return an Asn1Object +
+ + Targets structure used in target information extension for attribute + certificates from RFC 3281. + +
+                       Targets ::= SEQUENCE OF Target
+                      
+                       Target  ::= CHOICE {
+                         targetName          [0] GeneralName,
+                         targetGroup         [1] GeneralName,
+                         targetCert          [2] TargetCert
+                       }
+                      
+                       TargetCert  ::= SEQUENCE {
+                         targetCertificate    IssuerSerial,
+                         targetName           GeneralName OPTIONAL,
+                         certDigestInfo       ObjectDigestInfo OPTIONAL
+                       }
+            
+ + @see org.bouncycastle.asn1.x509.Target + @see org.bouncycastle.asn1.x509.TargetInformation +
+ + Creates an instance of a Targets from the given object. +

+ obj can be a Targets or a {@link Asn1Sequence}

+ + @param obj The object. + @return A Targets instance. + @throws ArgumentException if the given object cannot be interpreted as Target. +
+ + Constructor from Asn1Sequence. + + @param targets The ASN.1 SEQUENCE. + @throws ArgumentException if the contents of the sequence are + invalid. + + + Constructor from given targets. +

+ The ArrayList is copied.

+ + @param targets An ArrayList of {@link Target}s. + @see Target + @throws ArgumentException if the ArrayList contains not only Targets. +
+ + Returns the targets in an ArrayList. +

+ The ArrayList is cloned before it is returned.

+ + @return Returns the targets. +
+ + Produce an object suitable for an Asn1OutputStream. + + Returns: + +
+                       Targets ::= SEQUENCE OF Target
+            
+ + @return an Asn1Object +
+ + The TbsCertificate object. +
+            TbsCertificate ::= Sequence {
+                 version          [ 0 ]  Version DEFAULT v1(0),
+                 serialNumber            CertificateSerialNumber,
+                 signature               AlgorithmIdentifier,
+                 issuer                  Name,
+                 validity                Validity,
+                 subject                 Name,
+                 subjectPublicKeyInfo    SubjectPublicKeyInfo,
+                 issuerUniqueID    [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+                 subjectUniqueID   [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+                 extensions        [ 3 ] Extensions OPTIONAL
+                 }
+            
+

+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class + will parse them, but you really shouldn't be creating new ones.

+
+ + PKIX RFC-2459 - TbsCertList object. +
+            TbsCertList  ::=  Sequence  {
+                 version                 Version OPTIONAL,
+                                              -- if present, shall be v2
+                 signature               AlgorithmIdentifier,
+                 issuer                  Name,
+                 thisUpdate              Time,
+                 nextUpdate              Time OPTIONAL,
+                 revokedCertificates     Sequence OF Sequence  {
+                      userCertificate         CertificateSerialNumber,
+                      revocationDate          Time,
+                      crlEntryExtensions      Extensions OPTIONAL
+                                                    -- if present, shall be v2
+                                           }  OPTIONAL,
+                 crlExtensions           [0]  EXPLICIT Extensions OPTIONAL
+                                                    -- if present, shall be v2
+                                           }
+            
+
+ + creates a time object from a given date - if the date is between 1950 + and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime + is used. + + + + Return our time as DateTime. + + A date time. + + + Produce an object suitable for an Asn1OutputStream. +
+            Time ::= CHOICE {
+                        utcTime        UTCTime,
+                        generalTime    GeneralizedTime }
+            
+
+ + UserNotice class, used in + CertificatePolicies X509 extensions (in policy + qualifiers). +
+             UserNotice ::= Sequence {
+                  noticeRef        NoticeReference OPTIONAL,
+                  explicitText     DisplayText OPTIONAL}
+            
+             
+ + @see PolicyQualifierId + @see PolicyInformation +
+ + Creates a new UserNotice instance. + + @param noticeRef a NoticeReference value + @param explicitText a DisplayText value + + + Creates a new UserNotice instance. + + @param noticeRef a NoticeReference value + @param str the explicitText field as a string. + + + Creates a new UserNotice instance. +

Useful from reconstructing a UserNotice instance + from its encodable/encoded form. + + @param as an ASN1Sequence value obtained from either + calling @{link toASN1Object()} for a UserNotice + instance or from parsing it from a DER-encoded stream.

+
+ + Generator for Version 1 TbsCertificateStructures. +
+             TbsCertificate ::= Sequence {
+                  version          [ 0 ]  Version DEFAULT v1(0),
+                  serialNumber            CertificateSerialNumber,
+                  signature               AlgorithmIdentifier,
+                  issuer                  Name,
+                  validity                Validity,
+                  subject                 Name,
+                  subjectPublicKeyInfo    SubjectPublicKeyInfo,
+                  }
+             
+ +
+ + Generator for Version 2 AttributeCertificateInfo +
+             AttributeCertificateInfo ::= Sequence {
+                   version              AttCertVersion -- version is v2,
+                   holder               Holder,
+                   issuer               AttCertIssuer,
+                   signature            AlgorithmIdentifier,
+                   serialNumber         CertificateSerialNumber,
+                   attrCertValidityPeriod   AttCertValidityPeriod,
+                   attributes           Sequence OF Attr,
+                   issuerUniqueID       UniqueIdentifier OPTIONAL,
+                   extensions           Extensions OPTIONAL
+             }
+             
+ +
+ + @param attribute + + + Produce an object suitable for an Asn1OutputStream. +
+             V2Form ::= Sequence {
+                  issuerName            GeneralNames  OPTIONAL,
+                  baseCertificateID     [0] IssuerSerial  OPTIONAL,
+                  objectDigestInfo      [1] ObjectDigestInfo  OPTIONAL
+                    -- issuerName MUST be present in this profile
+                    -- baseCertificateID and objectDigestInfo MUST NOT
+                    -- be present in this profile
+             }
+            
+
+ + Generator for Version 2 TbsCertList structures. +
+              TbsCertList  ::=  Sequence  {
+                   version                 Version OPTIONAL,
+                                                -- if present, shall be v2
+                   signature               AlgorithmIdentifier,
+                   issuer                  Name,
+                   thisUpdate              Time,
+                   nextUpdate              Time OPTIONAL,
+                   revokedCertificates     Sequence OF Sequence  {
+                        userCertificate         CertificateSerialNumber,
+                        revocationDate          Time,
+                        crlEntryExtensions      Extensions OPTIONAL
+                                                      -- if present, shall be v2
+                                             }  OPTIONAL,
+                   crlExtensions           [0]  EXPLICIT Extensions OPTIONAL
+                                                      -- if present, shall be v2
+                                             }
+             
+ + Note: This class may be subject to change +
+ + Generator for Version 3 TbsCertificateStructures. +
+             TbsCertificate ::= Sequence {
+                  version          [ 0 ]  Version DEFAULT v1(0),
+                  serialNumber            CertificateSerialNumber,
+                  signature               AlgorithmIdentifier,
+                  issuer                  Name,
+                  validity                Validity,
+                  subject                 Name,
+                  subjectPublicKeyInfo    SubjectPublicKeyInfo,
+                  issuerUniqueID    [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+                  subjectUniqueID   [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+                  extensions        [ 3 ] Extensions OPTIONAL
+                  }
+             
+ +
+ + an X509Certificate structure. +
+             Certificate ::= Sequence {
+                 tbsCertificate          TbsCertificate,
+                 signatureAlgorithm      AlgorithmIdentifier,
+                 signature               BIT STRING
+             }
+            
+
+ + The default converter for X509 DN entries when going from their + string value to ASN.1 strings. + + + Apply default conversion for the given value depending on the oid + and the character range of the value. + + @param oid the object identifier for the DN entry + @param value the value associated with it + @return the ASN.1 equivalent for the string value. + + + an object for the elements in the X.509 V3 extension block. + + + Convert the value of the passed in extension to an object. + The extension to parse. + The object the value string contains. + If conversion is not possible. + + + Subject Directory Attributes + + + Subject Key Identifier + + + Key Usage + + + Private Key Usage Period + + + Subject Alternative Name + + + Issuer Alternative Name + + + Basic Constraints + + + CRL Number + + + Reason code + + + Hold Instruction Code + + + Invalidity Date + + + Delta CRL indicator + + + Issuing Distribution Point + + + Certificate Issuer + + + Name Constraints + + + CRL Distribution Points + + + Certificate Policies + + + Policy Mappings + + + Authority Key Identifier + + + Policy Constraints + + + Extended Key Usage + + + Freshest CRL + + + Inhibit Any Policy + + + Authority Info Access + + + Subject Info Access + + + Logo Type + + + BiometricInfo + + + QCStatements + + + Audit identity extension in attribute certificates. + + + NoRevAvail extension in attribute certificates. + + + TargetInformation extension in attribute certificates. + + + Expired Certificates on CRL extension + + + Constructor from Asn1Sequence. + + the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString) + + + constructor from a table of extensions. +

+ it's is assumed the table contains Oid/string pairs.

+
+ + Constructor from a table of extensions with ordering. +

+ It's is assumed the table contains Oid/string pairs.

+
+ + Constructor from two vectors + + @param objectIDs an ArrayList of the object identifiers. + @param values an ArrayList of the extension values. + + + constructor from a table of extensions. +

+ it's is assumed the table contains Oid/string pairs.

+
+ + Constructor from a table of extensions with ordering. +

+ It's is assumed the table contains Oid/string pairs.

+
+ + Constructor from two vectors + + @param objectIDs an ArrayList of the object identifiers. + @param values an ArrayList of the extension values. + + + return an Enumeration of the extension field's object ids. + + + return the extension represented by the object identifier + passed in. + + @return the extension if it's present, null otherwise. + + + return the parsed value of the extension represented by the object identifier + passed in. + + @return the parsed value of the extension if it's present, null otherwise. + + +
+                 Extensions        ::=   SEQUENCE SIZE (1..MAX) OF Extension
+            
+                 Extension         ::=   SEQUENCE {
+                    extnId            EXTENSION.&id ({ExtensionSet}),
+                    critical          BOOLEAN DEFAULT FALSE,
+                    extnValue         OCTET STRING }
+             
+
+ + Generator for X.509 extensions + + + Reset the generator + + + + Add an extension with the given oid and the passed in value to be included + in the OCTET STRING associated with the extension. + + OID for the extension. + True if critical, false otherwise. + The ASN.1 object to be included in the extension. + + + + Add an extension with the given oid and the passed in byte array to be wrapped + in the OCTET STRING associated with the extension. + + OID for the extension. + True if critical, false otherwise. + The byte array to be wrapped. + + + Return true if there are no extension present in this generator. + True if empty, false otherwise + + + Generate an X509Extensions object based on the current state of the generator. + An X509Extensions object + + +
+                 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+            
+                 RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+            
+                 AttributeTypeAndValue ::= SEQUENCE {
+                                               type  OBJECT IDENTIFIER,
+                                               value ANY }
+             
+
+ + country code - StringType(SIZE(2)) + + + organization - StringType(SIZE(1..64)) + + + organizational unit name - StringType(SIZE(1..64)) + + + Title + + + common name - StringType(SIZE(1..64)) + + + street - StringType(SIZE(1..64)) + + + device serial number name - StringType(SIZE(1..64)) + + + locality name - StringType(SIZE(1..64)) + + + state, or province name - StringType(SIZE(1..64)) + + + Naming attributes of type X520name + + + businessCategory - DirectoryString(SIZE(1..128) + + + postalCode - DirectoryString(SIZE(1..40) + + + dnQualifier - DirectoryString(SIZE(1..64) + + + RFC 3039 Pseudonym - DirectoryString(SIZE(1..64) + + + RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z + + + RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128) + + + RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f" + + + RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166 + codes only + + + RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166 + codes only + + + ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64) + + + RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF + DirectoryString(SIZE(1..30)) + + + RFC 2256 dmdName + + + id-at-telephoneNumber + + + id-at-organizationIdentifier + + + id-at-name + + + Email address (RSA PKCS#9 extension) - IA5String. +

Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.

+
+ + more from PKCS#9 + + + email address in Verisign certificates + + + LDAP User id. + + + determines whether or not strings should be processed and printed + from back to front. + + + default look up table translating OID values into their common symbols following + the convention in RFC 2253 with a few extras + + + look up table translating OID values into their common symbols following the convention in RFC 2253 + + + look up table translating OID values into their common symbols following the convention in RFC 1779 + + + + look up table translating common symbols into their OIDS. + + + Return a X509Name based on the passed in tagged object. + + @param obj tag object holding name. + @param explicitly true if explicitly tagged false otherwise. + @return the X509Name + + + Constructor from Asn1Sequence + + the principal will be a list of constructed sets, each containing an (OID, string) pair. + + + Constructor from a table of attributes with ordering. +

+ it's is assumed the table contains OID/string pairs, and the contents + of the table are copied into an internal table as part of the + construction process. The ordering ArrayList should contain the OIDs + in the order they are meant to be encoded or printed in ToString.

+
+ + Constructor from a table of attributes with ordering. +

+ it's is assumed the table contains OID/string pairs, and the contents + of the table are copied into an internal table as part of the + construction process. The ordering ArrayList should contain the OIDs + in the order they are meant to be encoded or printed in ToString.

+

+ The passed in converter will be used to convert the strings into their + ASN.1 counterparts.

+
+ + Takes two vectors one of the oids and the other of the values. + + + Takes two vectors one of the oids and the other of the values. +

+ The passed in converter will be used to convert the strings into their + ASN.1 counterparts.

+
+ + Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or + some such, converting it into an ordered set of name attributes. + + + Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or + some such, converting it into an ordered set of name attributes with each + string value being converted to its associated ASN.1 type using the passed + in converter. + + + Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or + some such, converting it into an ordered set of name attributes. If reverse + is true, create the encoded version of the sequence starting from the + last element in the string. + + + Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or + some such, converting it into an ordered set of name attributes with each + string value being converted to its associated ASN.1 type using the passed + in converter. If reverse is true the ASN.1 sequence representing the DN will + be built by starting at the end of the string, rather than the start. + + + Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or + some such, converting it into an ordered set of name attributes. lookUp + should provide a table of lookups, indexed by lowercase only strings and + yielding a DerObjectIdentifier, other than that OID. and numeric oids + will be processed automatically. +
+ If reverse is true, create the encoded version of the sequence + starting from the last element in the string. + @param reverse true if we should start scanning from the end (RFC 2553). + @param lookUp table of names and their oids. + @param dirName the X.500 string to be parsed. +
+ + Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or + some such, converting it into an ordered set of name attributes. lookUp + should provide a table of lookups, indexed by lowercase only strings and + yielding a DerObjectIdentifier, other than that OID. and numeric oids + will be processed automatically. The passed in converter is used to convert the + string values to the right of each equals sign to their ASN.1 counterparts. +
+ @param reverse true if we should start scanning from the end, false otherwise. + @param lookUp table of names and oids. + @param dirName the string dirName + @param converter the converter to convert string values into their ASN.1 equivalents +
+ + return an IList of the oids in the name, in the order they were found. + + + return an IList of the values found in the name, in the order they + were found. + + + return an IList of the values found in the name, in the order they + were found, with the DN label corresponding to passed in oid. + + + The X509Name object to test equivalency against. + If true, the order of elements must be the same, + as well as the values associated with each element. + + + test for equivalence - note: case is ignored. + + + convert the structure to a string - if reverse is true the + oids and values are listed out starting with the last element + in the sequence (ala RFC 2253), otherwise the string will begin + with the first element of the structure. If no string definition + for the oid is found in oidSymbols the string value of the oid is + added. Two standard symbol tables are provided DefaultSymbols, and + RFC2253Symbols as part of this class. + + @param reverse if true start at the end of the sequence and work back. + @param oidSymbols look up table strings for oids. + + + * It turns out that the number of standard ways the fields in a DN should be + * encoded into their ASN.1 counterparts is rapidly approaching the + * number of machines on the internet. By default the X509Name class + * will produce UTF8Strings in line with the current recommendations (RFC 3280). + *

+ * An example of an encoder look like below: + *

+                 * public class X509DirEntryConverter
+                 *     : X509NameEntryConverter
+                 * {
+                 *     public Asn1Object GetConvertedValue(
+                 *         DerObjectIdentifier  oid,
+                 *         string               value)
+                 *     {
+                 *         if (str.Length() != 0 && str.charAt(0) == '#')
+                 *         {
+                 *             return ConvertHexEncoded(str, 1);
+                 *         }
+                 *         if (oid.Equals(EmailAddress))
+                 *         {
+                 *             return new DerIA5String(str);
+                 *         }
+                 *         else if (CanBePrintable(str))
+                 *         {
+                 *             return new DerPrintableString(str);
+                 *         }
+                 *         else if (CanBeUTF8(str))
+                 *         {
+                 *             return new DerUtf8String(str);
+                 *         }
+                 *         else
+                 *         {
+                 *             return new DerBmpString(str);
+                 *         }
+                 *     }
+                 * }
+            	 * 
+ *

+
+ + Convert an inline encoded hex string rendition of an ASN.1 + object back into its corresponding ASN.1 object. + + @param str the hex encoded object + @param off the index at which the encoding starts + @return the decoded object + + + return true if the passed in string can be represented without + loss as a PrintableString, false otherwise. + + + Convert the passed in string value into the appropriate ASN.1 + encoded object. + + @param oid the oid associated with the value in the DN. + @param value the value of the particular DN component. + @return the ASN.1 equivalent for the value. + + + class for breaking up an X500 Name into it's component tokens, ala + java.util.StringTokenizer. We need this class as some of the + lightweight Java environment don't support classes like + StringTokenizer. + + + A general class that reads all X9.62 style EC curve tables. + + + return a X9ECParameters object representing the passed in named + curve. The routine returns null if the curve is not present. + + @param name the name of the curve requested + @return an X9ECParameters object or null if the curve is not available. + + + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + + + return a X9ECParameters object representing the passed in named + curve. + + @param oid the object id of the curve requested + @return an X9ECParameters object or null if the curve is not available. + + + return an enumeration of the names of the available curves. + + @return an enumeration of the names of the available curves. + + + ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See + RFC 2631, or X9.42, for further details. + + + Produce an object suitable for an Asn1OutputStream. +
+             KeySpecificInfo ::= Sequence {
+                 algorithm OBJECT IDENTIFIER,
+                 counter OCTET STRING SIZE (4..4)
+             }
+            
+
+ + ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See + RFC 2631, or X9.42, for further details. + + + Produce an object suitable for an Asn1OutputStream. +
+             OtherInfo ::= Sequence {
+                 keyInfo KeySpecificInfo,
+                 partyAInfo [0] OCTET STRING OPTIONAL,
+                 suppPubInfo [2] OCTET STRING
+             }
+            
+
+ + table of the current named curves defined in X.962 EC-DSA. + + + return the X9ECParameters object for the named curve represented by + the passed in object identifier. Null if the curve isn't present. + + @param oid an object identifier representing a named curve, if present. + + + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + + + return the named curve name represented by the given object identifier. + + + returns an enumeration containing the name strings for curves + contained in this structure. + + + Produce an object suitable for an Asn1OutputStream. +
+            Parameters ::= CHOICE {
+               ecParameters ECParameters,
+               namedCurve   CURVES.&id({CurveNames}),
+               implicitlyCA Null
+            }
+            
+
+ + ASN.1 def for Elliptic-Curve Curve structure. See + X9.62, for further details. + + + Produce an object suitable for an Asn1OutputStream. +
+             Curve ::= Sequence {
+                 a               FieldElement,
+                 b               FieldElement,
+                 seed            BIT STRING      OPTIONAL
+             }
+            
+
+ + ASN.1 def for Elliptic-Curve ECParameters structure. See + X9.62, for further details. + + + Return the ASN.1 entry representing the Curve. + + @return the X9Curve for the curve in these parameters. + + + Return the ASN.1 entry representing the FieldID. + + @return the X9FieldID for the FieldID in these parameters. + + + Return the ASN.1 entry representing the base point G. + + @return the X9ECPoint for the base point in these parameters. + + + Produce an object suitable for an Asn1OutputStream. +
+             ECParameters ::= Sequence {
+                 version         Integer { ecpVer1(1) } (ecpVer1),
+                 fieldID         FieldID {{FieldTypes}},
+                 curve           X9Curve,
+                 base            X9ECPoint,
+                 order           Integer,
+                 cofactor        Integer OPTIONAL
+             }
+            
+
+ + class for describing an ECPoint as a Der object. + + + Produce an object suitable for an Asn1OutputStream. +
+             ECPoint ::= OCTET STRING
+            
+

+ Octet string produced using ECPoint.GetEncoded().

+
+ + Class for processing an ECFieldElement as a DER object. + + + Produce an object suitable for an Asn1OutputStream. +
+             FieldElement ::= OCTET STRING
+            
+

+

    +
  1. if q is an odd prime then the field element is + processed as an Integer and converted to an octet string + according to x 9.62 4.3.1.
  2. +
  3. if q is 2m then the bit string + contained in the field element is converted into an octet + string with the same ordering padded at the front if necessary. +
  4. +
+

+
+ + ASN.1 def for Elliptic-Curve Field ID structure. See + X9.62, for further details. + + + Constructor for elliptic curves over prime fields + F2. + @param primeP The prime p defining the prime field. + + + Constructor for elliptic curves over binary fields + F2m. + @param m The exponent m of + F2m. + @param k1 The integer k1 where xm + + xk1 + 1 + represents the reduction polynomial f(z). + + + Constructor for elliptic curves over binary fields + F2m. + @param m The exponent m of + F2m. + @param k1 The integer k1 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param k2 The integer k2 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param k3 The integer k3 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z).. + + + Produce a Der encoding of the following structure. +
+             FieldID ::= Sequence {
+                 fieldType       FIELD-ID.&id({IOSet}),
+                 parameters      FIELD-ID.&Type({IOSet}{@fieldType})
+             }
+            
+
+ + id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) x9-57 (10040) x9cm(4) 3 } + + + X9.63 + + + X9.42 + + + reader for Base64 armored objects - read the headers and then start returning + bytes when the data is reached. An IOException is thrown if the CRC check + fails. + + + decode the base 64 encoded input data. + + @return the offset the data starts in out. + + + Create a stream for reading a PGP armoured message, parsing up to a header + and then reading the data that follows. + + @param input + + + Create an armoured input stream which will assume the data starts + straight away, or parse for headers first depending on the value of + hasHeaders. + + @param input + @param hasHeaders true if headers are to be looked for, false otherwise. + + + @return true if we are inside the clear text section of a PGP + signed message. + + + @return true if the stream is actually at end of file. + + + Return the armor header line (if there is one) + @return the armor header line, null if none present. + + + Return the armor headers (the lines after the armor header line), + @return an array of armor headers, null if there aren't any. + + + Basic output stream. + + + encode the input data producing a base 64 encoded byte array. + + + Set an additional header entry. Any current value(s) under the same name will be + replaced by the new one. A null value will clear the entry for name. * + @param name the name of the header entry. + @param v the value of the header entry. + + + Set an additional header entry. The current value(s) will continue to exist together + with the new one. Adding a null value has no effect. + + @param name the name of the header entry. + @param value the value of the header entry. + + + Reset the headers to only contain a Version string (if one is present). + + + Start a clear text signed message. + @param hashAlgorithm + + + Note: Close() does not close the underlying stream. So it is possible to write + multiple objects using armoring to a single stream. + + + Basic type for a image attribute packet. + + + Reader for PGP objects. + + + Returns the next packet tag in the stream. + + + + A stream that overlays our input stream, allowing the user to only read a segment of it. + NB: dataLength will be negative if the segment length is in the upper range above 2**31. + + + + Base class for a PGP object. + + + Basic output stream. + + + Create a stream representing a general packet. + Output stream to write to. + + + Create a stream representing an old style partial object. + Output stream to write to. + The packet tag for the object. + + + Create a stream representing a general packet. + Output stream to write to. + Packet tag. + Size of chunks making up the packet. + If true, the header is written out in old format. + + + Create a new style partial input stream buffered into chunks. + Output stream to write to. + Packet tag. + Size of chunks making up the packet. + + + Create a new style partial input stream buffered into chunks. + Output stream to write to. + Packet tag. + Buffer to use for collecting chunks. + + + Flush the underlying stream. + + + Finish writing out the current packet without closing the underlying stream. + + + Generic compressed data object. + + + The algorithm tag value. + + + Basic tags for compression algorithms. + + + Basic type for a PGP packet. + + + Base class for a DSA public key. + + + The stream to read the packet from. + + + The format, as a string, always "PGP". + + + Return the standard PGP encoding of the key. + + + Base class for a DSA secret key. + + + @param in + + + The format, as a string, always "PGP". + + + Return the standard PGP encoding of the key. + + + @return x + + + Base class for an ECDH Public Key. + + + The stream to read the packet from. + + + Base class for an ECDSA Public Key. + + + The stream to read the packet from. + + + Base class for an EC Public Key. + + + The stream to read the packet from. + + + The format, as a string, always "PGP". + + + Return the standard PGP encoding of the key. + + + Base class for an EC Secret Key. + + + The format, as a string, always "PGP". + + + Return the standard PGP encoding of the key. + + + Base class for an ElGamal public key. + + + The format, as a string, always "PGP". + + + Return the standard PGP encoding of the key. + + + Base class for an ElGamal secret key. + + + @param in + + + @param x + + + The format, as a string, always "PGP". + + + Return the standard PGP encoding of the key. + + + Basic packet for an experimental packet. + + + Basic tags for hash algorithms. + + + Base interface for a PGP key. + + + + The base format for this key - in the case of the symmetric keys it will generally + be raw indicating that the key is just a straight byte representation, for an asymmetric + key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format. + + "RAW" or "PGP". + + + Note: you can only read from this once... + + + Generic literal data packet. + + + The format tag value. + + + The modification time of the file in milli-seconds (since Jan 1, 1970 UTC) + + + Basic type for a marker packet. + + + Basic packet for a modification detection code packet. + + + A multiple precision integer + + + Generic signature object + + + The encryption algorithm tag. + + + The hash algorithm tag. + + + Basic PGP packet tag types. + + + Public Key Algorithm tag numbers. + + + Basic packet for a PGP public key. + + + Basic packet for a PGP public key. + + + Construct a version 4 public key packet. + + + Basic packet for a PGP public subkey + + + Construct a version 4 public subkey packet. + + + Base class for an RSA public key. + + + Construct an RSA public key from the passed in stream. + + + The modulus. + The public exponent. + + + The format, as a string, always "PGP". + + + Return the standard PGP encoding of the key. + + + Base class for an RSA secret (or priate) key. + + + The format, as a string, always "PGP". + + + Return the standard PGP encoding of the key. + + + The string to key specifier class. + + + The hash algorithm. + + + The IV for the key generation algorithm. + + + The iteration count + + + The protection mode - only if GnuDummyS2K + + + Basic packet for a PGP secret key. + + + Basic packet for a PGP secret key. + + + Generic signature packet. + + + Generate a version 4 signature packet. + + @param signatureType + @param keyAlgorithm + @param hashAlgorithm + @param hashedData + @param unhashedData + @param fingerprint + @param signature + + + Generate a version 2/3 signature packet. + + @param signatureType + @param keyAlgorithm + @param hashAlgorithm + @param fingerprint + @param signature + + + return the keyId + @return the keyId that created the signature. + + + return the signature trailer that must be included with the data + to reconstruct the signature + + @return byte[] + + + * return the signature as a set of integers - note this is normalised to be the + * ASN.1 encoding of what appears in the signature packet. + + + Return the byte encoding of the signature section. + @return uninterpreted signature bytes. + + + Return the creation time in milliseconds since 1 Jan., 1970 UTC. + + + Basic type for a PGP Signature sub-packet. + + + Return the generic data making up the packet. + + + reader for signature sub-packets + + + Basic PGP signature sub-packet tag types. + + + Packet embedded signature + + + packet giving signature creation time. + + + packet giving signature expiration time. + + + Identifier for the modification detection feature + + + Returns if modification detection is supported. + + + Returns if a particular feature is supported. + + + Sets support for a particular feature. + + + packet giving signature creation time. + + + packet giving time after creation at which the key expires. + + + Return the number of seconds after creation time a key is valid for. + + @return second count for key validity. + + + Packet holding the key flag values. + + + + Return the flag values contained in the first 4 octets (note: at the moment + the standard only uses the first one). + + + + Class provided a NotationData object according to + RFC2440, Chapter 5.2.3.15. Notation Data + + + packet giving signature creation time. + + + packet giving whether or not the signature is signed using the primary user ID for the key. + + + packet giving whether or not is revocable. + + + packet giving signature creation time. + + + packet giving signature expiration time. + + + return time in seconds before signature expires after creation time. + + + packet giving the User ID of the signer. + + + packet giving trust. + + + + Represents revocation key OpenPGP signature sub packet. + + + + + Represents revocation reason OpenPGP signature sub packet. + + + + Basic type for a symmetric key encrypted packet. + + + Basic tags for symmetric key algorithms + + + Basic type for a symmetric encrypted session key packet + + + @return int + + + @return S2k + + + @return byte[] + + + @return int + + + Basic type for a trust packet. + + + Basic type for a user attribute packet. + + + Basic type for a user attribute sub-packet. + + + return the generic data making up the packet. + + + reader for user attribute sub-packets + + + Basic PGP user attribute sub-packet tag types. + + + Basic type for a user ID packet. + + + Compressed data objects + + + The algorithm used for compression + + + Get the raw input stream contained in the object. + + + Return an uncompressed input stream which allows reading of the compressed data. + + + Class for producing compressed data packets. + + + +

+ Return an output stream which will save the data being written to + the compressed object. +

+

+ The stream created can be closed off by either calling Close() + on the stream or Close() on the generator. Closing the returned + stream does not close off the Stream parameter outStr. +

+
+ Stream to be used for output. + A Stream for output of the compressed data. + + + +
+ + +

+ Return an output stream which will compress the data as it is written to it. + The stream will be written out in chunks according to the size of the passed in buffer. +

+

+ The stream created can be closed off by either calling Close() + on the stream or Close() on the generator. Closing the returned + stream does not close off the Stream parameter outStr. +

+

+ Note: if the buffer is not a power of 2 in length only the largest power of 2 + bytes worth of the buffer will be used. +

+

+ Note: using this may break compatibility with RFC 1991 compliant tools. + Only recent OpenPGP implementations are capable of accepting these streams. +

+
+ Stream to be used for output. + The buffer to use. + A Stream for output of the compressed data. + + + + +
+ + Close the compressed object.summary> + + + + Thrown if the IV at the start of a data stream indicates the wrong key is being used. + + + + Return the raw input stream for the data stream. + + + Return true if the message is integrity protected. + True, if there is a modification detection code namespace associated + with this stream. + + + Note: This can only be called after the message has been read. + True, if the message verifies, false otherwise + + + Generator for encrypted objects. + + + Existing SecureRandom constructor. + The symmetric algorithm to use. + Source of randomness. + + + Creates a cipher stream which will have an integrity packet associated with it. + + + Base constructor. + The symmetric algorithm to use. + Source of randomness. + PGP 2.6.x compatibility required. + + + + Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1). + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + Add a PBE encryption method to the encrypted object. + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + Add a PBE encryption method to the encrypted object. + + The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes). + + + + Add a PBE encryption method to the encrypted object. + + Allows the caller to handle the encoding of the passphrase to bytes. + + + + Add a public key encrypted session key to the encrypted object. + + + +

+ If buffer is non null stream assumed to be partial, otherwise the length will be used + to output a fixed length packet. +

+

+ The stream created can be closed off by either calling Close() + on the stream or Close() on the generator. Closing the returned + stream does not close off the Stream parameter outStr. +

+
+
+ + +

+ Return an output stream which will encrypt the data as it is written to it. +

+

+ The stream created can be closed off by either calling Close() + on the stream or Close() on the generator. Closing the returned + stream does not close off the Stream parameter outStr. +

+
+
+ + +

+ Return an output stream which will encrypt the data as it is written to it. + The stream will be written out in chunks according to the size of the passed in buffer. +

+

+ The stream created can be closed off by either calling Close() + on the stream or Close() on the generator. Closing the returned + stream does not close off the Stream parameter outStr. +

+

+ Note: if the buffer is not a power of 2 in length only the largest power of 2 + bytes worth of the buffer will be used. +

+
+
+ + +

+ Close off the encrypted object - this is equivalent to calling Close() on the stream + returned by the Open() method. +

+

+ Note: This does not close the underlying output stream, only the stream on top of + it created by the Open() method. +

+
+
+ + A holder for a list of PGP encryption method packets. + + + Generic exception class for PGP encoding/decoding problems. + + + Key flag values for the KeyFlags subpacket. + + + + General class to handle JCA key pairs and convert them into OpenPGP ones. +

+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from + a hash that includes the time of creation, if you pass a different date to the + constructor below with the same public private key pair the KeyIs will not be the + same as for previous generations of the key, so ideally you only want to do + this once. +

+
+
+ + Create a key pair from a PgpPrivateKey and a PgpPublicKey. + The public key. + The private key. + + + The keyId associated with this key pair. + + + + Generator for a PGP master and subkey ring. + This class will generate both the secret and public key rings + + + + + Create a new key ring generator using old style checksumming. It is recommended to use + SHA1 checksumming where possible. + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + The certification level for keys on this ring. + The master key pair. + The id to be associated with the ring. + The algorithm to be used to protect secret keys. + The passPhrase to be used to protect secret keys. + Packets to be included in the certification hash. + Packets to be attached unhashed to the certification. + input secured random. + + + + Create a new key ring generator. + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + The certification level for keys on this ring. + The master key pair. + The id to be associated with the ring. + The algorithm to be used to protect secret keys. + The passPhrase to be used to protect secret keys. + Checksum the secret keys with SHA1 rather than the older 16 bit checksum. + Packets to be included in the certification hash. + Packets to be attached unhashed to the certification. + input secured random. + + + + Create a new key ring generator. + + The certification level for keys on this ring. + The master key pair. + The id to be associated with the ring. + The algorithm to be used to protect secret keys. + + If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion + is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier). + + The passPhrase to be used to protect secret keys. + Checksum the secret keys with SHA1 rather than the older 16 bit checksum. + Packets to be included in the certification hash. + Packets to be attached unhashed to the certification. + input secured random. + + + + Create a new key ring generator. + + The certification level for keys on this ring. + The master key pair. + The id to be associated with the ring. + The algorithm to be used to protect secret keys. + The passPhrase to be used to protect secret keys. + Checksum the secret keys with SHA1 rather than the older 16 bit checksum. + Packets to be included in the certification hash. + Packets to be attached unhashed to the certification. + input secured random. + + + + Create a new key ring generator. + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + The certification level for keys on this ring. + The master key pair. + The id to be associated with the ring. + The algorithm to be used to protect secret keys. + The hash algorithm. + The passPhrase to be used to protect secret keys. + Checksum the secret keys with SHA1 rather than the older 16 bit checksum. + Packets to be included in the certification hash. + Packets to be attached unhashed to the certification. + input secured random. + + + + Create a new key ring generator. + + The certification level for keys on this ring. + The master key pair. + The id to be associated with the ring. + The algorithm to be used to protect secret keys. + The hash algorithm. + + If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion + is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier). + + The passPhrase to be used to protect secret keys. + Checksum the secret keys with SHA1 rather than the older 16 bit checksum. + Packets to be included in the certification hash. + Packets to be attached unhashed to the certification. + input secured random. + + + + Create a new key ring generator. + + + Allows the caller to handle the encoding of the passphrase to bytes. + + The certification level for keys on this ring. + The master key pair. + The id to be associated with the ring. + The algorithm to be used to protect secret keys. + The hash algorithm. + The passPhrase to be used to protect secret keys. + Checksum the secret keys with SHA1 rather than the older 16 bit checksum. + Packets to be included in the certification hash. + Packets to be attached unhashed to the certification. + input secured random. + + + Add a subkey to the key ring to be generated with default certification. + + + + Add a subkey to the key ring to be generated with default certification. + + The key pair. + The hash algorithm. + + + + Add a subkey with specific hashed and unhashed packets associated with it and + default certification. + + Public/private key pair. + Hashed packet values to be included in certification. + Unhashed packets values to be included in certification. + + + + + Add a subkey with specific hashed and unhashed packets associated with it and + default certification. + + Public/private key pair. + Hashed packet values to be included in certification. + Unhashed packets values to be included in certification. + The hash algorithm. + exception adding subkey: + + + + Return the secret key ring. + + + Return the public key ring that corresponds to the secret key ring. + + + + Thrown if the key checksum is invalid. + + + + Class for processing literal data objects. + + + The special name indicating a "for your eyes only" packet. + + + The format of the data stream - Binary or Text + + + The file name that's associated with the data stream. + + + Return the file name as an unintrepreted byte array. + + + The modification time for the file. + + + The raw input stream for the data stream. + + + The input stream representing the data stream. + + + Class for producing literal data packets. + + + The special name indicating a "for your eyes only" packet. + + + + Generates literal data objects in the old format. + This is important if you need compatibility with PGP 2.6.x. + + If true, uses old format. + + + +

+ Open a literal data packet, returning a stream to store the data inside the packet. +

+

+ The stream created can be closed off by either calling Close() + on the stream or Close() on the generator. Closing the returned + stream does not close off the Stream parameter outStr. +

+
+ The stream we want the packet in. + The format we are using. + The name of the 'file'. + The length of the data we will write. + The time of last modification we want stored. +
+ + +

+ Open a literal data packet, returning a stream to store the data inside the packet, + as an indefinite length stream. The stream is written out as a series of partial + packets with a chunk size determined by the size of the passed in buffer. +

+

+ The stream created can be closed off by either calling Close() + on the stream or Close() on the generator. Closing the returned + stream does not close off the Stream parameter outStr. +

+

+ Note: if the buffer is not a power of 2 in length only the largest power of 2 + bytes worth of the buffer will be used.

+
+ The stream we want the packet in. + The format we are using. + The name of the 'file'. + The time of last modification we want stored. + The buffer to use for collecting data to put into chunks. +
+ + +

+ Open a literal data packet for the passed in FileInfo object, returning + an output stream for saving the file contents. +

+

+ The stream created can be closed off by either calling Close() + on the stream or Close() on the generator. Closing the returned + stream does not close off the Stream parameter outStr. +

+
+ The stream we want the packet in. + The format we are using. + The FileInfo object containg the packet details. +
+ + + Close the literal data packet - this is equivalent to calling Close() + on the stream returned by the Open() method. + + + + + A PGP marker packet - in general these should be ignored other than where + the idea is to preserve the original input stream. + + + + + General class for reading a PGP object stream. +

+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it + will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each + key found. If all you are trying to do is read a key ring file use + either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.

+
+
+ + Return the next object in the stream, or null if the end is reached. + On a parse error + + + + Return all available objects in a list. + + An IList containing all objects from this factory, in order. + + + + Read all available objects, returning only those that are assignable to the specified type. + + The type of objects to return. All other objects are ignored. + An IList containing the filtered objects from this factory, in order. + + + A one pass signature object. + + + Initialise the signature object for verification. + + + Verify the calculated signature against the passed in PgpSignature. + + + Holder for a list of PgpOnePassSignature objects. + + + Padding functions. + + + A password based encryption object. + + + Return the raw input stream for the data stream. + + + Return the decrypted input stream, using the passed in passphrase. + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + Return the decrypted input stream, using the passed in passphrase. + + The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes). + + + + Return the decrypted input stream, using the passed in passphrase. + + Allows the caller to handle the encoding of the passphrase to bytes. + + + + General class to contain a private key for use with other OpenPGP objects. + + + + Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key. + + ID of the corresponding public key. + the public key data packet to be associated with this private key. + the private key data packet to be associated with this private key. + + + The keyId associated with the contained private key. + + + The public key packet associated with this private key, if available. + + + The contained private key. + + + General class to handle a PGP public key object. + + + + Create a PgpPublicKey from the passed in lightweight one. + + + Note: the time passed in affects the value of the key's keyId, so you probably only want + to do this once for a lightweight key, or make sure you keep track of the time you used. + + Asymmetric algorithm type representing the public key. + Actual public key to associate. + Date of creation. + If pubKey is not public. + On key creation problem. + + + Constructor for a sub-key. + + + Copy constructor. + The public key to copy. + + + The version of this key. + + + The creation time of this key. + + + The number of valid days from creation time - zero means no expiry. + WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day + + + Return the trust data associated with the public key, if present. + A byte array with trust data, null otherwise. + + + The number of valid seconds from creation time - zero means no expiry. + + + The keyId associated with the public key. + + + The fingerprint of the key + + + + Check if this key has an algorithm type that makes it suitable to use for encryption. + + + Note: with version 4 keys KeyFlags subpackets should also be considered when present for + determining the preferred use of the key. + + + true if this key algorithm is suitable for encryption. + + + + True, if this could be a master key. + + + The algorithm code associated with the public key. + + + The strength of the key in bits. + + + The public key contained in the object. + A lightweight public key. + If the key algorithm is not recognised. + + + Allows enumeration of any user IDs associated with the key. + An IEnumerable of string objects. + + + Allows enumeration of any user attribute vectors associated with the key. + An IEnumerable of PgpUserAttributeSubpacketVector objects. + + + Allows enumeration of any signatures associated with the passed in id. + The ID to be matched. + An IEnumerable of PgpSignature objects. + + + Allows enumeration of signatures associated with the passed in user attributes. + The vector of user attributes to be matched. + An IEnumerable of PgpSignature objects. + + + Allows enumeration of signatures of the passed in type that are on this key. + The type of the signature to be returned. + An IEnumerable of PgpSignature objects. + + + Allows enumeration of all signatures/certifications associated with this key. + An IEnumerable with all signatures/certifications. + + + Return all signatures/certifications directly associated with this key (ie, not to a user id). + + @return an iterator (possibly empty) with all signatures/certifications. + + + Check whether this (sub)key has a revocation signature on it. + True, if this (sub)key has been revoked. + + + Add a certification for an id to the given public key. + The key the certification is to be added to. + The ID the certification is associated with. + The new certification. + The re-certified key. + + + Add a certification for the given UserAttributeSubpackets to the given public key. + The key the certification is to be added to. + The attributes the certification is associated with. + The new certification. + The re-certified key. + + + + Remove any certifications associated with a user attribute subpacket on a key. + + The key the certifications are to be removed from. + The attributes to be removed. + + The re-certified key, or null if the user attribute subpacket was not found on the key. + + + + Remove any certifications associated with a given ID on a key. + The key the certifications are to be removed from. + The ID that is to be removed. + The re-certified key, or null if the ID was not found on the key. + + + Remove a certification associated with a given ID on a key. + The key the certifications are to be removed from. + The ID that the certfication is to be removed from. + The certfication to be removed. + The re-certified key, or null if the certification was not found. + + + Remove a certification associated with a given user attributes on a key. + The key the certifications are to be removed from. + The user attributes that the certfication is to be removed from. + The certification to be removed. + The re-certified key, or null if the certification was not found. + + + Add a revocation or some other key certification to a key. + The key the revocation is to be added to. + The key signature to be added. + The new changed public key object. + + + Remove a certification from the key. + The key the certifications are to be removed from. + The certfication to be removed. + The modified key, null if the certification was not found. + + + A public key encrypted data object. + + + The key ID for the key used to encrypt the data. + + + + Return the algorithm code for the symmetric algorithm used to encrypt the data. + + + + Return the decrypted data stream for the packet. + + + + Class to hold a single master public key and its subkeys. +

+ Often PGP keyring files consist of multiple master keys, if you are trying to process + or construct one of these you should use the PgpPublicKeyRingBundle class. +

+
+
+ + Return the first public key in the ring. + + + Return the public key referred to by the passed in key ID if it is present. + + + Allows enumeration of all the public keys. + An IEnumerable of PgpPublicKey objects. + + + + Returns a new key ring with the public key passed in either added or + replacing an existing one. + + The public key ring to be modified. + The public key to be inserted. + A new PgpPublicKeyRing + + + Returns a new key ring with the public key passed in removed from the key ring. + The public key ring to be modified. + The public key to be removed. + A new PgpPublicKeyRing, or null if pubKey is not found. + + + + Often a PGP key ring file is made up of a succession of master/sub-key key rings. + If you want to read an entire public key file in one hit this is the class for you. + + + + Build a PgpPublicKeyRingBundle from the passed in input stream. + Input stream containing data. + If a problem parsing the stream occurs. + If an object is encountered which isn't a PgpPublicKeyRing. + + + Return the number of key rings in this collection. + + + Allow enumeration of the public key rings making up this collection. + + + Allow enumeration of the key rings associated with the passed in userId. + The user ID to be matched. + An IEnumerable of key rings which matched (possibly none). + + + Allow enumeration of the key rings associated with the passed in userId. + The user ID to be matched. + If true, userId need only be a substring of an actual ID string to match. + An IEnumerable of key rings which matched (possibly none). + + + Allow enumeration of the key rings associated with the passed in userId. + The user ID to be matched. + If true, userId need only be a substring of an actual ID string to match. + If true, case is ignored in user ID comparisons. + An IEnumerable of key rings which matched (possibly none). + + + Return the PGP public key associated with the given key id. + The ID of the public key to return. + + + Return the public key ring which contains the key referred to by keyId + key ID to match against + + + + Return true if a key matching the passed in key ID is present, false otherwise. + + key ID to look for. + + + + Return a new bundle containing the contents of the passed in bundle and + the passed in public key ring. + + The PgpPublicKeyRingBundle the key ring is to be added to. + The key ring to be added. + A new PgpPublicKeyRingBundle merging the current one with the passed in key ring. + If the keyId for the passed in key ring is already present. + + + + Return a new bundle containing the contents of the passed in bundle with + the passed in public key ring removed. + + The PgpPublicKeyRingBundle the key ring is to be removed from. + The key ring to be removed. + A new PgpPublicKeyRingBundle not containing the passed in key ring. + If the keyId for the passed in key ring is not present. + + + General class to handle a PGP secret key object. + + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + + If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion + is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier). + + + + + Allows the caller to handle the encoding of the passphrase to bytes. + + + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + + If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion + is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier). + + + + + Allows the caller to handle the encoding of the passphrase to bytes. + + + + + Check if this key has an algorithm type that makes it suitable to use for signing. + + + Note: with version 4 keys KeyFlags subpackets should also be considered when present for + determining the preferred use of the key. + + + true if this key algorithm is suitable for use with signing. + + + + True, if this is a master key. + + + Detect if the Secret Key's Private Key is empty or not + + + The algorithm the key is encrypted with. + + + The key ID of the public key associated with this key. + + + Return the S2K usage associated with this key. + + + Return the S2K used to process this key. + + + The public key associated with this key. + + + Allows enumeration of any user IDs associated with the key. + An IEnumerable of string objects. + + + Allows enumeration of any user attribute vectors associated with the key. + An IEnumerable of string objects. + + + Extract a PgpPrivateKey from this secret key's encrypted contents. + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + Extract a PgpPrivateKey from this secret key's encrypted contents. + + The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes). + + + + Extract a PgpPrivateKey from this secret key's encrypted contents. + + Allows the caller to handle the encoding of the passphrase to bytes. + + + + + Return a copy of the passed in secret key, encrypted using a new password + and the passed in algorithm. + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + The PgpSecretKey to be copied. + The current password for the key. + The new password for the key. + The algorithm to be used for the encryption. + Source of randomness. + + + + Return a copy of the passed in secret key, encrypted using a new password + and the passed in algorithm. + + + The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes). + + The PgpSecretKey to be copied. + The current password for the key. + The new password for the key. + The algorithm to be used for the encryption. + Source of randomness. + + + + Return a copy of the passed in secret key, encrypted using a new password + and the passed in algorithm. + + + Allows the caller to handle the encoding of the passphrase to bytes. + + The PgpSecretKey to be copied. + The current password for the key. + The new password for the key. + The algorithm to be used for the encryption. + Source of randomness. + + + Replace the passed the public key on the passed in secret key. + Secret key to change. + New public key. + A new secret key. + If KeyId's do not match. + + + + Parse a secret key from one of the GPG S expression keys associating it with the passed in public key. + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + + Parse a secret key from one of the GPG S expression keys associating it with the passed in public key. + + + The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes). + + + + + Parse a secret key from one of the GPG S expression keys associating it with the passed in public key. + + + Allows the caller to handle the encoding of the passphrase to bytes. + + + + + Parse a secret key from one of the GPG S expression keys. + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + + Parse a secret key from one of the GPG S expression keys. + + + The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes). + + + + + Parse a secret key from one of the GPG S expression keys. + + + Allows the caller to handle the encoding of the passphrase to bytes. + + + + + Parse a secret key from one of the GPG S expression keys. + + + + + Class to hold a single master secret key and its subkeys. +

+ Often PGP keyring files consist of multiple master keys, if you are trying to process + or construct one of these you should use the PgpSecretKeyRingBundle class. +

+
+
+ + Return the public key for the master key. + + + Return the master private key. + + + Allows enumeration of the secret keys. + An IEnumerable of PgpSecretKey objects. + + + + Return an iterator of the public keys in the secret key ring that + have no matching private key. At the moment only personal certificate data + appears in this fashion. + + An IEnumerable of unattached, or extra, public keys. + + + + Replace the public key set on the secret ring with the corresponding key off the public ring. + + Secret ring to be changed. + Public ring containing the new public key set. + + + + Return a copy of the passed in secret key ring, with the master key and sub keys encrypted + using a new password and the passed in algorithm. + + The PgpSecretKeyRing to be copied. + The current password for key. + The new password for the key. + The algorithm to be used for the encryption. + Source of randomness. + + + + Returns a new key ring with the secret key passed in either added or + replacing an existing one with the same key ID. + + The secret key ring to be modified. + The secret key to be inserted. + A new PgpSecretKeyRing + + + Returns a new key ring with the secret key passed in removed from the key ring. + The secret key ring to be modified. + The secret key to be removed. + A new PgpSecretKeyRing, or null if secKey is not found. + + + + Often a PGP key ring file is made up of a succession of master/sub-key key rings. + If you want to read an entire secret key file in one hit this is the class for you. + + + + Build a PgpSecretKeyRingBundle from the passed in input stream. + Input stream containing data. + If a problem parsing the stream occurs. + If an object is encountered which isn't a PgpSecretKeyRing. + + + Return the number of rings in this collection. + + + Allow enumeration of the secret key rings making up this collection. + + + Allow enumeration of the key rings associated with the passed in userId. + The user ID to be matched. + An IEnumerable of key rings which matched (possibly none). + + + Allow enumeration of the key rings associated with the passed in userId. + The user ID to be matched. + If true, userId need only be a substring of an actual ID string to match. + An IEnumerable of key rings which matched (possibly none). + + + Allow enumeration of the key rings associated with the passed in userId. + The user ID to be matched. + If true, userId need only be a substring of an actual ID string to match. + If true, case is ignored in user ID comparisons. + An IEnumerable of key rings which matched (possibly none). + + + Return the PGP secret key associated with the given key id. + The ID of the secret key to return. + + + Return the secret key ring which contains the key referred to by keyId + The ID of the secret key + + + + Return true if a key matching the passed in key ID is present, false otherwise. + + key ID to look for. + + + + Return a new bundle containing the contents of the passed in bundle and + the passed in secret key ring. + + The PgpSecretKeyRingBundle the key ring is to be added to. + The key ring to be added. + A new PgpSecretKeyRingBundle merging the current one with the passed in key ring. + If the keyId for the passed in key ring is already present. + + + + Return a new bundle containing the contents of the passed in bundle with + the passed in secret key ring removed. + + The PgpSecretKeyRingBundle the key ring is to be removed from. + The key ring to be removed. + A new PgpSecretKeyRingBundle not containing the passed in key ring. + If the keyId for the passed in key ring is not present. + + + A PGP signature object. + + + The OpenPGP version number for this signature. + + + The key algorithm associated with this signature. + + + The hash algorithm associated with this signature. + + + Return true if this signature represents a certification. + + + + Verify the signature as certifying the passed in public key as associated + with the passed in user attributes. + + User attributes the key was stored under. + The key to be verified. + True, if the signature matches, false otherwise. + + + + Verify the signature as certifying the passed in public key as associated + with the passed in ID. + + ID the key was stored under. + The key to be verified. + True, if the signature matches, false otherwise. + + + Verify a certification for the passed in key against the passed in master key. + The key we are verifying against. + The key we are verifying. + True, if the certification is valid, false otherwise. + + + Verify a key certification, such as revocation, for the passed in key. + The key we are checking. + True, if the certification is valid, false otherwise. + + + The ID of the key that created the signature. + + + The creation time of this signature. + + + + Return true if the signature has either hashed or unhashed subpackets. + + + + + Return true if the passed in signature type represents a certification, false if the signature type is not. + + + true if signatureType is a certification, false otherwise. + + + Generator for PGP signatures. + + + Create a generator for the passed in keyAlgorithm and hashAlgorithm codes. + + + Initialise the generator for signing. + + + Initialise the generator for signing. + + + Return the one pass header associated with the current signature. + + + Return a signature object containing the current signature state. + + + Generate a certification for the passed in ID and key. + The ID we are certifying against the public key. + The key we are certifying against the ID. + The certification. + + + Generate a certification for the passed in userAttributes. + The ID we are certifying against the public key. + The key we are certifying against the ID. + The certification. + + + Generate a certification for the passed in key against the passed in master key. + The key we are certifying against. + The key we are certifying. + The certification. + + + Generate a certification, such as a revocation, for the passed in key. + The key we are certifying. + The certification. + + + A list of PGP signatures - normally in the signature block after literal data. + + + Generator for signature subpackets. + + + + Add a TrustSignature packet to the signature. The values for depth and trust are largely + installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13. + + true if the packet is critical. + depth level. + trust amount. + + + + Set the number of seconds a key is valid for after the time of its creation. + A value of zero means the key never expires. + + True, if should be treated as critical, false otherwise. + The number of seconds the key is valid, or zero if no expiry. + + + + Set the number of seconds a signature is valid for after the time of its creation. + A value of zero means the signature never expires. + + True, if should be treated as critical, false otherwise. + The number of seconds the signature is valid, or zero if no expiry. + + + + Set the creation time for the signature. +

+ Note: this overrides the generation of a creation time when the signature + is generated.

+
+
+ + + Sets revocation reason sub packet + + + + + Sets revocation key sub packet + + + + + Sets issuer key sub packet + + + + Container for a list of signature subpackets. + + + Return true if a particular subpacket type exists. + + @param type type to look for. + @return true if present, false otherwise. + + + Return all signature subpackets of the passed in type. + @param type subpacket type code + @return an array of zero or more matching subpackets. + + + + Return the number of seconds a signature is valid for after its creation date. + A value of zero means the signature never expires. + + Seconds a signature is valid for. + + + + Return the number of seconds a key is valid for after its creation date. + A value of zero means the key never expires. + + Seconds a signature is valid for. + + + Return the number of packets this vector contains. + + + Container for a list of user attribute subpackets. + + + Basic utility class. + + + + Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is + the historical behaviour of the library (1.7 and earlier). + + + + + The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes). + + + + + Allows the caller to handle the encoding of the passphrase to bytes. + + + + Write out the passed in file as a literal data packet. + + + Write out the passed in file as a literal data packet in partial packet format. + + + + Return either an ArmoredInputStream or a BcpgInputStream based on whether + the initial characters of the stream are binary PGP encodings or not. + + + + Generator for old style PGP V3 Signatures. + + + Create a generator for the passed in keyAlgorithm and hashAlgorithm codes. + + + Initialise the generator for signing. + + + Initialise the generator for signing. + + + Return the one pass header associated with the current signature. + + + Return a V3 signature object containing the current signature state. + + + Utility functions for looking a S-expression keys. This class will move when it finds a better home! +

+ Format documented here: + http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master +

+
+ + + Wrap a PKIMessage ASN.1 structure. + + PKI message. + + + + Create a PKIMessage from the passed in bytes. + + BER/DER encoding of the PKIMessage + + + + Return true if this message has protection bits on it. A return value of true + indicates the message can be used to construct a ProtectedPKIMessage. + + + + + Wrapper for a PKIMessage with protection attached to it. + + + + + Wrap a general message. + + If the general message does not have protection. + The General message + + + + Wrap a PKI message. + + If the PKI message does not have protection. + The PKI message + + + + Message header + + + + + Message Body + + + + + Return the underlying ASN.1 structure contained in this object. + + PKI Message structure + + + + Determine whether the message is protected by a password based MAC. Use verify(PKMACBuilder, char[]) + to verify the message if this method returns true. + + true if protection MAC PBE based, false otherwise. + + + + Return the extra certificates associated with this message. + + an array of extra certificates, zero length if none present. + + + + Verify a message with a public key based signature attached. + + a factory of signature verifiers. + true if the provider is able to create a verifier that validates the signature, false otherwise. + + + + Verify a message with password based MAC protection. + + MAC builder that can be used to construct the appropriate MacCalculator + the MAC password + true if the passed in password and MAC builder verify the message, false otherwise. + if algorithm not MAC based, or an exception is thrown verifying the MAC. + + + + The 'Signature' parameter is only available when generating unsigned attributes. + + + + containing class for an CMS Authenticated Data object + + + return the object identifier for the content MAC algorithm. + + + return a store of the intended recipients for this message + + + return the ContentInfo + + + return a table of the digested attributes indexed by + the OID of the attribute. + + + return a table of the undigested attributes indexed by + the OID of the attribute. + + + return the ASN.1 encoded representation of this object. + + + General class for generating a CMS authenticated-data message. + + A simple example of usage. + +
+                  CMSAuthenticatedDataGenerator  fact = new CMSAuthenticatedDataGenerator();
+            
+                  fact.addKeyTransRecipient(cert);
+            
+                  CMSAuthenticatedData         data = fact.generate(content, algorithm, "BC");
+             
+
+ + base constructor + + + constructor allowing specific source of randomness + @param rand instance of SecureRandom to use + + + generate an enveloped object that contains an CMS Enveloped Data + object using the given provider and the passed in key generator. + + + generate an authenticated object that contains an CMS Authenticated Data object + + + Parsing class for an CMS Authenticated Data object from an input stream. +

+ Note: that because we are in a streaming mode only one recipient can be tried and it is important + that the methods on the parser are called in the appropriate order. +

+

+ Example of use - assuming the first recipient matches the private key we have. +

+                  CMSAuthenticatedDataParser     ad = new CMSAuthenticatedDataParser(inputStream);
+            
+                  RecipientInformationStore  recipients = ad.getRecipientInfos();
+            
+                  Collection  c = recipients.getRecipients();
+                  Iterator    it = c.iterator();
+            
+                  if (it.hasNext())
+                  {
+                      RecipientInformation   recipient = (RecipientInformation)it.next();
+            
+                      CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+            
+                      processDataStream(recData.getContentStream());
+            
+                      if (!Arrays.equals(ad.getMac(), recipient.getMac())
+                      {
+                          System.err.println("Data corrupted!!!!");
+                      }
+                  }
+              
+ Note: this class does not introduce buffering - if you are processing large files you should create + the parser with: +
+                      CMSAuthenticatedDataParser     ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+              
+ where bufSize is a suitably large buffer size. +

+
+ + return the object identifier for the mac algorithm. + + + return the ASN.1 encoded encryption algorithm parameters, or null if + there aren't any. + + + return a store of the intended recipients for this message + + + return a table of the unauthenticated attributes indexed by + the OID of the attribute. + @exception java.io.IOException + + + return a table of the unauthenticated attributes indexed by + the OID of the attribute. + @exception java.io.IOException + + + General class for generating a CMS authenticated-data message stream. +

+ A simple example of usage. +

+                  CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+            
+                  edGen.addKeyTransRecipient(cert);
+            
+                  ByteArrayOutputStream  bOut = new ByteArrayOutputStream();
+            
+                  OutputStream out = edGen.open(
+                                          bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+                  out.write(data);
+            
+                  out.close();
+             
+

+
+ + base constructor + + + constructor allowing specific source of randomness + @param rand instance of SecureRandom to use + + + Set the underlying string size for encapsulated data + + @param bufferSize length of octet strings to buffer the data. + + + Use a BER Set to store the recipient information + + + generate an enveloped object that contains an CMS Enveloped Data + object using the given provider and the passed in key generator. + @throws java.io.IOException + + + generate an enveloped object that contains an CMS Enveloped Data object + + + generate an enveloped object that contains an CMS Enveloped Data object + + + base constructor + + + constructor allowing specific source of randomness + + @param rand instance of SecureRandom to use + + + containing class for an CMS AuthEnveloped Data object + + + containing class for an CMS Compressed Data object + + + Return the uncompressed content. + + @return the uncompressed content + @throws CmsException if there is an exception uncompressing the data. + + + Return the uncompressed content, throwing an exception if the data size + is greater than the passed in limit. If the content is exceeded getCause() + on the CMSException will contain a StreamOverflowException + + @param limit maximum number of bytes to read + @return the content read + @throws CMSException if there is an exception uncompressing the data. + + + return the ContentInfo + + + return the ASN.1 encoded representation of this object. + + + * General class for generating a compressed CMS message. + *

+ * A simple example of usage.

+ *

+ *

+                *      CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+                *      CMSCompressedData data = fact.Generate(content, algorithm);
+                * 
+ *

+
+ + Generate an object that contains an CMS Compressed Data + + + Class for reading a CMS Compressed Data stream. +
+                 CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+            
+                 process(cp.GetContent().GetContentStream());
+             
+ Note: this class does not introduce buffering - if you are processing large files you should create + the parser with: +
+                  CMSCompressedDataParser     ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+              
+ where bufSize is a suitably large buffer size. +
+ + General class for generating a compressed CMS message stream. +

+ A simple example of usage. +

+
+                  CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+            
+                  Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+            
+                  cOut.Write(data);
+            
+                  cOut.Close();
+             
+
+ + base constructor + + + Set the underlying string size for encapsulated data + + @param bufferSize length of octet strings to buffer the data. + + + Close the underlying data stream. + @throws IOException if the close fails. + + + containing class for an CMS Enveloped Data object + + + return the object identifier for the content encryption algorithm. + + + return a store of the intended recipients for this message + + + return the ContentInfo + + + return a table of the unprotected attributes indexed by + the OID of the attribute. + + + return the ASN.1 encoded representation of this object. + + + + General class for generating a CMS enveloped-data message. + + A simple example of usage. + +
+                  CmsEnvelopedDataGenerator  fact = new CmsEnvelopedDataGenerator();
+            
+                  fact.AddKeyTransRecipient(cert);
+            
+                  CmsEnvelopedData         data = fact.Generate(content, algorithm);
+             
+
+
+ + Constructor allowing specific source of randomness + Instance of SecureRandom to use. + + + + Generate an enveloped object that contains a CMS Enveloped Data + object using the passed in key generator. + + + + Generate an enveloped object that contains an CMS Enveloped Data object. + + + Generate an enveloped object that contains an CMS Enveloped Data object. + + + Parsing class for an CMS Enveloped Data object from an input stream. +

+ Note: that because we are in a streaming mode only one recipient can be tried and it is important + that the methods on the parser are called in the appropriate order. +

+

+ Example of use - assuming the first recipient matches the private key we have. +

+                  CmsEnvelopedDataParser     ep = new CmsEnvelopedDataParser(inputStream);
+            
+                  RecipientInformationStore  recipients = ep.GetRecipientInfos();
+            
+                  Collection  c = recipients.getRecipients();
+                  Iterator    it = c.iterator();
+            
+                  if (it.hasNext())
+                  {
+                      RecipientInformation   recipient = (RecipientInformation)it.next();
+            
+                      CMSTypedStream recData = recipient.getContentStream(privateKey);
+            
+                      processDataStream(recData.getContentStream());
+                  }
+              
+ Note: this class does not introduce buffering - if you are processing large files you should create + the parser with: +
+                      CmsEnvelopedDataParser     ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+              
+ where bufSize is a suitably large buffer size. +

+
+ + return the object identifier for the content encryption algorithm. + + + return the ASN.1 encoded encryption algorithm parameters, or null if + there aren't any. + + + return a store of the intended recipients for this message + + + return a table of the unprotected attributes indexed by + the OID of the attribute. + @throws IOException + + + General class for generating a CMS enveloped-data message stream. +

+ A simple example of usage. +

+                  CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+            
+                  edGen.AddKeyTransRecipient(cert);
+            
+                  MemoryStream  bOut = new MemoryStream();
+            
+                  Stream out = edGen.Open(
+                                          bOut, CMSEnvelopedDataGenerator.AES128_CBC);*
+                  out.Write(data);
+            
+                  out.Close();
+             
+

+
+ + Constructor allowing specific source of randomness + Instance of SecureRandom to use. + + + Set the underlying string size for encapsulated data. + Length of octet strings to buffer the data. + + + Use a BER Set to store the recipient information. + + + + Generate an enveloped object that contains an CMS Enveloped Data + object using the passed in key generator. + + + + generate an enveloped object that contains an CMS Enveloped Data object + @throws IOException + + + generate an enveloped object that contains an CMS Enveloped Data object + @throws IOException + + + General class for generating a CMS enveloped-data message. + + A simple example of usage. + +
+                  CMSEnvelopedDataGenerator  fact = new CMSEnvelopedDataGenerator();
+            
+                  fact.addKeyTransRecipient(cert);
+            
+                  CMSEnvelopedData         data = fact.generate(content, algorithm, "BC");
+             
+
+ + Constructor allowing specific source of randomness + Instance of SecureRandom to use. + + + add a recipient. + + @param cert recipient's public key certificate + @exception ArgumentException if there is a problem with the certificate + + + add a recipient + + @param key the public key used by the recipient + @param subKeyId the identifier for the recipient's public key + @exception ArgumentException if there is a problem with the key + + + add a KEK recipient. + @param key the secret key to use for wrapping + @param keyIdentifier the byte string that identifies the key + + + add a KEK recipient. + @param key the secret key to use for wrapping + @param keyIdentifier the byte string that identifies the key + + + Add a key agreement based recipient. + + @param agreementAlgorithm key agreement algorithm to use. + @param senderPrivateKey private key to initialise sender side of agreement with. + @param senderPublicKey sender public key to include with message. + @param recipientCert recipient's public key certificate. + @param cekWrapAlgorithm OID for key wrapping algorithm to use. + @exception SecurityUtilityException if the algorithm requested cannot be found + @exception InvalidKeyException if the keys are inappropriate for the algorithm specified + + + Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure). + + @param agreementAlgorithm key agreement algorithm to use. + @param senderPrivateKey private key to initialise sender side of agreement with. + @param senderPublicKey sender public key to include with message. + @param recipientCerts recipients' public key certificates. + @param cekWrapAlgorithm OID for key wrapping algorithm to use. + @exception SecurityUtilityException if the algorithm requested cannot be found + @exception InvalidKeyException if the keys are inappropriate for the algorithm specified + + + + Add a generator to produce the recipient info required. + + a generator of a recipient info object. + + + + Generic routine to copy out the data we want processed. + + + This routine may be called multiple times. + + + + a holding class for a byte array of data to be processed. + + + A clone of the byte array + + + a holding class for a file of data to be processed. + + + The file handle + + + general class for handling a pkcs7-signature message. + + A simple example of usage - note, in the example below the validity of + the certificate isn't verified, just the fact that one of the certs + matches the given signer... + +
+              IX509Store              certs = s.GetCertificates();
+              SignerInformationStore  signers = s.GetSignerInfos();
+            
+              foreach (SignerInformation signer in signers.GetSigners())
+              {
+                  ArrayList       certList = new ArrayList(certs.GetMatches(signer.SignerID));
+                  X509Certificate cert = (X509Certificate) certList[0];
+            
+                  if (signer.Verify(cert.GetPublicKey()))
+                  {
+                      verified++;
+                  }
+              }
+             
+
+ + Content with detached signature, digests precomputed + + @param hashes a map of precomputed digests for content indexed by name of hash. + @param sigBlock the signature object. + + + base constructor - content with detached signature. + + @param signedContent the content that was signed. + @param sigData the signature object. + + + base constructor - with encapsulated content + + + Return the version number for this object. + + + return the collection of signers that are associated with the + signatures for the message. + + + return a X509Store containing the attribute certificates, if any, contained + in this message. + + @param type type of store to create + @return a store of attribute certificates + @exception NoSuchStoreException if the store type isn't available. + @exception CmsException if a general exception prevents creation of the X509Store + + + return a X509Store containing the public key certificates, if any, contained + in this message. + + @param type type of store to create + @return a store of public key certificates + @exception NoSuchStoreException if the store type isn't available. + @exception CmsException if a general exception prevents creation of the X509Store + + + return a X509Store containing CRLs, if any, contained + in this message. + + @param type type of store to create + @return a store of CRLs + @exception NoSuchStoreException if the store type isn't available. + @exception CmsException if a general exception prevents creation of the X509Store + + + + Return the DerObjectIdentifier associated with the encapsulated + content info structure carried in the signed data. + + + + return the ContentInfo + + + return the ASN.1 encoded representation of this object. + + + return the ASN.1 encoded representation of this object using the specified encoding. + + @param encoding the ASN.1 encoding format to use ("BER" or "DER"). + + + Replace the signerinformation store associated with this + CmsSignedData object with the new one passed in. You would + probably only want to do this if you wanted to change the unsigned + attributes associated with a signer, or perhaps delete one. + + @param signedData the signed data object to be used as a base. + @param signerInformationStore the new signer information store to use. + @return a new signed data object. + + + Replace the certificate and CRL information associated with this + CmsSignedData object with the new one passed in. + + @param signedData the signed data object to be used as a base. + @param x509Certs the new certificates to be used. + @param x509Crls the new CRLs to be used. + @return a new signed data object. + @exception CmsException if there is an error processing the stores + + + * general class for generating a pkcs7-signature message. + *

+ * A simple example of usage. + * + *

+                 *      IX509Store certs...
+                 *      IX509Store crls...
+                 *      CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+                 *
+                 *      gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+                 *      gen.AddCertificates(certs);
+                 *      gen.AddCrls(crls);
+                 *
+                 *      CmsSignedData data = gen.Generate(content);
+                 * 
+ *

+
+ + Constructor allowing specific source of randomness + Instance of SecureRandom to use. + + + * add a signer - no attributes other than the default ones will be + * provided here. + * + * @param key signing key to use + * @param cert certificate containing corresponding public key + * @param digestOID digest algorithm OID + + + add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be + provided here. + + @param key signing key to use + @param cert certificate containing corresponding public key + @param encryptionOID digest encryption algorithm OID + @param digestOID digest algorithm OID + + + add a signer - no attributes other than the default ones will be + provided here. + + + add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be + provided here. + + + * add a signer with extra signed/unsigned attributes. + * + * @param key signing key to use + * @param cert certificate containing corresponding public key + * @param digestOID digest algorithm OID + * @param signedAttr table of attributes to be included in signature + * @param unsignedAttr table of attributes to be included as unsigned + + + add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes. + + @param key signing key to use + @param cert certificate containing corresponding public key + @param encryptionOID digest encryption algorithm OID + @param digestOID digest algorithm OID + @param signedAttr table of attributes to be included in signature + @param unsignedAttr table of attributes to be included as unsigned + + + * add a signer with extra signed/unsigned attributes. + * + * @param key signing key to use + * @param subjectKeyID subjectKeyID of corresponding public key + * @param digestOID digest algorithm OID + * @param signedAttr table of attributes to be included in signature + * @param unsignedAttr table of attributes to be included as unsigned + + + add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes. + + @param key signing key to use + @param subjectKeyID subjectKeyID of corresponding public key + @param encryptionOID digest encryption algorithm OID + @param digestOID digest algorithm OID + @param signedAttr table of attributes to be included in signature + @param unsignedAttr table of attributes to be included as unsigned + + + add a signer with extra signed/unsigned attributes based on generators. + + + add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators. + + + add a signer with extra signed/unsigned attributes based on generators. + + + add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators. + + + generate a signed object that for a CMS Signed Data object + + + generate a signed object that for a CMS Signed Data + object - if encapsulate is true a copy + of the message will be included in the signature. The content type + is set according to the OID represented by the string signedContentType. + + + generate a signed object that for a CMS Signed Data + object - if encapsulate is true a copy + of the message will be included in the signature with the + default content type "data". + + + generate a set of one or more SignerInformation objects representing counter signatures on + the passed in SignerInformation object. + + @param signer the signer to be countersigned + @param sigProvider the provider to be used for counter signing. + @return a store containing the signers. + + + Parsing class for an CMS Signed Data object from an input stream. +

+ Note: that because we are in a streaming mode only one signer can be tried and it is important + that the methods on the parser are called in the appropriate order. +

+

+ A simple example of usage for an encapsulated signature. +

+

+ Two notes: first, in the example below the validity of + the certificate isn't verified, just the fact that one of the certs + matches the given signer, and, second, because we are in a streaming + mode the order of the operations is important. +

+
+                  CmsSignedDataParser     sp = new CmsSignedDataParser(encapSigData);
+            
+                  sp.GetSignedContent().Drain();
+            
+                  IX509Store              certs = sp.GetCertificates();
+                  SignerInformationStore  signers = sp.GetSignerInfos();
+            
+                  foreach (SignerInformation signer in signers.GetSigners())
+                  {
+                      ArrayList       certList = new ArrayList(certs.GetMatches(signer.SignerID));
+                      X509Certificate cert = (X509Certificate) certList[0];
+            
+                      Console.WriteLine("verify returns: " + signer.Verify(cert));
+                  }
+             
+ Note also: this class does not introduce buffering - if you are processing large files you should create + the parser with: +
+                      CmsSignedDataParser     ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+              
+ where bufSize is a suitably large buffer size. +
+ + base constructor - with encapsulated content + + + base constructor + + @param signedContent the content that was signed. + @param sigData the signature object. + + + Return the version number for the SignedData object + + @return the version number + + + return the collection of signers that are associated with the + signatures for the message. + @throws CmsException + + + return a X509Store containing the attribute certificates, if any, contained + in this message. + + @param type type of store to create + @return a store of attribute certificates + @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available. + @exception CmsException if a general exception prevents creation of the X509Store + + + return a X509Store containing the public key certificates, if any, contained + in this message. + + @param type type of store to create + @return a store of public key certificates + @exception NoSuchStoreException if the store type isn't available. + @exception CmsException if a general exception prevents creation of the X509Store + + + return a X509Store containing CRLs, if any, contained + in this message. + + @param type type of store to create + @return a store of CRLs + @exception NoSuchStoreException if the store type isn't available. + @exception CmsException if a general exception prevents creation of the X509Store + + + + Return the DerObjectIdentifier associated with the encapsulated + content info structure carried in the signed data. + + + + Replace the signerinformation store associated with the passed + in message contained in the stream original with the new one passed in. + You would probably only want to do this if you wanted to change the unsigned + attributes associated with a signer, or perhaps delete one. +

+ The output stream is returned unclosed. +

+ @param original the signed data stream to be used as a base. + @param signerInformationStore the new signer information store to use. + @param out the stream to Write the new signed data object to. + @return out. +
+ + Replace the certificate and CRL information associated with this + CMSSignedData object with the new one passed in. +

+ The output stream is returned unclosed. +

+ @param original the signed data stream to be used as a base. + @param certsAndCrls the new certificates and CRLs to be used. + @param out the stream to Write the new signed data object to. + @return out. + @exception CmsException if there is an error processing the CertStore +
+ + General class for generating a pkcs7-signature message stream. +

+ A simple example of usage. +

+
+                  IX509Store                   certs...
+                  CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+            
+                  gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+            
+                  gen.AddCertificates(certs);
+            
+                  Stream sigOut = gen.Open(bOut);
+            
+                  sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+            
+                  sigOut.Close();
+             
+
+ + Constructor allowing specific source of randomness + Instance of SecureRandom to use. + + + Set the underlying string size for encapsulated data + + @param bufferSize length of octet strings to buffer the data. + + + add a signer - no attributes other than the default ones will be + provided here. + @throws NoSuchAlgorithmException + @throws InvalidKeyException + + + add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be + provided here. + @throws NoSuchProviderException + @throws NoSuchAlgorithmException + @throws InvalidKeyException + + + add a signer with extra signed/unsigned attributes. + @throws NoSuchAlgorithmException + @throws InvalidKeyException + + + add a signer with extra signed/unsigned attributes - specifying digest + encryption algorithm. + @throws NoSuchProviderException + @throws NoSuchAlgorithmException + @throws InvalidKeyException + + + add a signer - no attributes other than the default ones will be + provided here. + @throws NoSuchAlgorithmException + @throws InvalidKeyException + + + add a signer - no attributes other than the default ones will be + provided here. + @throws NoSuchProviderException + @throws NoSuchAlgorithmException + @throws InvalidKeyException + + + add a signer with extra signed/unsigned attributes. + @throws NoSuchAlgorithmException + @throws InvalidKeyException + + + generate a signed object that for a CMS Signed Data object + + + generate a signed object that for a CMS Signed Data + object - if encapsulate is true a copy + of the message will be included in the signature with the + default content type "data". + + + generate a signed object that for a CMS Signed Data + object using the given provider - if encapsulate is true a copy + of the message will be included in the signature with the + default content type "data". If dataOutputStream is non null the data + being signed will be written to the stream as it is processed. + @param out stream the CMS object is to be written to. + @param encapsulate true if data should be encapsulated. + @param dataOutputStream output stream to copy the data being signed to. + + + generate a signed object that for a CMS Signed Data + object - if encapsulate is true a copy + of the message will be included in the signature. The content type + is set according to the OID represented by the string signedContentType. + + + generate a signed object that for a CMS Signed Data + object using the given provider - if encapsulate is true a copy + of the message will be included in the signature. The content type + is set according to the OID represented by the string signedContentType. + @param out stream the CMS object is to be written to. + @param signedContentType OID for data to be signed. + @param encapsulate true if data should be encapsulated. + @param dataOutputStream output stream to copy the data being signed to. + + + Default type for the signed data. + + + Constructor allowing specific source of randomness + Instance of SecureRandom to use. + + + Add the attribute certificates contained in the passed in store to the + generator. + + @param store a store of Version 2 attribute certificates + @throws CmsException if an error occurse processing the store. + + + Add a store of precalculated signers to the generator. + + @param signerStore store of signers + + + Return a map of oids and byte arrays representing the digests calculated on the content during + the last generate. + + @return a map of oids (as string objects) and byte[] representing digests. + + + Return the digest algorithm using one of the standard JCA string + representations rather than the algorithm identifier (if possible). + + + Return the digest encryption algorithm using one of the standard + JCA string representations rather than the algorithm identifier (if + possible). + + + Default authenticated attributes generator. + + + Initialise to use all defaults + + + Initialise with some extra attributes or overrides. + + @param attributeTable initial attribute table to use. + + + Create a standard attribute table from the passed in parameters - this will + normally include contentType and messageDigest. If the constructor + using an AttributeTable was used, entries in it for contentType and + messageDigest will override the generated ones. + + @param parameters source parameters for table generation. + + @return a filled in IDictionary of attributes. + + + @param parameters source parameters + @return the populated attribute table + + + Default signed attributes generator. + + + Initialise to use all defaults + + + Initialise with some extra attributes or overrides. + + @param attributeTable initial attribute table to use. + + + Create a standard attribute table from the passed in parameters - this will + normally include contentType, signingTime, and messageDigest. If the constructor + using an AttributeTable was used, entries in it for contentType, signingTime, and + messageDigest will override the generated ones. + + @param parameters source parameters for table generation. + + @return a filled in Hashtable of attributes. + + + @param parameters source parameters + @return the populated attribute table + + + the RecipientInfo class for a recipient who has been sent a message + encrypted using a secret key known to the other side. + + + decrypt the content and return an input stream. + + + the RecipientInfo class for a recipient who has been sent a message + encrypted using key agreement. + + + decrypt the content and return an input stream. + + + the KeyTransRecipientInformation class for a recipient who has been sent a secret + key encrypted using their public key that needs to be used to + extract the message. + + + decrypt the content and return it as a byte array. + + + a basic index for an originator. + + + Return the certificates stored in the underlying OriginatorInfo object. + + @return a Store of X509CertificateHolder objects. + + + Return the CRLs stored in the underlying OriginatorInfo object. + + @return a Store of X509CRLHolder objects. + + + Return the underlying ASN.1 object defining this SignerInformation object. + + @return a OriginatorInfo. + + + the RecipientInfo class for a recipient who has been sent a message + encrypted using a password. + + + return the object identifier for the key derivation algorithm, or null + if there is none present. + + @return OID for key derivation algorithm, if present. + + + decrypt the content and return an input stream. + + + + PKCS5 scheme-2 - password converted to bytes assuming ASCII. + + + + PKCS5 scheme-2 - password converted to bytes using UTF-8. + + + + Generate a RecipientInfo object for the given key. + + + A + + + A + + + A + + + + + * return the object identifier for the key encryption algorithm. + * + * @return OID for key encryption algorithm. + + + * return the ASN.1 encoded key encryption algorithm parameters, or null if + * there aren't any. + * + * @return ASN.1 encoding of key encryption algorithm parameters. + + + Return the MAC calculated for the content stream. Note: this call is only meaningful once all + the content has been read. + + @return byte array containing the mac. + + + Return the first RecipientInformation object that matches the + passed in selector. Null if there are no matches. + + @param selector to identify a recipient + @return a single RecipientInformation object. Null if none matches. + + + Return the number of recipients in the collection. + + @return number of recipients identified. + + + Return all recipients in the collection + + @return a collection of recipients. + + + Return possible empty collection with recipients matching the passed in RecipientID + + @param selector a recipient id to select against. + @return a collection of RecipientInformation objects. + + + a basic index for a signer. + + + If the passed in flag is true, the signer signature will be based on the data, not + a collection of signed attributes, and no signed attributes will be included. + + @return the builder object + + + Provide a custom signed attribute generator. + + @param signedGen a generator of signed attributes. + @return the builder object + + + Provide a generator of unsigned attributes. + + @param unsignedGen a generator for signed attributes. + @return the builder object + + + Build a generator with the passed in X.509 certificate issuer and serial number as the signerIdentifier. + + @param contentSigner operator for generating the final signature in the SignerInfo with. + @param certificate X.509 certificate related to the contentSigner. + @return a SignerInfoGenerator + @throws OperatorCreationException if the generator cannot be built. + + + Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should + try to follow the calculation described in RFC 5280 section 4.2.1.2. + + @param signerFactory operator factory for generating the final signature in the SignerInfo with. + @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature. + @return a SignerInfoGenerator + + + an expanded SignerInfo block from a CMS Signed message + + + Protected constructor. In some cases clients have their own idea about how to encode + the signed attributes and calculate the signature. This constructor is to allow developers + to deal with that by extending off the class and overriding e.g. SignedAttributes property. + + @param baseInfo the SignerInformation to base this one on. + + + return the version number for this objects underlying SignerInfo structure. + + + return the object identifier for the signature. + + + return the signature parameters, or null if there aren't any. + + + return the content digest that was calculated during verification. + + + return the object identifier for the signature. + + + return the signature/encryption algorithm parameters, or null if + there aren't any. + + + return a table of the signed attributes - indexed by + the OID of the attribute. + + + return a table of the unsigned attributes indexed by + the OID of the attribute. + + + return the encoded signature + + + Return a SignerInformationStore containing the counter signatures attached to this + signer. If no counter signatures are present an empty store is returned. + + + return the DER encoding of the signed attributes. + @throws IOException if an encoding error occurs. + + + verify that the given public key successfully handles and confirms the + signature associated with this signer. + + + verify that the given certificate successfully handles and confirms + the signature associated with this signer and, if a signingTime + attribute is available, that the certificate was valid at the time the + signature was generated. + + + Return the base ASN.1 CMS structure that this object contains. + + @return an object containing a CMS SignerInfo structure. + + + Return a signer information object with the passed in unsigned + attributes replacing the ones that are current associated with + the object passed in. + + @param signerInformation the signerInfo to be used as the basis. + @param unsignedAttributes the unsigned attributes to add. + @return a copy of the original SignerInformationObject with the changed attributes. + + + Return a signer information object with passed in SignerInformationStore representing counter + signatures attached as an unsigned attribute. + + @param signerInformation the signerInfo to be used as the basis. + @param counterSigners signer info objects carrying counter signature. + @return a copy of the original SignerInformationObject with the changed attributes. + + + Create a store containing a single SignerInformation object. + + @param signerInfo the signer information to contain. + + + Create a store containing a collection of SignerInformation objects. + + @param signerInfos a collection signer information objects to contain. + + + Return the first SignerInformation object that matches the + passed in selector. Null if there are no matches. + + @param selector to identify a signer + @return a single SignerInformation object. Null if none matches. + + + The number of signers in the collection. + + + An ICollection of all signers in the collection + + + Return possible empty collection with signers matching the passed in SignerID + + @param selector a signer id to select against. + @return a collection of SignerInformation objects. + + + Basic generator that just returns a preconstructed attribute table + + + + Carrier for an authenticator control. + + + + + Basic constructor - build from a UTF-8 string representing the token. + + UTF-8 string representing the token. + + + + Basic constructor - build from a string representing the token. + + string representing the token. + + + + Return the type of this control. + + + + + Return the token associated with this control (a UTF8String). + + + + + Create a CertificateRequestMessage from the passed in bytes. + + BER/DER encoding of the CertReqMsg structure. + + + + Return the underlying ASN.1 object defining this CertificateRequestMessage object. + + A CertReqMsg + + + + Return the certificate template contained in this message. + + a CertTemplate structure. + + + + Return whether or not this request has control values associated with it. + + true if there are control values present, false otherwise. + + + + Return whether or not this request has a specific type of control value. + + the type OID for the control value we are checking for. + true if a control value of type is present, false otherwise. + + + + Return a control value of the specified type. + + the type OID for the control value we are checking for. + the control value if present, null otherwise. + + + + Return whether or not this request message has a proof-of-possession field in it. + + true if proof-of-possession is present, false otherwise. + + + + Return the type of the proof-of-possession this request message provides. + + one of: popRaVerified, popSigningKey, popKeyEncipherment, popKeyAgreement + + + + Return whether or not the proof-of-possession (POP) is of the type popSigningKey and + it has a public key MAC associated with it. + + true if POP is popSigningKey and a PKMAC is present, false otherwise. + + + + Return whether or not a signing key proof-of-possession (POP) is valid. + + a provider that can produce content verifiers for the signature contained in this POP. + true if the POP is valid, false otherwise. + if there is a problem in verification or content verifier creation. + if POP not appropriate. + + + + Return the ASN.1 encoding of the certReqMsg we wrap. + + a byte array containing the binary encoding of the certReqMsg. + + + + Create a builder that makes EncryptedValue structures. + + wrapper a wrapper for key used to encrypt the actual data contained in the EncryptedValue. + encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue. + + + + + Create a builder that makes EncryptedValue structures with fixed length blocks padded using the passed in padder. + + a wrapper for key used to encrypt the actual data contained in the EncryptedValue. + encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue. + padder a padder to ensure that the EncryptedValue created will always be a constant length. + + + + + Build an EncryptedValue structure containing the passed in pass phrase. + + a revocation pass phrase. + an EncryptedValue containing the encrypted pass phrase. + + + + + Build an EncryptedValue structure containing the certificate contained in + the passed in holder. + + a holder containing a certificate. + an EncryptedValue containing the encrypted certificate. + on a failure to encrypt the data, or wrap the symmetric key for this value. + + + + + Build an EncryptedValue structure containing the private key contained in + the passed info structure. + + a PKCS#8 private key info structure. + an EncryptedValue containing an EncryptedPrivateKeyInfo structure. + on a failure to encrypt the data, or wrap the symmetric key for this value. + + + + + Generic interface for a CertificateRequestMessage control value. + + + + + Return the type of this control. + + + + + Return the value contained in this control object. + + + + + An encrypted value padder is used to make sure that prior to a value been + encrypted the data is padded to a standard length. + + + + + Return a byte array of padded data. + + the data to be padded. + a padded byte array containing data. + + + + + Return a byte array of with padding removed. + + the data to be padded. + an array containing the original unpadded data. + + + + + Basic constructor - build from an PKIArchiveOptions structure. + + the ASN.1 structure that will underlie this control. + + + + Return the type of this control. + + CRMFObjectIdentifiers.id_regCtrl_pkiArchiveOptions + + + + Return the underlying ASN.1 object. + + a PKIArchiveOptions structure. + + + + Return the archive control type, one of: encryptedPrivKey,keyGenParameters,or archiveRemGenPrivKey. + + the archive control type. + + + + Return whether this control contains enveloped data. + + true if the control contains enveloped data, false otherwise. + + + + Return the enveloped data structure contained in this control. + + a CMSEnvelopedData object. + + + + Basic constructor - specify the contents of the PKIArchiveControl structure. + + the private key to be archived. + the general name to be associated with the private key. + + + + Add a recipient generator to this control. + recipient generator created for a specific recipient. + this builder object. + + + Build the PKIArchiveControl using the passed in encryptor to encrypt its contents. + a suitable content encryptor. + a PKIArchiveControl object. + + + + Default, IterationCount = 1000, OIW=IdSha1, Mac=HmacSHA1 + + + + + Defaults with IPKMacPrimitivesProvider + + + + + + Create. + + The Mac provider + Digest Algorithm Id + Mac Algorithm Id + + + + Create a PKMAC builder enforcing a ceiling on the maximum iteration count. + + supporting calculator + max allowable value for iteration count. + + + Set the salt length in octets. + + @param saltLength length in octets of the salt to be generated. + @return the generator + + + + Set the iteration count. + + the iteration count. + this + if iteration count is less than 100 + + + + Set PbmParameters + + The parameters. + this + + + + The Secure random + + The random. + this + + + + Build an IMacFactory. + + The password. + IMacFactory + + + + Basic constructor - build from a UTF-8 string representing the token. + + UTF-8 string representing the token. + + + + Basic constructor - build from a string representing the token. + + string representing the token. + + + + Return the type of this control. + + CRMFObjectIdentifiers.id_regCtrl_regToken + + + + Return the token associated with this control (a UTF8String). + + a UTF8String. + + + a Diffie-Hellman key exchange engine. +

+ note: This uses MTI/A0 key agreement in order to make the key agreement + secure against passive attacks. If you're doing Diffie-Hellman and both + parties have long term public keys you should look at using this. For + further information have a look at RFC 2631.

+

+ It's possible to extend this to more than two parties as well, for the moment + that is left as an exercise for the reader.

+
+ + calculate our initial message. + + + given a message from a given party and the corresponding public key + calculate the next message in the agreement sequence. In this case + this will represent the shared secret. + + + a Diffie-Hellman key agreement class. +

+ note: This is only the basic algorithm, it doesn't take advantage of + long term public keys if they are available. See the DHAgreement class + for a "better" implementation.

+
+ + given a short term public key from a given party calculate the next + message in the agreement sequence. + + + Standard Diffie-Hellman groups from various IETF specifications. + + + P1363 7.2.1 ECSVDP-DH + + ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive, + Diffie-Hellman version. It is based on the work of [DH76], [Mil86], + and [Kob87]. This primitive derives a shared secret value from one + party's private key and another party's public key, where both have + the same set of EC domain parameters. If two parties correctly + execute this primitive, they will produce the same output. This + primitive can be invoked by a scheme to derive a shared secret key; + specifically, it may be used with the schemes ECKAS-DH1 and + DL/ECKAS-DH2. It assumes that the input keys are valid (see also + Section 7.2.2). + + + P1363 7.2.2 ECSVDP-DHC + + ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive, + Diffie-Hellman version with cofactor multiplication. It is based on + the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This + primitive derives a shared secret value from one party's private key + and another party's public key, where both have the same set of EC + domain parameters. If two parties correctly execute this primitive, + they will produce the same output. This primitive can be invoked by a + scheme to derive a shared secret key; specifically, it may be used + with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the + validity of the input public key (see also Section 7.2.1). +

+ Note: As stated P1363 compatibility mode with ECDH can be preset, and + in this case the implementation doesn't have a ECDH compatibility mode + (if you want that just use ECDHBasicAgreement and note they both implement + BasicAgreement!).

+
+ + + A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange. + + The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper + + "Password Authenticated Key Exchange by Juggling, 2008." + + The J-PAKE protocol is symmetric. + There is no notion of a client or server, but rather just two participants. + An instance of JPakeParticipant represents one participant, and + is the primary interface for executing the exchange. + + To execute an exchange, construct a JPakeParticipant on each end, + and call the following 7 methods + (once and only once, in the given order, for each participant, sending messages between them as described): + + CreateRound1PayloadToSend() - and send the payload to the other participant + ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant + CreateRound2PayloadToSend() - and send the payload to the other participant + ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant + CalculateKeyingMaterial() + CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant + ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant + + Each side should derive a session key from the keying material returned by CalculateKeyingMaterial(). + The caller is responsible for deriving the session key using a secure key derivation function (KDF). + + Round 3 is an optional key confirmation process. + If you do not execute round 3, then there is no assurance that both participants are using the same key. + (i.e. if the participants used different passwords, then their session keys will differ.) + + If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides. + + The symmetric design can easily support the asymmetric cases when one party initiates the communication. + e.g. Sometimes the round1 payload and round2 payload may be sent in one pass. + Also, in some cases, the key confirmation payload can be sent together with the round2 payload. + These are the trivial techniques to optimize the communication. + + The key confirmation process is implemented as specified in + NIST SP 800-56A Revision 1, + Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes. + + This class is stateful and NOT threadsafe. + Each instance should only be used for ONE complete J-PAKE exchange + (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange). + + + + + Convenience constructor for a new JPakeParticipant that uses + the JPakePrimeOrderGroups#NIST_3072 prime order group, + a SHA-256 digest, and a default SecureRandom implementation. + + After construction, the State state will be STATE_INITIALIZED. + + Throws NullReferenceException if any argument is null. Throws + ArgumentException if password is empty. + + Unique identifier of this participant. + The two participants in the exchange must NOT share the same id. + Shared secret. + A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called). + Caller should clear the input password as soon as possible. + + + + Convenience constructor for a new JPakeParticipant that uses + a SHA-256 digest, and a default SecureRandom implementation. + + After construction, the State state will be STATE_INITIALIZED. + + Throws NullReferenceException if any argument is null. Throws + ArgumentException if password is empty. + + Unique identifier of this participant. + The two participants in the exchange must NOT share the same id. + Shared secret. + A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called). + Caller should clear the input password as soon as possible. + Prime order group. See JPakePrimeOrderGroups for standard groups. + + + + Constructor for a new JPakeParticipant. + + After construction, the State state will be STATE_INITIALIZED. + + Throws NullReferenceException if any argument is null. Throws + ArgumentException if password is empty. + + Unique identifier of this participant. + The two participants in the exchange must NOT share the same id. + Shared secret. + A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called). + Caller should clear the input password as soon as possible. + Prime order group. See JPakePrimeOrderGroups for standard groups. + Digest to use during zero knowledge proofs and key confirmation + (SHA-256 or stronger preferred). + Source of secure random data for x1 and x2, and for the zero knowledge proofs. + + + + Gets the current state of this participant. + See the STATE_* constants for possible values. + + + + + Creates and returns the payload to send to the other participant during round 1. + + After execution, the State state} will be STATE_ROUND_1_CREATED}. + + + + + Validates the payload received from the other participant during round 1. + + Must be called prior to CreateRound2PayloadToSend(). + + After execution, the State state will be STATE_ROUND_1_VALIDATED. + + Throws CryptoException if validation fails. Throws InvalidOperationException + if called multiple times. + + + + + Creates and returns the payload to send to the other participant during round 2. + + ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method. + + After execution, the State state will be STATE_ROUND_2_CREATED. + + Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times + + + + + Validates the payload received from the other participant during round 2. + Note that this DOES NOT detect a non-common password. + The only indication of a non-common password is through derivation + of different keys (which can be detected explicitly by executing round 3 and round 4) + + Must be called prior to CalculateKeyingMaterial(). + + After execution, the State state will be STATE_ROUND_2_VALIDATED. + + Throws CryptoException if validation fails. Throws + InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times + + + + + Calculates and returns the key material. + A session key must be derived from this key material using a secure key derivation function (KDF). + The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant). + + The keying material will be identical for each participant if and only if + each participant's password is the same. i.e. If the participants do not + share the same password, then each participant will derive a different key. + Therefore, if you immediately start using a key derived from + the keying material, then you must handle detection of incorrect keys. + If you want to handle this detection explicitly, you can optionally perform + rounds 3 and 4. See JPakeParticipant for details on how to execute + rounds 3 and 4. + + The keying material will be in the range [0, p-1]. + + ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method. + + As a side effect, the internal password array is cleared, since it is no longer needed. + + After execution, the State state will be STATE_KEY_CALCULATED. + + Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload), + or if called multiple times. + + + + + Creates and returns the payload to send to the other participant during round 3. + + See JPakeParticipant for more details on round 3. + + After execution, the State state} will be STATE_ROUND_3_CREATED. + Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple + times. + + The keying material as returned from CalculateKeyingMaterial(). + + + + Validates the payload received from the other participant during round 3. + + See JPakeParticipant for more details on round 3. + + After execution, the State state will be STATE_ROUND_3_VALIDATED. + + Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to + CalculateKeyingMaterial or multiple times + + The round 3 payload received from the other participant. + The keying material as returned from CalculateKeyingMaterial(). + + + + A pre-computed prime order group for use during a J-PAKE exchange. + + Typically a Schnorr group is used. In general, J-PAKE can use any prime order group + that is suitable for public key cryptography, including elliptic curve cryptography. + + See JPakePrimeOrderGroups for convenient standard groups. + + NIST publishes + many groups that can be used for the desired level of security. + + + + + Constructs a new JPakePrimeOrderGroup. + + In general, you should use one of the pre-approved groups from + JPakePrimeOrderGroups, rather than manually constructing one. + + The following basic checks are performed: + + p-1 must be evenly divisible by q + g must be in [2, p-1] + g^q mod p must equal 1 + p must be prime (within reasonably certainty) + q must be prime (within reasonably certainty) + + The prime checks are performed using BigInteger#isProbablePrime(int), + and are therefore subject to the same probability guarantees. + + These checks prevent trivial mistakes. + However, due to the small uncertainties if p and q are not prime, + advanced attacks are not prevented. + Use it at your own risk. + + Throws NullReferenceException if any argument is null. Throws + InvalidOperationException is any of the above validations fail. + + + + + Constructor used by the pre-approved groups in JPakePrimeOrderGroups. + These pre-approved groups can avoid the expensive checks. + User-specified groups should not use this constructor. + + + + + Standard pre-computed prime order groups for use by J-PAKE. + (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.) +

+ This class contains some convenient constants for use as input for + constructing {@link JPAKEParticipant}s. +

+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB), + and from the prime order groups + published by NIST. +

+
+ + + From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB) + 1024-bit p, 160-bit q and 1024-bit g for 80-bit security. + + + + + From NIST. + 2048-bit p, 224-bit q and 2048-bit g for 112-bit security. + + + + + From NIST. + 3072-bit p, 256-bit q and 3072-bit g for 128-bit security. + + + + + The payload sent/received during the first round of a J-PAKE exchange. + + Each JPAKEParticipant creates and sends an instance of this payload to + the other. The payload to send should be created via + JPAKEParticipant.CreateRound1PayloadToSend(). + + Each participant must also validate the payload received from the other. + The received payload should be validated via + JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload). + + + + + The id of the JPAKEParticipant who created/sent this payload. + + + + + The value of g^x1 + + + + + The value of g^x2 + + + + + The zero knowledge proof for x1. + + This is a two element array, containing {g^v, r} for x1. + + + + + The zero knowledge proof for x2. + + This is a two element array, containing {g^v, r} for x2. + + + + + The payload sent/received during the second round of a J-PAKE exchange. + + Each JPAKEParticipant creates and sends an instance + of this payload to the other JPAKEParticipant. + The payload to send should be created via + JPAKEParticipant#createRound2PayloadToSend() + + Each JPAKEParticipant must also validate the payload + received from the other JPAKEParticipant. + The received payload should be validated via + JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload) + + + + + The id of the JPAKEParticipant who created/sent this payload. + + + + + The value of A, as computed during round 2. + + + + + The zero knowledge proof for x2 * s. + + This is a two element array, containing {g^v, r} for x2 * s. + + + + + The payload sent/received during the optional third round of a J-PAKE exchange, + which is for explicit key confirmation. + + Each JPAKEParticipant creates and sends an instance + of this payload to the other JPAKEParticipant. + The payload to send should be created via + JPAKEParticipant#createRound3PayloadToSend(BigInteger) + + Eeach JPAKEParticipant must also validate the payload + received from the other JPAKEParticipant. + The received payload should be validated via + JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger) + + + + + The id of the {@link JPAKEParticipant} who created/sent this payload. + + + + + The value of MacTag, as computed by round 3. + + See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest) + + + + + Primitives needed for a J-PAKE exchange. + + The recommended way to perform a J-PAKE exchange is by using + two JPAKEParticipants. Internally, those participants + call these primitive operations in JPakeUtilities. + + The primitives, however, can be used without a JPAKEParticipant if needed. + + + + + Return a value that can be used as x1 or x3 during round 1. + The returned value is a random value in the range [0, q-1]. + + + + + Return a value that can be used as x2 or x4 during round 1. + The returned value is a random value in the range [1, q-1]. + + + + + Converts the given password to a BigInteger + for use in arithmetic calculations. + + + + + Calculate g^x mod p as done in round 1. + + + + + Calculate ga as done in round 2. + + + + + Calculate x2 * s as done in round 2. + + + + + Calculate A as done in round 2. + + + + + Calculate a zero knowledge proof of x using Schnorr's signature. + The returned array has two elements {g^v, r = v-x*h} for x. + + + + + Validates that g^x4 is not 1. + throws CryptoException if g^x4 is 1 + + + + + Validates that ga is not 1. + + As described by Feng Hao... + Alice could simply check ga != 1 to ensure it is a generator. + In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks. + Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q. + + throws CryptoException if ga is 1 + + + + + Validates the zero knowledge proof (generated by + calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom) + is correct. + + throws CryptoException if the zero knowledge proof is not correct + + + + + Calculates the keying material, which can be done after round 2 has completed. + A session key must be derived from this key material using a secure key derivation function (KDF). + The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant). + + KeyingMaterial = (B/g^{x2*x4*s})^x2 + + + + + Validates that the given participant ids are not equal. + (For the J-PAKE exchange, each participant must use a unique id.) + + Throws CryptoException if the participantId strings are equal. + + + + + Validates that the given participant ids are equal. + This is used to ensure that the payloads received from + each round all come from the same participant. + + + + + Validates that the given object is not null. + throws NullReferenceException if the object is null. + + object in question + name of the object (to be used in exception message) + + + + Calculates the MacTag (to be used for key confirmation), as defined by + NIST SP 800-56A Revision 1, + Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes. + + MacTag = HMAC(MacKey, MacLen, MacData) + MacKey = H(K || "JPAKE_KC") + MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4 + + Note that both participants use "KC_1_U" because the sender of the round 3 message + is always the initiator for key confirmation. + + HMAC = {@link HMac} used with the given {@link Digest} + H = The given {@link Digest} + MacLen = length of MacTag + + + + + Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation). + + MacKey = H(K || "JPAKE_KC") + + + + + Validates the MacTag received from the partner participant. + + throws CryptoException if the participantId strings are equal. + + + + Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1 + + + @param digest the digest to be used as the source of generated bytes + + + return the underlying digest. + + + fill len bytes of the output buffer with bytes generated from + the derivation function. + + @throws DataLengthException if the out buffer is too small. + + + RFC 2631 Diffie-hellman KEK derivation function. + + + X9.63 based key derivation function for ECDH CMS. + + + + SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02 + + + + Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe. + This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper + "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002" + + + Initialises the client to begin new authentication attempt + @param N The safe prime associated with the client's verifier + @param g The group parameter associated with the client's verifier + @param digest The digest algorithm associated with the client's verifier + @param random For key generation + + + Generates client's credentials given the client's salt, identity and password + @param salt The salt used in the client's verifier. + @param identity The user's identity (eg. username) + @param password The user's password + @return Client's public value to send to server + + + Generates client's verification message given the server's credentials + @param serverB The server's credentials + @return Client's verification message for the server + @throws CryptoException If server's credentials are invalid + + + Computes the client evidence message M1 using the previously received values. + To be called after calculating the secret S. + @return M1: the client side generated evidence message + @throws CryptoException + + + Authenticates the server evidence message M2 received and saves it only if correct. + @param M2: the server side generated evidence message + @return A boolean indicating if the server message M2 was the expected one. + @throws CryptoException + + + Computes the final session key as a result of the SRP successful mutual authentication + To be called after verifying the server evidence message M2. + @return Key: the mutually authenticated symmetric session key + @throws CryptoException + + + Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe. + This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper + "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002" + + + Initialises the server to accept a new client authentication attempt + @param N The safe prime associated with the client's verifier + @param g The group parameter associated with the client's verifier + @param v The client's verifier + @param digest The digest algorithm associated with the client's verifier + @param random For key generation + + + Generates the server's credentials that are to be sent to the client. + @return The server's public value to the client + + + Processes the client's credentials. If valid the shared secret is generated and returned. + @param clientA The client's credentials + @return A shared secret BigInteger + @throws CryptoException If client's credentials are invalid + + + Authenticates the received client evidence message M1 and saves it only if correct. + To be called after calculating the secret S. + @param M1: the client side generated evidence message + @return A boolean indicating if the client message M1 was the expected one. + @throws CryptoException + + + Computes the server evidence message M2 using the previously verified values. + To be called after successfully verifying the client evidence message M1. + @return M2: the server side generated evidence message + @throws CryptoException + + + Computes the final session key as a result of the SRP successful mutual authentication + To be called after calculating the server evidence message M2. + @return Key: the mutual authenticated symmetric session key + @throws CryptoException + + + Computes the client evidence message (M1) according to the standard routine: + M1 = H( A | B | S ) + @param digest The Digest used as the hashing function H + @param N Modulus used to get the pad length + @param A The public client value + @param B The public server value + @param S The secret calculated by both sides + @return M1 The calculated client evidence message + + + Computes the server evidence message (M2) according to the standard routine: + M2 = H( A | M1 | S ) + @param digest The Digest used as the hashing function H + @param N Modulus used to get the pad length + @param A The public client value + @param M1 The client evidence message + @param S The secret calculated by both sides + @return M2 The calculated server evidence message + + + Computes the final Key according to the standard routine: Key = H(S) + @param digest The Digest used as the hashing function H + @param N Modulus used to get the pad length + @param S The secret calculated by both sides + @return + + + Generates new SRP verifier for user + + + Initialises generator to create new verifiers + @param N The safe prime to use (see DHParametersGenerator) + @param g The group parameter to use (see DHParametersGenerator) + @param digest The digest to use. The same digest type will need to be used later for the actual authentication + attempt. Also note that the final session key size is dependent on the chosen digest. + + + Creates a new SRP verifier + @param salt The salt to use, generally should be large and random + @param identity The user's identifying information (eg. username) + @param password The user's password + @return A new verifier for use in future SRP authentication + + + a holding class for public/private parameter pairs. + + + basic constructor. + + @param publicParam a public key parameters object. + @param privateParam the corresponding private key parameters. + + + return the public key parameters. + + @return the public key parameters. + + + return the private key parameters. + + @return the private key parameters. + + + The AEAD block ciphers already handle buffering internally, so this class + just takes care of implementing IBufferedCipher methods. + + + initialise the cipher. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the blocksize for the underlying cipher. + + @return the blocksize for the underlying cipher. + + + return the size of the output buffer required for an update + an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to update + with len bytes of input. + + + return the size of the output buffer required for an update plus a + doFinal with an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to update and doFinal + with len bytes of input. + + + process a single byte, producing an output block if necessary. + + @param in the input byte. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + process an array of bytes, producing output if necessary. + + @param in the input byte array. + @param inOff the offset at which the input data starts. + @param len the number of bytes to be copied out of the input array. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + Process the last block in the buffer. + + @param out the array the block currently being held is copied into. + @param outOff the offset at which the copying starts. + @return the number of output bytes copied to out. + @exception DataLengthException if there is insufficient space in out for + the output, or the input is not block size aligned and should be. + @exception InvalidOperationException if the underlying cipher is not + initialised. + @exception InvalidCipherTextException if padding is expected and not found. + @exception DataLengthException if the input is not block size + aligned. + + + Reset the buffer and cipher. After resetting the object is in the same + state as it was after the last init (if there was one). + + + The AEAD ciphers already handle buffering internally, so this class + just takes care of implementing IBufferedCipher methods. + + + initialise the cipher. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the blocksize for the underlying cipher. + + @return the blocksize for the underlying cipher. + + + return the size of the output buffer required for an update + an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to update + with len bytes of input. + + + return the size of the output buffer required for an update plus a + doFinal with an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to update and doFinal + with len bytes of input. + + + process a single byte, producing an output block if necessary. + + @param in the input byte. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + process an array of bytes, producing output if necessary. + + @param in the input byte array. + @param inOff the offset at which the input data starts. + @param len the number of bytes to be copied out of the input array. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + Process the last block in the buffer. + + @param out the array the block currently being held is copied into. + @param outOff the offset at which the copying starts. + @return the number of output bytes copied to out. + @exception DataLengthException if there is insufficient space in out for + the output, or the input is not block size aligned and should be. + @exception InvalidOperationException if the underlying cipher is not + initialised. + @exception InvalidCipherTextException if padding is expected and not found. + @exception DataLengthException if the input is not block size + aligned. + + + Reset the buffer and cipher. After resetting the object is in the same + state as it was after the last init (if there was one). + + + a buffer wrapper for an asymmetric block cipher, allowing input + to be accumulated in a piecemeal fashion until final processing. + + + base constructor. + + @param cipher the cipher this buffering object wraps. + + + return the amount of data sitting in the buffer. + + @return the amount of data sitting in the buffer. + + + initialise the buffer and the underlying cipher. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + + + process the contents of the buffer using the underlying + cipher. + + @return the result of the encryption/decryption process on the + buffer. + @exception InvalidCipherTextException if we are given a garbage block. + + + Reset the buffer + + + A wrapper class that allows block ciphers to be used to process data in + a piecemeal fashion. The BufferedBlockCipher outputs a block only when the + buffer is full and more data is being added, or on a doFinal. +

+ Note: in the case where the underlying cipher is either a CFB cipher or an + OFB one the last block may not be a multiple of the block size. +

+
+ + constructor for subclasses + + + Create a buffered block cipher without padding. + + @param cipher the underlying block cipher this buffering object wraps. + false otherwise. + + + initialise the cipher. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the blocksize for the underlying cipher. + + @return the blocksize for the underlying cipher. + + + return the size of the output buffer required for an update + an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to update + with len bytes of input. + + + return the size of the output buffer required for an update plus a + doFinal with an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to update and doFinal + with len bytes of input. + + + process a single byte, producing an output block if necessary. + + @param in the input byte. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + process an array of bytes, producing output if necessary. + + @param in the input byte array. + @param inOff the offset at which the input data starts. + @param len the number of bytes to be copied out of the input array. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + Process the last block in the buffer. + + @param out the array the block currently being held is copied into. + @param outOff the offset at which the copying starts. + @return the number of output bytes copied to out. + @exception DataLengthException if there is insufficient space in out for + the output, or the input is not block size aligned and should be. + @exception InvalidOperationException if the underlying cipher is not + initialised. + @exception InvalidCipherTextException if padding is expected and not found. + @exception DataLengthException if the input is not block size + aligned. + + + Reset the buffer and cipher. After resetting the object is in the same + state as it was after the last init (if there was one). + + + The base class for symmetric, or secret, cipher key generators. + + + initialise the key generator. + + @param param the parameters to be used for key generation + + + Generate a secret key. + + @return a byte array containing the key value. + + + this exception is thrown if a buffer that is meant to have output + copied into it turns out to be too short, or if we've been given + insufficient input. In general this exception will Get thrown rather + than an ArrayOutOfBounds exception. + + + base constructor. + + + create a DataLengthException with the given message. + + @param message the message to be carried with the exception. + + + + Basic sized constructor - size in bits. + + @param digestSize size of the digest in bits + + + Blake2b for authentication ("Prefix-MAC mode"). + After calling the doFinal() method, the key will + remain to be used for further computations of + this instance. + The key can be overwritten using the clearKey() method. + + @param key A key up to 64 bytes or null + + + Blake2b with key, required digest length (in bytes), salt and personalization. + After calling the doFinal() method, the key, the salt and the personal string + will remain and might be used for further computations with this instance. + The key can be overwritten using the clearKey() method, the salt (pepper) + can be overwritten using the clearSalt() method. + + @param key A key up to 64 bytes or null + @param digestLength from 1 up to 64 bytes + @param salt 16 bytes or null + @param personalization 16 bytes or null + + + update the message digest with a single byte. + + @param b the input byte to be entered. + + + update the message digest with a block of bytes. + + @param message the byte array containing the data. + @param offset the offset into the byte array where the data starts. + @param len the length of the data. + + + close the digest, producing the final digest value. The doFinal + call leaves the digest reset. + Key, salt and personal string remain. + + @param out the array the digest is to be copied into. + @param outOffset the offset into the out array the digest is to start at. + + + Reset the digest back to it's initial state. + The key, the salt and the personal string will + remain for further computations. + + + return the algorithm name + + @return the algorithm name + + + return the size, in bytes, of the digest produced by this message digest. + + @return the size, in bytes, of the digest produced by this message digest. + + + Return the size in bytes of the internal buffer the digest applies it's compression + function to. + + @return byte length of the digests internal buffer. + + + Overwrite the key + if it is no longer used (zeroization) + + + Overwrite the salt (pepper) if it + is secret and no longer used (zeroization) + + + Implementation of the cryptographic hash function BLAKE2s. +

+ BLAKE2s offers a built-in keying mechanism to be used directly + for authentication ("Prefix-MAC") rather than a HMAC construction. +

+ BLAKE2s offers a built-in support for a salt for randomized hashing + and a personal string for defining a unique hash function for each application. +

+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size + between 1 and 32 bytes. + + + BLAKE2s Initialization Vector + + + + Message word permutations + + + + Whenever this buffer overflows, it will be processed in the Compress() + function. For performance issues, long messages will not use this buffer. + + + Position of last inserted byte + + + + Internal state, in the BLAKE2 paper it is called v + + + + State vector, in the BLAKE2 paper it is called h + + + + holds least significant bits of counter + + + + holds most significant bits of counter + + + + finalization flag, for last block: ~0 + + + + BLAKE2s-256 for hashing. + + + BLAKE2s for hashing. + + @param digestBits the desired digest length in bits. Must be a multiple of 8 and less than 256. + + + BLAKE2s for authentication ("Prefix-MAC mode"). +

+ After calling the doFinal() method, the key will remain to be used for + further computations of this instance. The key can be overwritten using + the clearKey() method. + + @param key a key up to 32 bytes or null + + + BLAKE2s with key, required digest length, salt and personalization. +

+ After calling the doFinal() method, the key, the salt and the personal + string will remain and might be used for further computations with this + instance. The key can be overwritten using the clearKey() method, the + salt (pepper) can be overwritten using the clearSalt() method. + + @param key a key up to 32 bytes or null + @param digestBytes from 1 up to 32 bytes + @param salt 8 bytes or null + @param personalization 8 bytes or null + + + Update the message digest with a single byte. + + @param b the input byte to be entered. + + + Update the message digest with a block of bytes. + + @param message the byte array containing the data. + @param offset the offset into the byte array where the data starts. + @param len the length of the data. + + + Close the digest, producing the final digest value. The doFinal() call + leaves the digest reset. Key, salt and personal string remain. + + @param out the array the digest is to be copied into. + @param outOffset the offset into the out array the digest is to start at. + + + Reset the digest back to its initial state. The key, the salt and the + personal string will remain for further computations. + + + Return the algorithm name. + + @return the algorithm name + + + Return the size in bytes of the digest produced by this message digest. + + @return the size in bytes of the digest produced by this message digest. + + + Return the size in bytes of the internal buffer the digest applies its + compression function to. + + @return byte length of the digest's internal buffer. + + + Overwrite the key if it is no longer used (zeroization). + + + Overwrite the salt (pepper) if it is secret and no longer used + (zeroization). + + +

+ Customizable SHAKE function. + +
+ + + Base constructor + + bit length of the underlying SHAKE function, 128 or 256. + the function name string, note this is reserved for use by NIST. Avoid using it if not required. + the customization string - available for local use. + + + implementation of Ukrainian DSTU 7564 hash function + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + implementation of GOST R 34.11-94 + + + Standard constructor + + + Constructor to allow use of a particular sbox with GOST28147 + @see GOST28147Engine#getSBox(String) + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables to the IV values. + + + + Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/ + + + Following the naming conventions used in the C source code to enable easy review of the implementation. + + + + Return the size of block that the compression function is applied to in bytes. + + @return internal byte length of a block. + + + Base class for SHA-384 and SHA-512. + + + Constructor for variable length word + + + Copy constructor. We are using copy constructors in place + of the object.Clone() interface as this interface is not + supported by J2ME. + + + adjust the byte counts so that byteCount2 represents the + upper long (less 3 bits) word of the byte count. + + + implementation of MD2 + as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992 + + + return the algorithm name + + @return the algorithm name + + + Close the digest, producing the final digest value. The doFinal + call leaves the digest reset. + + @param out the array the digest is to be copied into. + @param outOff the offset into the out array the digest is to start at. + + + reset the digest back to it's initial state. + + + update the message digest with a single byte. + + @param in the input byte to be entered. + + + update the message digest with a block of bytes. + + @param in the byte array containing the data. + @param inOff the offset into the byte array where the data starts. + @param len the length of the data. + + + implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for + Computer Science and RSA Data Security, Inc. +

+ NOTE: This algorithm is only included for backwards compatibility + with legacy applications, it's not secure, don't use it for anything new!

+
+ + Standard constructor + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables to the IV values. + + + implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347. + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables to the IV values. + + + Wrapper removes exposure to the IMemoable interface on an IDigest implementation. + + + Base constructor. + + @param baseDigest underlying digest to use. + @exception IllegalArgumentException if baseDigest is null + + + implementation of RipeMD128 + + + Standard constructor + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables to the IV values. + + + implementation of RipeMD see, + http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html + + + Standard constructor + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables to the IV values. + + + +

Implementation of RipeMD256.

+

Note: this algorithm offers the same level of security as RipeMD128.

+
+
+ + Standard constructor + + + Copy constructor. This will copy the state of the provided + message digest. + + + + reset the chaining variables to the IV values. + + + +

Implementation of RipeMD 320.

+

Note: this algorithm offers the same level of security as RipeMD160.

+
+
+ + Standard constructor + + + Copy constructor. This will copy the state of the provided + message digest. + + + + reset the chaining variables to the IV values. + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables + + + SHA-224 as described in RFC 3874 +
+                    block  word  digest
+            SHA-1   512    32    160
+            SHA-224 512    32    224
+            SHA-256 512    32    256
+            SHA-384 1024   64    384
+            SHA-512 1024   64    512
+            
+
+ + Standard constructor + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables + + + Draft FIPS 180-2 implementation of SHA-256. Note: As this is + based on a draft this implementation is subject to change. + +
+                     block  word  digest
+             SHA-1   512    32    160
+             SHA-256 512    32    256
+             SHA-384 1024   64    384
+             SHA-512 1024   64    512
+             
+
+ + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables + + + Draft FIPS 180-2 implementation of SHA-384. Note: As this is + based on a draft this implementation is subject to change. + +
+                     block  word  digest
+             SHA-1   512    32    160
+             SHA-256 512    32    256
+             SHA-384 1024   64    384
+             SHA-512 1024   64    512
+             
+
+ + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables + + + + Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/ + + + Following the naming conventions used in the C source code to enable easy review of the implementation. + + + + Draft FIPS 180-2 implementation of SHA-512. Note: As this is + based on a draft this implementation is subject to change. + +
+                     block  word  digest
+             SHA-1   512    32    160
+             SHA-256 512    32    256
+             SHA-384 1024   64    384
+             SHA-512 1024   64    512
+             
+
+ + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables + + + FIPS 180-4 implementation of SHA-512/t + + + Standard constructor + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables + + + + Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/ + + + Following the naming conventions used in the C source code to enable easy review of the implementation. + + + + Wrapper class that reduces the output length of a particular digest to + only the first n bytes of the digest function. + + + Base constructor. + + @param baseDigest underlying digest to use. + @param length length in bytes of the output of doFinal. + @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize(). + + + + Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes, + based on the Threefish tweakable block cipher. + + + This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3 + competition in October 2010. +

+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir + Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker. + + + + + +

+ 256 bit block size - Skein-256 + +
+ + + 512 bit block size - Skein-512 + + + + + 1024 bit block size - Skein-1024 + + + + + Constructs a Skein digest with an internal state size and output size. + + the internal state size in bits - one of or + . + the output/digest size to produce in bits, which must be an integral number of + bytes. + + + + Optionally initialises the Skein digest with the provided parameters. + + See for details on the parameterisation of the Skein hash function. + the parameters to apply to this engine, or null to use no parameters. + + + + Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block + sizes, based on the Threefish tweakable block cipher. + + + This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3 + competition in October 2010. +

+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir + Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker. +

+ This implementation is the basis for and , implementing the + parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to + be applied during the Skein hash function. +

+ Implemented: +

    +
  • 256, 512 and 1024 bit internal states.
  • +
  • Full 96 bit input length.
  • +
  • Parameters defined in the Skein specification, and arbitrary other pre and post message + parameters.
  • +
  • Arbitrary output size in 1 byte intervals.
  • +
+

+ Not implemented: +

    +
  • Sub-byte length input (bit padding).
  • +
  • Tree hashing.
  • +
+
+ +
+ + + 256 bit block size - Skein-256 + + + + + 512 bit block size - Skein-512 + + + + + 1024 bit block size - Skein-1024 + + + + The parameter type for the Skein key. + + + The parameter type for the Skein configuration block. + + + The parameter type for the message. + + + The parameter type for the output transformation. + + + Precalculated UBI(CFG) states for common state/output combinations without key or other + pre-message params. + + + Point at which position might overflow long, so switch to add with carry logic + + + Bit 127 = final + + + Bit 126 = first + + + UBI uses a 128 bit tweak + + + Whether 64 bit position exceeded + + + Advances the position in the tweak by the specified value. + + + The Unique Block Iteration chaining mode. + + + Buffer for the current block of message data + + + Offset into the current message block + + + Buffer for message words for feedback into encrypted block + + + Underlying Threefish tweakable block cipher + + + Size of the digest output, in bytes + + + The current chaining/state value + + + The initial state value + + + The (optional) key parameter + + + Parameters to apply prior to the message + + + Parameters to apply after the message, but prior to output + + + The current UBI operation + + + Buffer for single byte update method + + + + Constructs a Skein digest with an internal state size and output size. + + the internal state size in bits - one of or + . + the output/digest size to produce in bits, which must be an integral number of + bytes. + + + + Creates a SkeinEngine as an exact copy of an existing instance. + + + + + Initialises the Skein engine with the provided parameters. See for + details on the parameterisation of the Skein hash function. + + the parameters to apply to this engine, or null to use no parameters. + + + Calculate the initial (pre message block) chaining state. + + + + Reset the engine to the initial state (with the key and any pre-message parameters , ready to + accept message input. + + + + + Implementation of Chinese SM3 digest as described at + http://tools.ietf.org/html/draft-shen-sm3-hash-00 + and at .... ( Chinese PDF ) + + + The specification says "process a bit stream", + but this is written to process bytes in blocks of 4, + meaning this will process 32-bit word groups. + But so do also most other digest specifications, + including the SHA-256 which was a origin for + this specification. + + + + + Standard constructor + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + reset the chaining variables + + + + implementation of Tiger based on: + + http://www.cs.technion.ac.il/~biham/Reports/Tiger + + + Standard constructor + + + Copy constructor. This will copy the state of the provided + message digest. + + + reset the chaining variables + + + Implementation of WhirlpoolDigest, based on Java source published by Barreto + and Rijmen. + + + + Copy constructor. This will copy the state of the provided message + digest. + + + Reset the chaining variables + + + return the X9ECParameters object for the named curve represented by + the passed in object identifier. Null if the curve isn't present. + + @param oid an object identifier representing a named curve, if present. + + + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + + + return the named curve name represented by the given object identifier. + + + returns an enumeration containing the name strings for curves + contained in this structure. + + + ISO 9796-1 padding. Note in the light of recent results you should + only use this with RSA (rather than the "simpler" Rabin keys) and you + should never use it with anything other than a hash (ie. even if the + message is small don't sign the message, sign it's hash) or some "random" + value. See your favorite search engine for details. + + + return the input block size. The largest message we can process + is (key_size_in_bits + 3)/16, which in our world comes to + key_size_in_bytes / 2. + + + return the maximum possible size for the output. + + + set the number of bits in the next message to be treated as + pad bits. + + + retrieve the number of pad bits in the last decoded message. + + + @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string + + + Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2. + + + @exception InvalidCipherTextException if the decrypted block turns out to + be badly formatted. + + + int to octet string. + + + mask generator function, as described in PKCS1v2. + + + this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this + depends on your application - see Pkcs1 Version 2 for details. + + + some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to + work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false. + + + The same effect can be achieved by setting the static property directly +

+ The static property is checked during construction of the encoding object, it is set to + true by default. +

+
+ + Basic constructor. + + @param cipher + + + Constructor for decryption with a fixed plaintext length. + + @param cipher The cipher to use for cryptographic operation. + @param pLen Length of the expected plaintext. + + + Constructor for decryption with a fixed plaintext length and a fallback + value that is returned, if the padding is incorrect. + + @param cipher + The cipher to use for cryptographic operation. + @param fallback + The fallback value, we don't to a arraycopy here. + + + Checks if the argument is a correctly PKCS#1.5 encoded Plaintext + for encryption. + + @param encoded The Plaintext. + @param pLen Expected length of the plaintext. + @return Either 0, if the encoding is correct, or -1, if it is incorrect. + + + Decode PKCS#1.5 encoding, and return a random value if the padding is not correct. + + @param in The encrypted block. + @param inOff Offset in the encrypted block. + @param inLen Length of the encrypted block. + @param pLen Length of the desired output. + @return The plaintext without padding, or a random value if the padding was incorrect. + @throws InvalidCipherTextException + + + @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format. + + + an implementation of the AES (Rijndael), from FIPS-197. +

+ For further details see: http://csrc.nist.gov/encryption/aes/. + + This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at + http://fp.gladman.plus.com/cryptography_technology/rijndael/ + + There are three levels of tradeoff of speed vs memory + Because java has no preprocessor, they are written as three separate classes from which to choose + + The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption + and 4 for decryption. + + The middle performance version uses only one 256 word table for each, for a total of 2Kbytes, + adding 12 rotate operations per round to compute the values contained in the other tables from + the contents of the first. + + The slowest version uses no static tables at all and computes the values in each round. +

+

+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation. +

+
+ + Calculate the necessary round keys + The number of calculations depends on key size and block size + AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits + This code is written assuming those are the only possible values + + + default constructor - 128 bit block size. + + + initialise an AES cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + an implementation of the AES (Rijndael)), from FIPS-197. +

+ For further details see: http://csrc.nist.gov/encryption/aes/. + + This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at + http://fp.gladman.plus.com/cryptography_technology/rijndael/ + + There are three levels of tradeoff of speed vs memory + Because java has no preprocessor), they are written as three separate classes from which to choose + + The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption + and 4 for decryption. + + The middle performance version uses only one 256 word table for each), for a total of 2Kbytes), + adding 12 rotate operations per round to compute the values contained in the other tables from + the contents of the first + + The slowest version uses no static tables at all and computes the values in each round +

+

+ This file contains the fast version with 8Kbytes of static tables for round precomputation +

+ + Unfortunately this class has a few side channel issues. + In an environment where encryption/decryption may be closely observed it should not be used. + +
+ + Calculate the necessary round keys + The number of calculations depends on key size and block size + AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits + This code is written assuming those are the only possible values + + + default constructor - 128 bit block size. + + + initialise an AES cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + an implementation of the AES (Rijndael), from FIPS-197. +

+ For further details see: http://csrc.nist.gov/encryption/aes/. + + This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at + http://fp.gladman.plus.com/cryptography_technology/rijndael/ + + There are three levels of tradeoff of speed vs memory + Because java has no preprocessor, they are written as three separate classes from which to choose + + The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption + and 4 for decryption. + + The middle performance version uses only one 256 word table for each, for a total of 2Kbytes, + adding 12 rotate operations per round to compute the values contained in the other tables from + the contents of the first + + The slowest version uses no static tables at all and computes the values + in each round. +

+

+ This file contains the slowest performance version with no static tables + for round precomputation, but it has the smallest foot print. +

+
+ + Calculate the necessary round keys + The number of calculations depends on key size and block size + AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits + This code is written assuming those are the only possible values + + + default constructor - 128 bit block size. + + + initialise an AES cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + + An implementation of the AES Key Wrapper from the NIST Key Wrap Specification. +

+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf. + + + + A class that provides Blowfish key encryption operations, + such as encoding data and generating keys. + All the algorithms herein are from Applied Cryptography + and implement a simplified cryptography interface. + + + initialise a Blowfish cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + apply the encryption cycle to each value pair in the table. + + + Encrypt the given input starting at the given offset and place + the result in the provided buffer starting at the given offset. + The input will be an exact multiple of our blocksize. + + + Decrypt the given input starting at the given offset and place + the result in the provided buffer starting at the given offset. + The input will be an exact multiple of our blocksize. + + + Camellia - based on RFC 3713. + + + Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine. + + + + An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394. +

+ For further details see: http://www.ietf.org/rfc/rfc3657.txt. + + + + A class that provides CAST key encryption operations, + such as encoding data and generating keys. + + All the algorithms herein are from the Internet RFC's + + RFC2144 - Cast5 (64bit block, 40-128bit key) + RFC2612 - CAST6 (128bit block, 128-256bit key) + + and implement a simplified cryptography interface. + + + initialise a CAST cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + Encrypt the given input starting at the given offset and place + the result in the provided buffer starting at the given offset. + + @param src The plaintext buffer + @param srcIndex An offset into src + @param dst The ciphertext buffer + @param dstIndex An offset into dst + + + Decrypt the given input starting at the given offset and place + the result in the provided buffer starting at the given offset. + + @param src The plaintext buffer + @param srcIndex An offset into src + @param dst The ciphertext buffer + @param dstIndex An offset into dst + + + The first of the three processing functions for the + encryption and decryption. + + @param D the input to be processed + @param Kmi the mask to be used from Km[n] + @param Kri the rotation value to be used + + + + The second of the three processing functions for the + encryption and decryption. + + @param D the input to be processed + @param Kmi the mask to be used from Km[n] + @param Kri the rotation value to be used + + + + The third of the three processing functions for the + encryption and decryption. + + @param D the input to be processed + @param Kmi the mask to be used from Km[n] + @param Kri the rotation value to be used + + + + Does the 16 rounds to encrypt the block. + + @param L0 the LH-32bits of the plaintext block + @param R0 the RH-32bits of the plaintext block + + + A class that provides CAST6 key encryption operations, + such as encoding data and generating keys. + + All the algorithms herein are from the Internet RFC + + RFC2612 - CAST6 (128bit block, 128-256bit key) + + and implement a simplified cryptography interface. + + + Encrypt the given input starting at the given offset and place + the result in the provided buffer starting at the given offset. + + @param src The plaintext buffer + @param srcIndex An offset into src + @param dst The ciphertext buffer + @param dstIndex An offset into dst + + + Decrypt the given input starting at the given offset and place + the result in the provided buffer starting at the given offset. + + @param src The plaintext buffer + @param srcIndex An offset into src + @param dst The ciphertext buffer + @param dstIndex An offset into dst + + + Does the 12 quad rounds rounds to encrypt the block. + + @param A the 00-31 bits of the plaintext block + @param B the 32-63 bits of the plaintext block + @param C the 64-95 bits of the plaintext block + @param D the 96-127 bits of the plaintext block + @param result the resulting ciphertext + + + Does the 12 quad rounds rounds to decrypt the block. + + @param A the 00-31 bits of the ciphertext block + @param B the 32-63 bits of the ciphertext block + @param C the 64-95 bits of the ciphertext block + @param D the 96-127 bits of the ciphertext block + @param result the resulting plaintext + + +

+ Implementation of Daniel J. Bernstein's ChaCha stream cipher. + +
+ + + Creates a 20 rounds ChaCha engine. + + + + + Implementation of Daniel J. Bernstein's ChaCha stream cipher. + + + + + Creates a 20 rounds ChaCha engine. + + + + + Creates a ChaCha engine with a specific number of rounds. + + the number of rounds (must be an even number). + + + + ChaCha function. + + The number of ChaCha rounds to execute + The input words. + The ChaCha state to modify. + + + A class that provides a basic DESede (or Triple DES) engine. + + + initialise a DESede cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + * Wrap keys according to + * + * draft-ietf-smime-key-wrap-01.txt. + *

+ * Note: + *

    + *
  • this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
  • + *
  • if you are using this to wrap triple-des keys you need to set the + * parity bits on the key and, if it's a two-key triple-des key, pad it + * yourself.
  • + *
+ *

+
+ + Field engine + + + Field param + + + Field paramPlusIV + + + Field iv + + + Field forWrapping + + + Field IV2 + + + Method init + + @param forWrapping + @param param + + + Method GetAlgorithmName + + @return + + + Method wrap + + @param in + @param inOff + @param inLen + @return + + + Method unwrap + + @param in + @param inOff + @param inLen + @return + @throws InvalidCipherTextException + + + Some key wrap algorithms make use of the Key Checksum defined + in CMS [CMS-Algorithms]. This is used to provide an integrity + check value for the key being wrapped. The algorithm is + + - Compute the 20 octet SHA-1 hash on the key being wrapped. + - Use the first 8 octets of this hash as the checksum value. + + @param key + @return + @throws Exception + @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum + + + @param key + @param checksum + @return + @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum + + + A class that provides a basic DES engine. + + + initialise a DES cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + what follows is mainly taken from "Applied Cryptography", by + Bruce Schneier, however it also bears great resemblance to Richard + Outerbridge's D3DES... + + + Generate an integer based working key based on our secret key + and what we processing we are planning to do. + + Acknowledgements for this routine go to James Gillogly and Phil Karn. + (whoever, and wherever they are!). + + + the DES engine. + + + implementation of DSTU 7624 (Kalyna) + + + this does your basic ElGamal algorithm. + + + initialise the ElGamal engine. + + @param forEncryption true if we are encrypting, false otherwise. + @param param the necessary ElGamal key parameters. + + + Return the maximum size for an input block to this engine. + For ElGamal this is always one byte less than the size of P on + encryption, and twice the length as the size of P on decryption. + + @return maximum size for an input block. + + + Return the maximum size for an output block to this engine. + For ElGamal this is always one byte less than the size of P on + decryption, and twice the length as the size of P on encryption. + + @return maximum size for an output block. + + + Process a single block using the basic ElGamal algorithm. + + @param in the input array. + @param inOff the offset into the input buffer where the data starts. + @param length the length of the data to be processed. + @return the result of the ElGamal process. + @exception DataLengthException the input block is too large. + + + implementation of GOST 28147-89 + + + standard constructor. + + + initialise an Gost28147 cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is inappropriate. + + + Return the S-Box associated with SBoxName + @param sBoxName name of the S-Box + @return byte array representing the S-Box + + + HC-128 is a software-efficient stream cipher created by Hongjun Wu. It + generates keystream from a 128-bit secret key and a 128-bit initialization + vector. +

+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf +

+ It is a third phase candidate in the eStream contest, and is patent-free. + No attacks are known as of today (April 2007). See + + http://www.ecrypt.eu.org/stream/hcp3.html +

+
+ + Initialise a HC-128 cipher. + + @param forEncryption whether or not we are for encryption. Irrelevant, as + encryption and decryption are the same. + @param params the parameters required to set up the cipher. + @throws ArgumentException if the params argument is + inappropriate (ie. the key is not 128 bit long). + + + HC-256 is a software-efficient stream cipher created by Hongjun Wu. It + generates keystream from a 256-bit secret key and a 256-bit initialization + vector. +

+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf +

+ Its brother, HC-128, is a third phase candidate in the eStream contest. + The algorithm is patent-free. No attacks are known as of today (April 2007). + See + + http://www.ecrypt.eu.org/stream/hcp3.html +

+
+ + Initialise a HC-256 cipher. + + @param forEncryption whether or not we are for encryption. Irrelevant, as + encryption and decryption are the same. + @param params the parameters required to set up the cipher. + @throws ArgumentException if the params argument is + inappropriate (ie. the key is not 256 bit long). + + + A class that provides a basic International Data Encryption Algorithm (IDEA) engine. +

+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM" + implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (barring 1 typo at the + end of the MulInv function!). +

+

+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/ +

+

+ Note: This algorithm was patented in the USA, Japan and Europe. These patents expired in 2011/2012. +

+
+ + standard constructor. + + + initialise an IDEA cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return x = x * y where the multiplication is done modulo + 65537 (0x10001) (as defined in the IDEA specification) and + a zero input is taken to be 65536 (0x10000). + + @param x the x value + @param y the y value + @return x = x * y + + + The following function is used to expand the user key to the encryption + subkey. The first 16 bytes are the user key, and the rest of the subkey + is calculated by rotating the previous 16 bytes by 25 bits to the left, + and so on until the subkey is completed. + + + This function computes multiplicative inverse using Euclid's Greatest + Common Divisor algorithm. Zero and one are self inverse. +

+ i.e. x * MulInv(x) == 1 (modulo BASE) +

+
+ + Return the additive inverse of x. +

+ i.e. x + AddInv(x) == 0 +

+
+ + The function to invert the encryption subkey to the decryption subkey. + It also involves the multiplicative inverse and the additive inverse functions. + + + support class for constructing intergrated encryption ciphers + for doing basic message exchanges on top of key agreement ciphers + + + set up for use with stream mode, where the key derivation function + is used to provide a stream of bytes to xor with the message. + + @param agree the key agreement used as the basis for the encryption + @param kdf the key derivation function used for byte generation + @param mac the message authentication code generator for the message + + + set up for use in conjunction with a block cipher to handle the + message. + + @param agree the key agreement used as the basis for the encryption + @param kdf the key derivation function used for byte generation + @param mac the message authentication code generator for the message + @param cipher the cipher to used for encrypting the message + + + Initialise the encryptor. + + @param forEncryption whether or not this is encryption/decryption. + @param privParam our private key parameters + @param pubParam the recipient's/sender's public key parameters + @param param encoding and derivation parameters. + + + Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count). + see: http://www.burtleburtle.net/bob/rand/isaacafa.html + + + initialise an ISAAC cipher. + + @param forEncryption whether or not we are for encryption. + @param params the parameters required to set up the cipher. + @exception ArgumentException if the params argument is + inappropriate. + + + NaccacheStern Engine. For details on this cipher, please see + http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf + + + Initializes this algorithm. Must be called before all other Functions. + + @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool, + org.bouncycastle.crypto.CipherParameters) + + + Returns the input block size of this algorithm. + + @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize() + + + Returns the output block size of this algorithm. + + @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize() + + + Process a single Block using the Naccache-Stern algorithm. + + @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[], + int, int) + + + Encrypts a BigInteger aka Plaintext with the public key. + + @param plain + The BigInteger to encrypt + @return The byte[] representation of the encrypted BigInteger (i.e. + crypted.toByteArray()) + + + Adds the contents of two encrypted blocks mod sigma + + @param block1 + the first encrypted block + @param block2 + the second encrypted block + @return encrypt((block1 + block2) mod sigma) + @throws InvalidCipherTextException + + + Convenience Method for data exchange with the cipher. + + Determines blocksize and splits data to blocksize. + + @param data the data to be processed + @return the data after it went through the NaccacheSternEngine. + @throws InvalidCipherTextException + + + Computes the integer x that is expressed through the given primes and the + congruences with the chinese remainder theorem (CRT). + + @param congruences + the congruences c_i + @param primes + the primes p_i + @return an integer x for that x % p_i == c_i + + + A Noekeon engine, using direct-key mode. + + + Create an instance of the Noekeon encryption algorithm + and set some defaults + + + initialise + + @param forEncryption whether or not we are for encryption. + @param params the parameters required to set up the cipher. + @exception ArgumentException if the params argument is + inappropriate. + + + The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting. + Provided for the sake of completeness. + + + an implementation of RC2 as described in RFC 2268 + "A Description of the RC2(r) Encryption Algorithm" R. Rivest. + + + initialise a RC2 cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the result rotating the 16 bit number in x left by y + + + Wrap keys according to RFC 3217 - RC2 mechanism + + + Field engine + + + Field param + + + Field paramPlusIV + + + Field iv + + + Field forWrapping + + + Field IV2 + + + Method init + + @param forWrapping + @param param + + + Method GetAlgorithmName + + @return + + + Method wrap + + @param in + @param inOff + @param inLen + @return + + + Method unwrap + + @param in + @param inOff + @param inLen + @return + @throws InvalidCipherTextException + + + Some key wrap algorithms make use of the Key Checksum defined + in CMS [CMS-Algorithms]. This is used to provide an integrity + check value for the key being wrapped. The algorithm is + + - Compute the 20 octet SHA-1 hash on the key being wrapped. + - Use the first 8 octets of this hash as the checksum value. + + @param key + @return + @throws Exception + @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum + + + @param key + @param checksum + @return + @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum + + + initialise a RC4 cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + The specification for RC5 came from the RC5 Encryption Algorithm + publication in RSA CryptoBytes, Spring of 1995. + http://www.rsasecurity.com/rsalabs/cryptobytes. +

+ This implementation has a word size of 32 bits.

+
+ + Create an instance of the RC5 encryption algorithm + and set some defaults + + + initialise a RC5-32 cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + Re-key the cipher. + + @param key the key to be used + + + Encrypt the given block starting at the given offset and place + the result in the provided buffer starting at the given offset. + + @param in in byte buffer containing data to encrypt + @param inOff offset into src buffer + @param out out buffer where encrypted data is written + @param outOff offset into out buffer + + + Perform a left "spin" of the word. The rotation of the given + word x is rotated left by y bits. + Only the lg(32) low-order bits of y + are used to determine the rotation amount. Here it is + assumed that the wordsize used is a power of 2. + + @param x word to rotate + @param y number of bits to rotate % 32 + + + Perform a right "spin" of the word. The rotation of the given + word x is rotated left by y bits. + Only the lg(32) low-order bits of y + are used to determine the rotation amount. Here it is + assumed that the wordsize used is a power of 2. + + @param x word to rotate + @param y number of bits to rotate % 32 + + + The specification for RC5 came from the RC5 Encryption Algorithm + publication in RSA CryptoBytes, Spring of 1995. + http://www.rsasecurity.com/rsalabs/cryptobytes. +

+ This implementation is set to work with a 64 bit word size.

+
+ + Create an instance of the RC5 encryption algorithm + and set some defaults + + + initialise a RC5-64 cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + Re-key the cipher. + + @param key the key to be used + + + Encrypt the given block starting at the given offset and place + the result in the provided buffer starting at the given offset. + + @param in in byte buffer containing data to encrypt + @param inOff offset into src buffer + @param out out buffer where encrypted data is written + @param outOff offset into out buffer + + + Perform a left "spin" of the word. The rotation of the given + word x is rotated left by y bits. + Only the lg(wordSize) low-order bits of y + are used to determine the rotation amount. Here it is + assumed that the wordsize used is a power of 2. + + @param x word to rotate + @param y number of bits to rotate % wordSize + + + Perform a right "spin" of the word. The rotation of the given + word x is rotated left by y bits. + Only the lg(wordSize) low-order bits of y + are used to determine the rotation amount. Here it is + assumed that the wordsize used is a power of 2. + + @param x word to rotate + @param y number of bits to rotate % wordSize + + + An RC6 engine. + + + Create an instance of the RC6 encryption algorithm + and set some defaults + + + initialise a RC5-32 cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + Re-key the cipher. + + @param inKey the key to be used + + + Perform a left "spin" of the word. The rotation of the given + word x is rotated left by y bits. + Only the lg(wordSize) low-order bits of y + are used to determine the rotation amount. Here it is + assumed that the wordsize used is a power of 2. + + @param x word to rotate + @param y number of bits to rotate % wordSize + + + Perform a right "spin" of the word. The rotation of the given + word x is rotated left by y bits. + Only the lg(wordSize) low-order bits of y + are used to determine the rotation amount. Here it is + assumed that the wordsize used is a power of 2. + + @param x word to rotate + @param y number of bits to rotate % wordSize + + + an implementation of the RFC 3211 Key Wrap + Specification. + + + + An implementation of the AES Key Wrapper from the NIST Key Wrap + Specification as described in RFC 3394. +

+ For further details see: http://www.ietf.org/rfc/rfc3394.txt + and http://csrc.nist.gov/encryption/kms/key-wrap.pdf. + + + + an implementation of Rijndael, based on the documentation and reference implementation + by Paulo Barreto, Vincent Rijmen, for v2.0 August '99. +

+ Note: this implementation is based on information prior to readonly NIST publication. +

+
+ + multiply two elements of GF(2^m) + needed for MixColumn and InvMixColumn + + + xor corresponding text input and round key input bytes + + + Row 0 remains unchanged + The other three rows are shifted a variable amount + + + Replace every byte of the input by the byte at that place + in the nonlinear S-box + + + Mix the bytes of every column in a linear way + + + Mix the bytes of every column in a linear way + This is the opposite operation of Mixcolumn + + + Calculate the necessary round keys + The number of calculations depends on keyBits and blockBits + + + default constructor - 128 bit block size. + + + basic constructor - set the cipher up for a given blocksize + + @param blocksize the blocksize in bits, must be 128, 192, or 256. + + + initialise a Rijndael cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + this does your basic RSA algorithm with blinding + + + initialise the RSA engine. + + @param forEncryption true if we are encrypting, false otherwise. + @param param the necessary RSA key parameters. + + + Return the maximum size for an input block to this engine. + For RSA this is always one byte less than the key size on + encryption, and the same length as the key size on decryption. + + @return maximum size for an input block. + + + Return the maximum size for an output block to this engine. + For RSA this is always one byte less than the key size on + decryption, and the same length as the key size on encryption. + + @return maximum size for an output block. + + + Process a single block using the basic RSA algorithm. + + @param inBuf the input array. + @param inOff the offset into the input buffer where the data starts. + @param inLen the length of the data to be processed. + @return the result of the RSA process. + @exception DataLengthException the input block is too large. + + + This does your basic RSA Chaum's blinding and unblinding as outlined in + "Handbook of Applied Cryptography", page 475. You need to use this if you are + trying to get another party to generate signatures without them being aware + of the message they are signing. + + + Initialise the blinding engine. + + @param forEncryption true if we are encrypting (blinding), false otherwise. + @param param the necessary RSA key parameters. + + + Return the maximum size for an input block to this engine. + For RSA this is always one byte less than the key size on + encryption, and the same length as the key size on decryption. + + @return maximum size for an input block. + + + Return the maximum size for an output block to this engine. + For RSA this is always one byte less than the key size on + decryption, and the same length as the key size on encryption. + + @return maximum size for an output block. + + + Process a single block using the RSA blinding algorithm. + + @param in the input array. + @param inOff the offset into the input buffer where the data starts. + @param inLen the length of the data to be processed. + @return the result of the RSA process. + @throws DataLengthException the input block is too large. + + + this does your basic RSA algorithm. + + + initialise the RSA engine. + + @param forEncryption true if we are encrypting, false otherwise. + @param param the necessary RSA key parameters. + + + Return the maximum size for an input block to this engine. + For RSA this is always one byte less than the key size on + encryption, and the same length as the key size on decryption. + + @return maximum size for an input block. + + + Return the maximum size for an output block to this engine. + For RSA this is always one byte less than the key size on + decryption, and the same length as the key size on encryption. + + @return maximum size for an output block. + + + this does your basic RSA algorithm. + + + initialise the RSA engine. + + @param forEncryption true if we are encrypting, false otherwise. + @param param the necessary RSA key parameters. + + + Return the maximum size for an input block to this engine. + For RSA this is always one byte less than the key size on + encryption, and the same length as the key size on decryption. + + @return maximum size for an input block. + + + Return the maximum size for an output block to this engine. + For RSA this is always one byte less than the key size on + decryption, and the same length as the key size on encryption. + + @return maximum size for an output block. + + + Process a single block using the basic RSA algorithm. + + @param inBuf the input array. + @param inOff the offset into the input buffer where the data starts. + @param inLen the length of the data to be processed. + @return the result of the RSA process. + @exception DataLengthException the input block is too large. + + + + Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005 + + + + Constants + + + + Creates a 20 round Salsa20 engine. + + + + + Creates a Salsa20 engine with a specific number of rounds. + + the number of rounds (must be an even number). + + + Implementation of the SEED algorithm as described in RFC 4009 + + + + An implementation of the SEED key wrapper based on RFC 4010/RFC 3394. +

+ For further details see: http://www.ietf.org/rfc/rfc4010.txt. + + + + * Serpent is a 128-bit 32-round block cipher with variable key lengths, + * including 128, 192 and 256 bit keys conjectured to be at least as + * secure as three-key triple-DES. + *

+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a + * candidate algorithm for the NIST AES Quest. + *

+ *

+ * For full details see The Serpent home page + *

+
+ + Expand a user-supplied key material into a session key. + + @param key The user-key bytes (multiples of 4) to use. + @exception ArgumentException + + + Encrypt one block of plaintext. + + @param input the array containing the input data. + @param inOff offset into the in array the data starts at. + @param output the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + + + Decrypt one block of ciphertext. + + @param input the array containing the input data. + @param inOff offset into the in array the data starts at. + @param output the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + + + initialise a Serpent cipher. + + @param encrypting whether or not we are for encryption. + @param params the parameters required to set up the cipher. + @throws IllegalArgumentException if the params argument is + inappropriate. + + + Process one block of input from the array in and write it to + the out array. + + @param in the array containing the input data. + @param inOff offset into the in array the data starts at. + @param out the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + @return the number of bytes processed and produced. + @throws DataLengthException if there isn't enough data in in, or + space in out. + @throws IllegalStateException if the cipher isn't initialised. + + + InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms. + + + S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms. + + + InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps. + + + S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms. + + + InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps. + + + S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms. + + + InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms + + + S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms. + + + InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms. + + + S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms. + + + InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms. + + + S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms. + + + InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms. + + + S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms. + + + InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms. + + + Apply the linear transformation to the register set. + + + Apply the inverse of the linear transformation to the register set. + + + a class that provides a basic SKIPJACK engine. + + + initialise a SKIPJACK cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + The G permutation + + + the inverse of the G permutation. + + + + SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02. + + + + SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key. + + The implementation here is based on the document http://eprint.iacr.org/2008/329.pdf + by Whitfield Diffie and George Ledin, which is a translation of Prof. LU Shu-wang's original standard. + + + + An TEA engine. + + + Create an instance of the TEA encryption algorithm + and set some defaults + + + initialise + + @param forEncryption whether or not we are for encryption. + @param params the parameters required to set up the cipher. + @exception ArgumentException if the params argument is + inappropriate. + + + Re-key the cipher. + + @param key the key to be used + + + + Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block + sizes. + + + This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST + SHA-3 competition in October 2010. +

+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir + Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker. +

+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables + to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance. + + + +

+ 256 bit block size - Threefish-256 + +
+ + + 512 bit block size - Threefish-512 + + + + + 1024 bit block size - Threefish-1024 + + + + Size of the tweak in bytes (always 128 bit/16 bytes) + + + Rounds in Threefish-256 + + + Rounds in Threefish-512 + + + Rounds in Threefish-1024 + + + Max rounds of any of the variants + + + Key schedule parity constant + + + Block size in bytes + + + Block size in 64 bit words + + + Buffer for byte oriented processBytes to call internal word API + + + Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup + + + Key schedule words + + + The internal cipher implementation (varies by blocksize) + + + + Constructs a new Threefish cipher, with a specified block size. + + the block size in bits, one of , , + . + + + + Initialise the engine. + + Initialise for encryption if true, for decryption if false. + an instance of or (to + use a 0 tweak) + + + + Initialise the engine, specifying the key and tweak directly. + + the cipher mode. + the words of the key, or null to use the current key. + the 2 word (128 bit) tweak, or null to use the current tweak. + + + + Process a block of data represented as 64 bit words. + + the number of 8 byte words processed (which will be the same as the block size). + a block sized buffer of words to process. + a block sized buffer of words to receive the output of the operation. + if either the input or output is not block sized + if this engine is not initialised + + + + Read a single 64 bit word from input in LSB first order. + + + + + Write a 64 bit word to output in LSB first order. + + + + Rotate left + xor part of the mix operation. + + + Rotate xor + rotate right part of the unmix operation. + + + The extended + repeated tweak words + + + The extended + repeated key words + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Mix rotation constants defined in Skein 1.3 specification + + + Tnepres is a 128-bit 32-round block cipher with variable key lengths, + including 128, 192 and 256 bit keys conjectured to be at least as + secure as three-key triple-DES. +

+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a + candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue + with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher + as well, which is a byte swapped version of Serpent. +

+

+ For full details see The Serpent home page +

+
+ + Expand a user-supplied key material into a session key. + + @param key The user-key bytes (multiples of 4) to use. + @exception ArgumentException + + + Encrypt one block of plaintext. + + @param input the array containing the input data. + @param inOff offset into the in array the data starts at. + @param output the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + + + Decrypt one block of ciphertext. + + @param input the array containing the input data. + @param inOff offset into the in array the data starts at. + @param output the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + + + A class that provides Twofish encryption operations. + + This Java implementation is based on the Java reference + implementation provided by Bruce Schneier and developed + by Raif S. Naffah. + + + Define the fixed p0/p1 permutations used in keyed S-box lookup. + By changing the following constant definitions, the S-boxes will + automatically Get changed in the Twofish engine. + + + gSubKeys[] and gSBox[] are eventually used in the + encryption and decryption methods. + + + initialise a Twofish cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + Encrypt the given input starting at the given offset and place + the result in the provided buffer starting at the given offset. + The input will be an exact multiple of our blocksize. + + encryptBlock uses the pre-calculated gSBox[] and subKey[] + arrays. + + + Decrypt the given input starting at the given offset and place + the result in the provided buffer starting at the given offset. + The input will be an exact multiple of our blocksize. + + + Use (12, 8) Reed-Solomon code over GF(256) to produce + a key S-box 32-bit entity from 2 key material 32-bit + entities. + + @param k0 first 32-bit entity + @param k1 second 32-bit entity + @return Remainder polynomial Generated using RS code + + + * Reed-Solomon code parameters: (12,8) reversible code: + *

+ *

+                    * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+                    * 
+ * where a = primitive root of field generator 0x14D + *

+
+ + initialise a VMPC cipher. + + @param forEncryption + whether or not we are for encryption. + @param params + the parameters required to set up the cipher. + @exception ArgumentException + if the params argument is inappropriate. + + + + Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce. + + + XSalsa20 requires a 256 bit key, and a 192 bit nonce. + + + + + XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce + using a core Salsa20 function without input addition to produce 256 bit working key + and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state. + + + + An XTEA engine. + + + Create an instance of the TEA encryption algorithm + and set some defaults + + + initialise + + @param forEncryption whether or not we are for encryption. + @param params the parameters required to set up the cipher. + @exception ArgumentException if the params argument is + inappropriate. + + + Re-key the cipher. + + @param key the key to be used + + + Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033 +
+ This implementation is based on ISO 18033/P1363a. +
+ + Construct a KDF Parameters generator. + + @param counterStart value of counter. + @param digest the digest to be used as the source of derived keys. + + + return the underlying digest. + + + fill len bytes of the output buffer with bytes generated from + the derivation function. + + @throws ArgumentException if the size of the request will cause an overflow. + @throws DataLengthException if the out buffer is too small. + + + Core of password hashing scheme Bcrypt, + designed by Niels Provos and David Mazières, + corresponds to the C reference implementation. +

+ This implementation does not correspondent to the 1999 published paper + "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières, + see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html. + In contrast to the paper, the order of key setup and salt setup is reversed: + state <- ExpandKey(state, 0, key) + state %lt;- ExpandKey(state, 0, salt) + This corresponds to the OpenBSD reference implementation of Bcrypt. +

+ Note: + There is no successful cryptanalysis (status 2015), but + the amount of memory and the band width of Bcrypt + may be insufficient to effectively prevent attacks + with custom hardware like FPGAs, ASICs +

+ This implementation uses some parts of Bouncy Castle's BlowfishEngine. +

+
+ + Derives a raw 192 bit Bcrypt key + + @param cost the cost factor, treated as an exponent of 2 + @param salt a 16 byte salt + @param psw the password + @return a 192 bit key + + + Size of the salt parameter in bytes + + + Minimum value of cost parameter, equal to log2(bytes of salt) + + + Maximum value of cost parameter (31 == 2,147,483,648) + + + Maximum size of password == max (unrestricted) size of Blowfish key + + + Converts a character password to bytes incorporating the required trailing zero byte. + + @param password the password to be encoded. + @return a byte representation of the password in UTF8 + trailing zero. + + + Calculates the bcrypt hash of a password. +

+ This implements the raw bcrypt function as defined in the bcrypt specification, not + the crypt encoded version implemented in OpenBSD. +

+ @param password the password bytes (up to 72 bytes) to use for this invocation. + @param salt the 128 bit salt to use for this invocation. + @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as + 2^cost. Legal values are 4..31 inclusive. + @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash. +
+ + initialise the key generator - if strength is set to zero + the key Generated will be 192 bits in size, otherwise + strength can be 128 or 192 (or 112 or 168 if you don't count + parity bits), depending on whether you wish to do 2-key or 3-key + triple DES. + + @param param the parameters to be used for key generation + + + initialise the key generator - if strength is set to zero + the key generated will be 64 bits in size, otherwise + strength can be 64 or 56 bits (if you don't count the parity bits). + + @param param the parameters to be used for key generation + + + a basic Diffie-Hellman key pair generator. + + This generates keys consistent for use with the basic algorithm for + Diffie-Hellman. + + + a Diffie-Hellman key pair generator. + + This generates keys consistent for use in the MTI/A0 key agreement protocol + as described in "Handbook of Applied Cryptography", Pages 516-519. + + + which Generates the p and g values from the given parameters, + returning the DHParameters object. +

+ Note: can take a while...

+
+ + a DSA key pair generator. + + This Generates DSA keys in line with the method described + in FIPS 186-3 B.1 FFC Key Pair Generation. + + + Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3. + + + Initialise the generator + This form can only be used for older DSA (pre-DSA2) parameters + the size of keys in bits (from 512 up to 1024, and a multiple of 64) + measure of robustness of primes (at least 80 for FIPS 186-2 compliance) + the source of randomness to use + + + Initialise the generator for DSA 2 + You must use this Init method if you need to generate parameters for DSA 2 keys + An instance of DsaParameterGenerationParameters used to configure this generator + + + Generates a set of DsaParameters + Can take a while... + + + generate suitable parameters for DSA, in line with + FIPS 186-3 A.1 Generation of the FFC Primes p and q. + + + Given the domain parameters this routine generates an EC key + pair in accordance with X9.62 section 5.2.1 pages 26, 27. + + + a ElGamal key pair generator. +

+ This Generates keys consistent for use with ElGamal as described in + page 164 of "Handbook of Applied Cryptography".

+
+ + * which Generates the p and g values from the given parameters, + * returning the ElGamalParameters object. + *

+ * Note: can take a while... + *

+
+ + a GOST3410 key pair generator. + This generates GOST3410 keys in line with the method described + in GOST R 34.10-94. + + + generate suitable parameters for GOST3410. + + + initialise the key generator. + + @param size size of the key + @param typeProcedure type procedure A,B = 1; A',B' - else + @param random random byte source. + + + Procedure C + procedure generates the a value from the given p,q, + returning the a value. + + + which generates the p , q and a values from the given parameters, + returning the Gost3410Parameters object. + + + HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented + according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM + Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM + (output keying material) and is likely to have better security properties + than KDF's based on just a hash function. + + + Creates a HKDFBytesGenerator based on the given hash function. + + @param hash the digest to be used as the source of generatedBytes bytes + + + Performs the extract part of the key derivation function. + + @param salt the salt to use + @param ikm the input keying material + @return the PRK as KeyParameter + + + Performs the expand part of the key derivation function, using currentT + as input and output buffer. + + @throws DataLengthException if the total number of bytes generated is larger than the one + specified by RFC 5869 (255 * HashLen) + + + KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033 +
+ This implementation is based on IEEE P1363/ISO 18033. +
+ + Construct a KDF1 byte generator. + + @param digest the digest to be used as the source of derived keys. + + + KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033 +
+ This implementation is based on IEEE P1363/ISO 18033. +
+ + Construct a KDF2 bytes generator. Generates key material + according to IEEE P1363 or ISO 18033 depending on the initialisation. + + @param digest the digest to be used as the source of derived keys. + + + Generator for MGF1 as defined in Pkcs 1v2 + + + @param digest the digest to be used as the source of Generated bytes + + + return the underlying digest. + + + int to octet string. + + + fill len bytes of the output buffer with bytes Generated from + the derivation function. + + @throws DataLengthException if the out buffer is too small. + + + Key generation parameters for NaccacheStern cipher. For details on this cipher, please see + + http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf + + + Generates a permuted ArrayList from the original one. The original List + is not modified + + @param arr + the ArrayList to be permuted + @param rand + the source of Randomness for permutation + @return a new IList with the permuted elements. + + + Finds the first 'count' primes starting with 3 + + @param count + the number of primes to find + @return a vector containing the found primes as Integer + + + Password hashing scheme BCrypt, + designed by Niels Provos and David Mazières, using the + String format and the Base64 encoding + of the reference implementation on OpenBSD + + + Creates a 60 character Bcrypt String, including + version, cost factor, salt and hash, separated by '$' + + @param version the version, 2y,2b or 2a. (2a is not backwards compatible.) + @param cost the cost factor, treated as an exponent of 2 + @param salt a 16 byte salt + @param password the password + @return a 60 character Bcrypt String + + + Creates a 60 character Bcrypt String, including + version, cost factor, salt and hash, separated by '$' using version + '2y'. + + @param cost the cost factor, treated as an exponent of 2 + @param salt a 16 byte salt + @param password the password + @return a 60 character Bcrypt String + + + Creates a 60 character Bcrypt String, including + version, cost factor, salt and hash, separated by '$' + + @param version the version, may be 2b, 2y or 2a. (2a is not backwards compatible.) + @param cost the cost factor, treated as an exponent of 2 + @param salt a 16 byte salt + @param password the password + @return a 60 character Bcrypt String + + + Checks if a password corresponds to a 60 character Bcrypt String + + @param bcryptString a 60 character Bcrypt String, including + version, cost factor, salt and hash, + separated by '$' + @param password the password as an array of chars + @return true if the password corresponds to the + Bcrypt String, otherwise false + + + Generator for PBE derived keys and ivs as usd by OpenSSL. +

+ The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an + iteration count of 1. +

+
+ + Construct a OpenSSL Parameters generator. + + + Initialise - note the iteration count for this algorithm is fixed at 1. + + @param password password to use. + @param salt salt to use. + + + the derived key function, the ith hash of the password and the salt. + + + Generate a key parameter derived from the password, salt, and iteration + count we are currently initialised with. + + @param keySize the size of the key we want (in bits) + @return a KeyParameter object. + @exception ArgumentException if the key length larger than the base hash size. + + + Generate a key with initialisation vector parameter derived from + the password, salt, and iteration count we are currently initialised + with. + + @param keySize the size of the key we want (in bits) + @param ivSize the size of the iv we want (in bits) + @return a ParametersWithIV object. + @exception ArgumentException if keySize + ivSize is larger than the base hash size. + + + Generate a key parameter for use with a MAC derived from the password, + salt, and iteration count we are currently initialised with. + + @param keySize the size of the key we want (in bits) + @return a KeyParameter object. + @exception ArgumentException if the key length larger than the base hash size. + + + Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0. +

+ The document this implementation is based on can be found at + + RSA's Pkcs12 Page +

+
+ + Construct a Pkcs 12 Parameters generator. + + @param digest the digest to be used as the source of derived keys. + @exception ArgumentException if an unknown digest is passed in. + + + add a + b + 1, returning the result in a. The a value is treated + as a BigInteger of length (b.Length * 8) bits. The result is + modulo 2^b.Length in case of overflow. + + + generation of a derived key ala Pkcs12 V1.0. + + + Generate a key parameter derived from the password, salt, and iteration + count we are currently initialised with. + + @param keySize the size of the key we want (in bits) + @return a KeyParameter object. + + + Generate a key with initialisation vector parameter derived from + the password, salt, and iteration count we are currently initialised + with. + + @param keySize the size of the key we want (in bits) + @param ivSize the size of the iv we want (in bits) + @return a ParametersWithIV object. + + + Generate a key parameter for use with a MAC derived from the password, + salt, and iteration count we are currently initialised with. + + @param keySize the size of the key we want (in bits) + @return a KeyParameter object. + + + Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1. + Note this generator is limited to the size of the hash produced by the + digest used to drive it. +

+ The document this implementation is based on can be found at + + RSA's Pkcs5 Page +

+
+ + Construct a Pkcs 5 Scheme 1 Parameters generator. + + @param digest the digest to be used as the source of derived keys. + + + the derived key function, the ith hash of the mPassword and the mSalt. + + + Generate a key parameter derived from the mPassword, mSalt, and iteration + count we are currently initialised with. + + @param keySize the size of the key we want (in bits) + @return a KeyParameter object. + @exception ArgumentException if the key length larger than the base hash size. + + + Generate a key with initialisation vector parameter derived from + the mPassword, mSalt, and iteration count we are currently initialised + with. + + @param keySize the size of the key we want (in bits) + @param ivSize the size of the iv we want (in bits) + @return a ParametersWithIV object. + @exception ArgumentException if keySize + ivSize is larger than the base hash size. + + + Generate a key parameter for use with a MAC derived from the mPassword, + mSalt, and iteration count we are currently initialised with. + + @param keySize the size of the key we want (in bits) + @return a KeyParameter object. + @exception ArgumentException if the key length larger than the base hash size. + + + Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2. + This generator uses a SHA-1 HMac as the calculation function. +

+ The document this implementation is based on can be found at + + RSA's Pkcs5 Page

+
+ + construct a Pkcs5 Scheme 2 Parameters generator. + + + Generate a key parameter derived from the password, salt, and iteration + count we are currently initialised with. + + @param keySize the size of the key we want (in bits) + @return a KeyParameter object. + + + Generate a key with initialisation vector parameter derived from + the password, salt, and iteration count we are currently initialised + with. + + @param keySize the size of the key we want (in bits) + @param ivSize the size of the iv we want (in bits) + @return a ParametersWithIV object. + + + Generate a key parameter for use with a MAC derived from the password, + salt, and iteration count we are currently initialised with. + + @param keySize the size of the key we want (in bits) + @return a KeyParameter object. + + + + Generates keys for the Poly1305 MAC. + + + Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block + cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an + effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the + {@link #clamp(byte[])} method to clear the required bits. +
+ +
+ + + Initialises the key generator. + + + Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored. + + + + + Generates a 256 bit key in the format required for Poly1305 - e.g. + k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared + as per . + + + + + Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by + clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically: +
    +
  • r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
  • +
  • r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
  • +
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15] +
+ + + Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g. + k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared + as per . + + Key. + if the key is of the wrong length, or has invalid bits set + in the r portion of the key. + + + Generate a random factor suitable for use with RSA blind signatures + as outlined in Chaum's blinding and unblinding as outlined in + "Handbook of Applied Cryptography", page 475. + + + Initialise the factor generator + + @param param the necessary RSA key parameters. + + + Generate a suitable blind factor for the public key the generator was initialised with. + + @return a random blind factor + + + an RSA key pair generator. + + + Choose a random prime value for use with RSA + the bit-length of the returned prime + the RSA public exponent + a prime p, with (p-1) relatively prime to e + + + Implementation of the scrypt a password-based key derivation function. + + Scrypt was created by Colin Percival and is specified in + draft-josefsson-scrypt-kd. + + + + Generate a key using the scrypt key derivation function. + the bytes of the pass phrase. + the salt to use for this invocation. + CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than + 2^(128 * r / 8). + the block size, must be >= 1. + Parallelization parameter. Must be a positive integer less than or equal to + Int32.MaxValue / (128 * r * 8). + the length of the key to generate. + the generated key. + + + Base interface for a public/private key block cipher. + + + The name of the algorithm this cipher implements. + + + Initialise the cipher. + Initialise for encryption if true, for decryption if false. + The key or other data required by the cipher. + + + The maximum size, in bytes, an input block may be. + + + The maximum size, in bytes, an output block will be. + + + Process a block. + The input buffer. + The offset into inBuf that the input block begins. + The length of the input block. + Input decrypts improperly. + Input is too large for the cipher. + + + interface that a public/private key pair generator should conform to. + + + intialise the key pair generator. + + @param the parameters the key pair is to be initialised with. + + + return an AsymmetricCipherKeyPair containing the Generated keys. + + @return an AsymmetricCipherKeyPair containing the Generated keys. + + + The basic interface that basic Diffie-Hellman implementations + conforms to. + + + initialise the agreement engine. + + + return the field size for the agreement algorithm in bytes. + + + given a public key from a given party calculate the next + message in the agreement sequence. + + + Base interface for a symmetric key block cipher. + + + The name of the algorithm this cipher implements. + + + Initialise the cipher. + Initialise for encryption if true, for decryption if false. + The key or other data required by the cipher. + + + The block size for this cipher, in bytes. + + + Indicates whether this cipher can handle partial blocks. + + + Process a block. + The input buffer. + The offset into inBuf that the input block begins. + The output buffer. + The offset into outBuf to write the output block. + If input block is wrong size, or outBuf too small. + The number of bytes processed and produced. + + + + Reset the cipher to the same state as it was after the last init (if there was one). + + + + + Operators that reduce their input to a single block return an object + of this type. + + + + + Return the final result of the operation. + + A block of bytes, representing the result of an operation. + + + + Store the final result of the operation by copying it into the destination array. + + The number of bytes copied into destination. + The byte array to copy the result into. + The offset into destination to start copying the result at. + + + Block cipher engines are expected to conform to this interface. + + + The name of the algorithm this cipher implements. + + + Initialise the cipher. + If true the cipher is initialised for encryption, + if false for decryption. + The key and other data required by the cipher. + + + + Reset the cipher. After resetting the cipher is in the same state + as it was after the last init (if there was one). + + + + + Base interface for a ciphers that do not require data to be block aligned. + + Note: In cases where the underlying algorithm is block based, these ciphers may add or remove padding as needed. + + + + + + Return the size of the output buffer required for a Write() plus a + close() with the write() being passed inputLen bytes. + + The returned size may be dependent on the initialisation of this cipher + and may not be accurate once subsequent input data is processed as the cipher may + add, add or remove padding, as it sees fit. + + + The space required to accommodate a call to processBytes and doFinal with inputLen bytes of input. + The length of the expected input. + + + + Return the size of the output buffer required for a write() with the write() being + passed inputLen bytes and just updating the cipher output. + + The space required to accommodate a call to processBytes with inputLen bytes of input. + The length of the expected input. + + + + Gets the stream for reading/writing data processed/to be processed. + + The stream associated with this cipher. + + + + Base interface for cipher builders. + + + + + Return the algorithm and parameter details associated with any cipher built. + + + + + Return the maximum output size that a given input will produce. + + the length of the expected input. + The maximum possible output size that can produced for the expected input length. + + + + Build a cipher that operates on the passed in stream. + + The stream to write/read any encrypted/decrypted data. + A cipher based around the given stream. + + + + A cipher builder that can also return the key it was initialized with. + + + + + Return the key we were initialized with. + + + + all parameter classes implement this. + + + + Interface describing a provider of cipher builders for creating decrypting ciphers. + + + + + Return a cipher builder for creating decrypting ciphers. + + The algorithm details/parameters to use to create the final cipher. + A new cipher builder. + + + base interface for general purpose byte derivation functions. + + + return the message digest used as the basis for the function + + + Parameters for key/byte stream derivation classes + + + interface that a message digest conforms to. + + + return the algorithm name + + @return the algorithm name + + + return the size, in bytes, of the digest produced by this message digest. + + @return the size, in bytes, of the digest produced by this message digest. + + + return the size, in bytes, of the internal buffer used by this digest. + + @return the size, in bytes, of the internal buffer used by this digest. + + + update the message digest with a single byte. + + @param inByte the input byte to be entered. + + + update the message digest with a block of bytes. + + @param input the byte array containing the data. + @param inOff the offset into the byte array where the data starts. + @param len the length of the data. + + + Close the digest, producing the final digest value. The doFinal + call leaves the digest reset. + + @param output the array the digest is to be copied into. + @param outOff the offset into the out array the digest is to start at. + + + reset the digest back to it's initial state. + + + + Base interface for operator factories that create stream-based digest calculators. + + + + The algorithm details object for calculators made by this factory. + + + Return the size of the digest associated with this factory. + The length of the digest produced by this calculators from this factory in bytes. + + + + Create a stream calculator for the digest associated with this factory. The stream + calculator is used for the actual operation of entering the data to be digested + and producing the digest block. + + A calculator producing an IBlockResult with the final digest in it. + + + interface for classes implementing the Digital Signature Algorithm + + + initialise the signer for signature generation or signature + verification. + + @param forSigning true if we are generating a signature, false + otherwise. + @param param key parameters for signature generation. + + + sign the passed in message (usually the output of a hash function). + + @param message the message to be signed. + @return two big integers representing the r and s values respectively. + + + verify the message message against the signature values r and s. + + @param message the message that was supposed to have been signed. + @param r the r signature value. + @param s the s signature value. + + + + An "extended" interface for classes implementing DSA-style algorithms, that provides access + to the group order. + + + + The order of the group that the r, s values in signatures belong to. + + + + Base interface describing an entropy source for a DRBG. + + + + + Return whether or not this entropy source is regarded as prediction resistant. + + true if this instance is prediction resistant; otherwise, false. + + + + Return a byte array of entropy. + + The entropy bytes. + + + + Return the number of bits of entropy this source can produce. + + The size, in bits, of the return value of getEntropy. + + + + Base interface describing a provider of entropy sources. + + + + + Return an entropy source providing a block of entropy. + + The size of the block of entropy required. + An entropy source providing bitsRequired blocks of entropy. + + + + Base interface for a key unwrapper. + + + + + The parameter set used to configure this key unwrapper. + + + + + Unwrap the passed in data. + + The array containing the data to be unwrapped. + The offset into cipherText at which the unwrapped data starts. + The length of the data to be unwrapped. + an IBlockResult containing the unwrapped key data. + + + + Base interface for a key wrapper. + + + + + The parameter set used to configure this key wrapper. + + + + + Wrap the passed in key data. + + The key data to be wrapped. + an IBlockResult containing the wrapped key data. + + + The base interface for implementations of message authentication codes (MACs). + + + Initialise the MAC. + + @param param the key and other data required by the MAC. + @exception ArgumentException if the parameters argument is + inappropriate. + + + Return the name of the algorithm the MAC implements. + + @return the name of the algorithm the MAC implements. + + + Return the block size for this MAC (in bytes). + + @return the block size for this MAC in bytes. + + + add a single byte to the mac for processing. + + @param in the byte to be processed. + @exception InvalidOperationException if the MAC is not initialised. + + + @param in the array containing the input. + @param inOff the index in the array the data begins at. + @param len the length of the input starting at inOff. + @exception InvalidOperationException if the MAC is not initialised. + @exception DataLengthException if there isn't enough data in in. + + + Compute the final stage of the MAC writing the output to the out + parameter. +

+ doFinal leaves the MAC in the same state it was after the last init. +

+ @param out the array the MAC is to be output to. + @param outOff the offset into the out buffer the output is to start at. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the MAC is not initialised. +
+ + Reset the MAC. At the end of resetting the MAC should be in the + in the same state it was after the last init (if there was one). + + + The algorithm details object for this calculator. + + + + Create a stream calculator for this signature calculator. The stream + calculator is used for the actual operation of entering the data to be signed + and producing the signature block. + + A calculator producing an IBlockResult with a signature in it. + + + this exception is thrown whenever we find something we don't expect in a + message. + + + base constructor. + + + create a InvalidCipherTextException with the given message. + + @param message the message to be carried with the exception. + + + + Base interface for operators that serve as stream-based signature calculators. + + + + The algorithm details object for this calculator. + + + + Create a stream calculator for this signature calculator. The stream + calculator is used for the actual operation of entering the data to be signed + and producing the signature block. + + A calculator producing an IBlockResult with a signature in it. + + + Return the name of the algorithm the signer implements. + + @return the name of the algorithm the signer implements. + + + Initialise the signer for signing or verification. + + @param forSigning true if for signing, false otherwise + @param param necessary parameters. + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + Generate a signature for the message we've been loaded with using + the key we were initialised with. + + + return true if the internal state represents the signature described + in the passed in array. + + + reset the internal state + + + Signer with message recovery. + + + Returns true if the signer has recovered the full message as + part of signature verification. + + @return true if full message recovered. + + + Returns a reference to what message was recovered (if any). + + @return full/partial message, null if nothing. + + + Perform an update with the recovered message before adding any other data. This must + be the first update method called, and calling it will result in the signer assuming + that further calls to update will include message content past what is recoverable. + + @param signature the signature that we are in the process of verifying. + @throws IllegalStateException + + + + Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data + to a single value. + + + + Return a "sink" stream which only exists to update the implementing object. + A stream to write to in order to update the implementing object. + + + + Return the result of processing the stream. This value is only available once the stream + has been closed. + + The result of processing the stream. + + + The interface stream ciphers conform to. + + + The name of the algorithm this cipher implements. + + + Initialise the cipher. + If true the cipher is initialised for encryption, + if false for decryption. + The key and other data required by the cipher. + + If the parameters argument is inappropriate. + + + + encrypt/decrypt a single byte returning the result. + the byte to be processed. + the result of processing the input byte. + + + + Process a block of bytes from input putting the result into output. + + The input byte array. + + The offset into input where the data to be processed starts. + + The number of bytes to be processed. + The output buffer the processed bytes go into. + + The offset into output the processed data starts at. + + If the output buffer is too small. + + + + Reset the cipher to the same state as it was after the last init (if there was one). + + + + + Operators that reduce their input to the validation of a signature produce this type. + + + + + Return true if the passed in data matches what is expected by the verification result. + + The bytes representing the signature. + true if the signature verifies, false otherwise. + + + + Return true if the length bytes from off in the source array match the signature + expected by the verification result. + + Byte array containing the signature. + The offset into the source array where the signature starts. + The number of bytes in source making up the signature. + true if the signature verifies, false otherwise. + + + + Base interface for operators that serve as stream-based signature verifiers. + + + + The algorithm details object for this verifier. + + + + Create a stream calculator for this verifier. The stream + calculator is used for the actual operation of entering the data to be verified + and producing a result which can be used to verify the original signature. + + A calculator producing an IVerifier which can verify the signature. + + + + Base interface for a provider to support the dynamic creation of signature verifiers. + + + + + Return a signature verfier for signature algorithm described in the passed in algorithm details object. + + The details of the signature algorithm verification is required for. + A new signature verifier. + + + The name of the algorithm this cipher implements. + + + + With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes. + This interface provides the extra method required to support variable output on a digest implementation. + + + + + Output the results of the final calculation for this digest to outLen number of bytes. + + output array to write the output bytes to. + offset to start writing the bytes at. + the number of output bytes requested. + the number of bytes written + + + + Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method + will continue producing output until the Xof is explicitly reset, or signals otherwise. + + output array to write the output bytes to. + offset to start writing the bytes at. + the number of output bytes requested. + the number of bytes written + + + The base class for parameters to key generators. + + + initialise the generator with a source of randomness + and a strength (in bits). + + @param random the random byte source. + @param strength the size, in bits, of the keys we want to produce. + + + return the random source associated with this + generator. + + @return the generators random source. + + + return the bit strength for keys produced by this generator, + + @return the strength of the keys this generator produces (in bits). + + + standard CBC Block Cipher MAC - if no padding is specified the default of + pad of zeroes is used. + + + create a standard MAC based on a CBC block cipher. This will produce an + authentication code half the length of the block size of the cipher. + + @param cipher the cipher to be used as the basis of the MAC generation. + + + create a standard MAC based on a CBC block cipher. This will produce an + authentication code half the length of the block size of the cipher. + + @param cipher the cipher to be used as the basis of the MAC generation. + @param padding the padding to be used to complete the last block. + + + create a standard MAC based on a block cipher with the size of the + MAC been given in bits. This class uses CBC mode as the basis for the + MAC generation. +

+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81), + or 16 bits if being used as a data authenticator (FIPS Publication 113), + and in general should be less than the size of the block cipher as it reduces + the chance of an exhaustive attack (see Handbook of Applied Cryptography). +

+ @param cipher the cipher to be used as the basis of the MAC generation. + @param macSizeInBits the size of the MAC in bits, must be a multiple of 8. +
+ + create a standard MAC based on a block cipher with the size of the + MAC been given in bits. This class uses CBC mode as the basis for the + MAC generation. +

+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81), + or 16 bits if being used as a data authenticator (FIPS Publication 113), + and in general should be less than the size of the block cipher as it reduces + the chance of an exhaustive attack (see Handbook of Applied Cryptography). +

+ @param cipher the cipher to be used as the basis of the MAC generation. + @param macSizeInBits the size of the MAC in bits, must be a multiple of 8. + @param padding the padding to be used to complete the last block. +
+ + Reset the mac generator. + + + implements a Cipher-FeedBack (CFB) mode on top of a simple cipher. + + + Basic constructor. + + @param cipher the block cipher to be used as the basis of the + feedback mode. + @param blockSize the block size in bits (note: a multiple of 8) + + + Initialise the cipher and, possibly, the initialisation vector (IV). + If an IV isn't passed as part of the parameter, the IV will be all zeros. + An IV which is too short is handled in FIPS compliant fashion. + + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the algorithm name and mode. + + @return the name of the underlying algorithm followed by "/CFB" + and the block size in bits. + + + return the block size we are operating at. + + @return the block size we are operating at (in bytes). + + + Process one block of input from the array in and write it to + the out array. + + @param in the array containing the input data. + @param inOff offset into the in array the data starts at. + @param out the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + reset the chaining vector back to the IV and reset the underlying + cipher. + + + create a standard MAC based on a CFB block cipher. This will produce an + authentication code half the length of the block size of the cipher, with + the CFB mode set to 8 bits. + + @param cipher the cipher to be used as the basis of the MAC generation. + + + create a standard MAC based on a CFB block cipher. This will produce an + authentication code half the length of the block size of the cipher, with + the CFB mode set to 8 bits. + + @param cipher the cipher to be used as the basis of the MAC generation. + @param padding the padding to be used. + + + create a standard MAC based on a block cipher with the size of the + MAC been given in bits. This class uses CFB mode as the basis for the + MAC generation. +

+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81), + or 16 bits if being used as a data authenticator (FIPS Publication 113), + and in general should be less than the size of the block cipher as it reduces + the chance of an exhaustive attack (see Handbook of Applied Cryptography). +

+ @param cipher the cipher to be used as the basis of the MAC generation. + @param cfbBitSize the size of an output block produced by the CFB mode. + @param macSizeInBits the size of the MAC in bits, must be a multiple of 8. +
+ + create a standard MAC based on a block cipher with the size of the + MAC been given in bits. This class uses CFB mode as the basis for the + MAC generation. +

+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81), + or 16 bits if being used as a data authenticator (FIPS Publication 113), + and in general should be less than the size of the block cipher as it reduces + the chance of an exhaustive attack (see Handbook of Applied Cryptography). +

+ @param cipher the cipher to be used as the basis of the MAC generation. + @param cfbBitSize the size of an output block produced by the CFB mode. + @param macSizeInBits the size of the MAC in bits, must be a multiple of 8. + @param padding a padding to be used. +
+ + Reset the mac generator. + + + CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html +

+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC +

+ CMAC is a NIST recomendation - see + csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf +

+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and + analyzed by Tetsu Iwata and Kaoru Kurosawa. +

+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message + Authentication Code). OMAC stands for One-Key CBC MAC. +

+ It supports 128- or 64-bits block ciphers, with any key size, and returns + a MAC with dimension less or equal to the block size of the underlying + cipher. +

+
+ + create a standard MAC based on a CBC block cipher (64 or 128 bit block). + This will produce an authentication code the length of the block size + of the cipher. + + @param cipher the cipher to be used as the basis of the MAC generation. + + + create a standard MAC based on a block cipher with the size of the + MAC been given in bits. +

+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81), + or 16 bits if being used as a data authenticator (FIPS Publication 113), + and in general should be less than the size of the block cipher as it reduces + the chance of an exhaustive attack (see Handbook of Applied Cryptography). + + @param cipher the cipher to be used as the basis of the MAC generation. + @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128. + + + Reset the mac generator. + + +

+ Implementation of DSTU7564 mac mode + +
+ + implementation of DSTU 7624 MAC + + + + The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication + 800-38D. + + + GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac + is processed as additional authenticated data with the underlying GCM block cipher). + + + + + Creates a GMAC based on the operation of a block cipher in GCM mode. + + + This will produce an authentication code the length of the block size of the cipher. + + the cipher to be used in GCM mode to generate the MAC. + + + + Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode. + + + This will produce an authentication code the length of the block size of the cipher. + + the cipher to be used in GCM mode to generate the MAC. + the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive). + Sizes less than 96 are not recommended, but are supported for specialized applications. + + + + Initialises the GMAC - requires a + providing a and a nonce. + + + + implementation of GOST 28147-89 MAC + + + HMAC implementation based on RFC2104 + + H(K XOR opad, H(K XOR ipad, text)) + + + Reset the mac generator. + + + DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC) + + This could as well be derived from CBCBlockCipherMac, but then the property mac in the base + class must be changed to protected + + + create a Retail-MAC based on a CBC block cipher. This will produce an + authentication code of the length of the block size of the cipher. + + @param cipher the cipher to be used as the basis of the MAC generation. This must + be DESEngine. + + + create a Retail-MAC based on a CBC block cipher. This will produce an + authentication code of the length of the block size of the cipher. + + @param cipher the cipher to be used as the basis of the MAC generation. + @param padding the padding to be used to complete the last block. + + + create a Retail-MAC based on a block cipher with the size of the + MAC been given in bits. This class uses single DES CBC mode as the basis for the + MAC generation. +

+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81), + or 16 bits if being used as a data authenticator (FIPS Publication 113), + and in general should be less than the size of the block cipher as it reduces + the chance of an exhaustive attack (see Handbook of Applied Cryptography). +

+ @param cipher the cipher to be used as the basis of the MAC generation. + @param macSizeInBits the size of the MAC in bits, must be a multiple of 8. +
+ + create a standard MAC based on a block cipher with the size of the + MAC been given in bits. This class uses single DES CBC mode as the basis for the + MAC generation. The final block is decrypted and then encrypted using the + middle and right part of the key. +

+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81), + or 16 bits if being used as a data authenticator (FIPS Publication 113), + and in general should be less than the size of the block cipher as it reduces + the chance of an exhaustive attack (see Handbook of Applied Cryptography). +

+ @param cipher the cipher to be used as the basis of the MAC generation. + @param macSizeInBits the size of the MAC in bits, must be a multiple of 8. + @param padding the padding to be used to complete the last block. +
+ + Reset the mac generator. + + + + Poly1305 message authentication code, designed by D. J. Bernstein. + + + Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key + consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106 + effective key bits) used in the authenticator. + + The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation + by Andrew M (@floodyberry). + + + + + Polynomial key + + + Polynomial key + + + Polynomial key + + + Polynomial key + + + Polynomial key + + + Precomputed 5 * r[1..4] + + + Precomputed 5 * r[1..4] + + + Precomputed 5 * r[1..4] + + + Precomputed 5 * r[1..4] + + + Encrypted nonce + + + Encrypted nonce + + + Encrypted nonce + + + Encrypted nonce + + + Current block of buffered input + + + Current offset in input buffer + + + Polynomial accumulator + + + Polynomial accumulator + + + Polynomial accumulator + + + Polynomial accumulator + + + Polynomial accumulator + + + Constructs a Poly1305 MAC, where the key passed to init() will be used directly. + + + Constructs a Poly1305 MAC, using a 128 bit block cipher. + + + + Initialises the Poly1305 MAC. + + a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with + a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}. + + + + Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe + Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf). + + + "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of + compression rounds and the number of finalization rounds. A compression round is identical to a + finalization round and this round function is called SipRound. Given a 128-bit key k and a + (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..." + + + + SipHash-2-4 + + + SipHash-c-d + the number of compression rounds + the number of finalization rounds + + + + Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes, + based on the Threefish tweakable block cipher. + + + This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3 + competition in October 2010. +

+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir + Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker. + + + + + +

+ 256 bit block size - Skein-256 + +
+ + + 512 bit block size - Skein-512 + + + + + 1024 bit block size - Skein-1024 + + + + + Constructs a Skein MAC with an internal state size and output size. + + the internal state size in bits - one of or + . + the output/MAC size to produce in bits, which must be an integral number of + bytes. + + + + Optionally initialises the Skein digest with the provided parameters. + + See for details on the parameterisation of the Skein hash function. + the parameters to apply to this engine, or null to use no parameters. + + + + This exception is thrown whenever a cipher requires a change of key, iv + or similar after x amount of bytes enciphered + + + + implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher. + + + Basic constructor. + + @param cipher the block cipher to be used as the basis of chaining. + + + return the underlying block cipher that we are wrapping. + + @return the underlying block cipher that we are wrapping. + + + Initialise the cipher and, possibly, the initialisation vector (IV). + If an IV isn't passed as part of the parameter, the IV will be all zeros. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the algorithm name and mode. + + @return the name of the underlying algorithm followed by "/CBC". + + + return the block size of the underlying cipher. + + @return the block size of the underlying cipher. + + + Process one block of input from the array in and write it to + the out array. + + @param in the array containing the input data. + @param inOff offset into the in array the data starts at. + @param out the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + reset the chaining vector back to the IV and reset the underlying + cipher. + + + Do the appropriate chaining step for CBC mode encryption. + + @param in the array containing the data to be encrypted. + @param inOff offset into the in array the data starts at. + @param out the array the encrypted data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + Do the appropriate chaining step for CBC mode decryption. + + @param in the array containing the data to be decrypted. + @param inOff offset into the in array the data starts at. + @param out the array the decrypted data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + Implements the Counter with Cipher Block Chaining mode (CCM) detailed in + NIST Special Publication 800-38C. +

+ Note: this mode is a packet mode - it needs all the data up front. +

+
+ + Basic constructor. + + @param cipher the block cipher to be used. + + + return the underlying block cipher that we are wrapping. + + @return the underlying block cipher that we are wrapping. + + + Returns a byte array containing the mac calculated as part of the + last encrypt or decrypt operation. + + @return the last mac calculated. + + + Process a packet of data for either CCM decryption or encryption. + + @param in data for processing. + @param inOff offset at which data starts in the input array. + @param inLen length of the data in the input array. + @return a byte array containing the processed input.. + @throws IllegalStateException if the cipher is not appropriately set up. + @throws InvalidCipherTextException if the input data is truncated or the mac check fails. + + + Process a packet of data for either CCM decryption or encryption. + + @param in data for processing. + @param inOff offset at which data starts in the input array. + @param inLen length of the data in the input array. + @param output output array. + @param outOff offset into output array to start putting processed bytes. + @return the number of bytes added to output. + @throws IllegalStateException if the cipher is not appropriately set up. + @throws InvalidCipherTextException if the input data is truncated or the mac check fails. + @throws DataLengthException if output buffer too short. + + + implements a Cipher-FeedBack (CFB) mode on top of a simple cipher. + + + Basic constructor. + + @param cipher the block cipher to be used as the basis of the + feedback mode. + @param blockSize the block size in bits (note: a multiple of 8) + + + return the underlying block cipher that we are wrapping. + + @return the underlying block cipher that we are wrapping. + + + Initialise the cipher and, possibly, the initialisation vector (IV). + If an IV isn't passed as part of the parameter, the IV will be all zeros. + An IV which is too short is handled in FIPS compliant fashion. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the algorithm name and mode. + + @return the name of the underlying algorithm followed by "/CFB" + and the block size in bits. + + + return the block size we are operating at. + + @return the block size we are operating at (in bytes). + + + Process one block of input from the array in and write it to + the out array. + + @param in the array containing the input data. + @param inOff offset into the in array the data starts at. + @param out the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + Do the appropriate processing for CFB mode encryption. + + @param in the array containing the data to be encrypted. + @param inOff offset into the in array the data starts at. + @param out the array the encrypted data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + Do the appropriate processing for CFB mode decryption. + + @param in the array containing the data to be decrypted. + @param inOff offset into the in array the data starts at. + @param out the array the encrypted data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + reset the chaining vector back to the IV and reset the underlying + cipher. + + + A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to + be used to produce cipher text which is the same outLength as the plain text. + + + Create a buffered block cipher that uses Cipher Text Stealing + + @param cipher the underlying block cipher this buffering object wraps. + + + return the size of the output buffer required for an update of 'length' bytes. + + @param length the outLength of the input. + @return the space required to accommodate a call to update + with length bytes of input. + + + return the size of the output buffer required for an update plus a + doFinal with an input of length bytes. + + @param length the outLength of the input. + @return the space required to accommodate a call to update and doFinal + with length bytes of input. + + + process a single byte, producing an output block if necessary. + + @param in the input byte. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + process an array of bytes, producing output if necessary. + + @param in the input byte array. + @param inOff the offset at which the input data starts. + @param length the number of bytes to be copied out of the input array. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + Process the last block in the buffer. + + @param out the array the block currently being held is copied into. + @param outOff the offset at which the copying starts. + @return the number of output bytes copied to out. + @exception DataLengthException if there is insufficient space in out for + the output. + @exception InvalidOperationException if the underlying cipher is not + initialised. + @exception InvalidCipherTextException if cipher text decrypts wrongly (in + case the exception will never Get thrown). + + + A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and + Efficiency - by M. Bellare, P. Rogaway, D. Wagner. + + http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf + + EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block + cipher to encrypt and authenticate data. It's on-line (the length of a + message isn't needed to begin processing it), has good performances, it's + simple and provably secure (provided the underlying block cipher is secure). + + Of course, this implementations is NOT thread-safe. + + + Constructor that accepts an instance of a block cipher engine. + + @param cipher the engine to use + + + + Implements the Galois/Counter mode (GCM) detailed in + NIST Special Publication 800-38D. + + + + + MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits. + Sizes less than 96 are not recommended, but are supported for specialized applications. + + + + implements the GOST 28147 OFB counter mode (GCTR). + + + Basic constructor. + + @param cipher the block cipher to be used as the basis of the + counter mode (must have a 64 bit block size). + + + return the underlying block cipher that we are wrapping. + + @return the underlying block cipher that we are wrapping. + + + Initialise the cipher and, possibly, the initialisation vector (IV). + If an IV isn't passed as part of the parameter, the IV will be all zeros. + An IV which is too short is handled in FIPS compliant fashion. + + @param encrypting if true the cipher is initialised for + encryption, if false for decryption. + @param parameters the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is inappropriate. + + + return the algorithm name and mode. + + @return the name of the underlying algorithm followed by "/GCTR" + and the block size in bits + + + return the block size we are operating at (in bytes). + + @return the block size we are operating at (in bytes). + + + Process one block of input from the array in and write it to + the out array. + + @param in the array containing the input data. + @param inOff offset into the in array the data starts at. + @param out the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + reset the feedback vector back to the IV and reset the underlying + cipher. + + + An IAeadCipher based on an IBlockCipher. + + + The block size for this cipher, in bytes. + + + The block cipher underlying this algorithm. + + + + A cipher mode that includes authenticated encryption with a streaming mode and optional + associated data. + + + Implementations of this interface may operate in a packet mode (where all input data is + buffered and processed during the call to DoFinal, or in a streaming mode (where output + data is incrementally produced with each call to ProcessByte or ProcessBytes. This is + important to consider during decryption: in a streaming mode, unauthenticated plaintext + data may be output prior to the call to DoFinal that results in an authentication failure. + The higher level protocol utilising this cipher must ensure the plaintext data is handled + appropriately until the end of data is reached and the entire ciphertext is authenticated. + + + + + The name of the algorithm this cipher implements. + + + Initialise the cipher. + Parameter can either be an AeadParameters or a ParametersWithIV object. + Initialise for encryption if true, for decryption if false. + The key or other data required by the cipher. + + + Add a single byte to the associated data check. + If the implementation supports it, this will be an online operation and will not retain the associated data. + The byte to be processed. + + + Add a sequence of bytes to the associated data check. + If the implementation supports it, this will be an online operation and will not retain the associated data. + The input byte array. + The offset into the input array where the data to be processed starts. + The number of bytes to be processed. + + + Encrypt/decrypt a single byte. + + @param input the byte to be processed. + @param outBytes the output buffer the processed byte goes into. + @param outOff the offset into the output byte array the processed data starts at. + @return the number of bytes written to out. + @exception DataLengthException if the output buffer is too small. + + + Process a block of bytes from in putting the result into out. + + @param inBytes the input byte array. + @param inOff the offset into the in array where the data to be processed starts. + @param len the number of bytes to be processed. + @param outBytes the output buffer the processed bytes go into. + @param outOff the offset into the output byte array the processed data starts at. + @return the number of bytes written to out. + @exception DataLengthException if the output buffer is too small. + + + Finish the operation either appending or verifying the MAC at the end of the data. + + @param outBytes space for any resulting output data. + @param outOff offset into out to start copying the data at. + @return number of bytes written into out. + @throws InvalidOperationException if the cipher is in an inappropriate state. + @throws InvalidCipherTextException if the MAC fails to match. + + + Return the value of the MAC associated with the last stream processed. + + @return MAC for plaintext data. + + + Return the size of the output buffer required for a ProcessBytes + an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to ProcessBytes + with len bytes of input. + + + Return the size of the output buffer required for a ProcessBytes plus a + DoFinal with an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to ProcessBytes and DoFinal + with len bytes of input. + + + + Reset the cipher to the same state as it was after the last init (if there was one). + + + + + Base constructor. Nb value is set to 4. + + base cipher to use under CCM. + + + + Constructor allowing Nb configuration. + + Nb is a parameter specified in CCM mode of DSTU7624 standard. + This parameter specifies maximum possible length of input.It should + be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1, + where Nmax - length of input message in bits.For practical reasons + Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4. + + base cipher to use under CCM. + Nb value to use. + + + Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher. + + + Basic constructor. + + @param cipher the block cipher to be used as the basis of the + feedback mode. + + + return the underlying block cipher that we are wrapping. + + @return the underlying block cipher that we are wrapping. + + + Initialise the cipher and, possibly, the initialisation vector (IV). + If an IV isn't passed as part of the parameter, the IV will be all zeros. + An IV which is too short is handled in FIPS compliant fashion. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the algorithm name and mode. + + @return the name of the underlying algorithm followed by "/KCTR" + and the block size in bits. + + + return the block size we are operating at. + + @return the block size we are operating at (in bytes). + + + Process one block of input from the array in and write it to + the out array. + + @param input the array containing the input data. + @param inOff offset into the in array the data starts at. + @param output the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + reset the chaining vector back to the IV and reset the underlying + cipher. + + + An implementation of RFC 7253 on The OCB + Authenticated-Encryption Algorithm, licensed per: + +

License for + Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software + implementations of OCB. This license terminates for you if you sue someone over their open-source + software implementation of OCB claiming that you have a patent covering their implementation. +

+ This is a non-binding summary of a legal document (the link above). The parameters of the license + are specified in the license document and that document is controlling.

+
+ + implements a Output-FeedBack (OFB) mode on top of a simple cipher. + + + Basic constructor. + + @param cipher the block cipher to be used as the basis of the + feedback mode. + @param blockSize the block size in bits (note: a multiple of 8) + + + return the underlying block cipher that we are wrapping. + + @return the underlying block cipher that we are wrapping. + + + Initialise the cipher and, possibly, the initialisation vector (IV). + If an IV isn't passed as part of the parameter, the IV will be all zeros. + An IV which is too short is handled in FIPS compliant fashion. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the algorithm name and mode. + + @return the name of the underlying algorithm followed by "/OFB" + and the block size in bits + + + return the block size we are operating at (in bytes). + + @return the block size we are operating at (in bytes). + + + Process one block of input from the array in and write it to + the out array. + + @param in the array containing the input data. + @param inOff offset into the in array the data starts at. + @param out the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + reset the feedback vector back to the IV and reset the underlying + cipher. + + + * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode + * on top of a simple cipher. This class assumes the IV has been prepended + * to the data stream already, and just accomodates the reset after + * (blockSize + 2) bytes have been read. + *

+ * For further info see RFC 2440. + *

+
+ + Basic constructor. + + @param cipher the block cipher to be used as the basis of the + feedback mode. + + + return the underlying block cipher that we are wrapping. + + @return the underlying block cipher that we are wrapping. + + + return the algorithm name and mode. + + @return the name of the underlying algorithm followed by "/PGPCFB" + and the block size in bits. + + + return the block size we are operating at. + + @return the block size we are operating at (in bytes). + + + Process one block of input from the array in and write it to + the out array. + + @param in the array containing the input data. + @param inOff offset into the in array the data starts at. + @param out the array the output data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + reset the chaining vector back to the IV and reset the underlying + cipher. + + + Initialise the cipher and, possibly, the initialisation vector (IV). + If an IV isn't passed as part of the parameter, the IV will be all zeros. + An IV which is too short is handled in FIPS compliant fashion. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param parameters the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + Encrypt one byte of data according to CFB mode. + @param data the byte to encrypt + @param blockOff offset in the current block + @returns the encrypted byte + + + Do the appropriate processing for CFB IV mode encryption. + + @param in the array containing the data to be encrypted. + @param inOff offset into the in array the data starts at. + @param out the array the encrypted data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + Do the appropriate processing for CFB IV mode decryption. + + @param in the array containing the data to be decrypted. + @param inOff offset into the in array the data starts at. + @param out the array the encrypted data will be copied into. + @param outOff the offset into the out array the output will start at. + @exception DataLengthException if there isn't enough data in in, or + space in out. + @exception InvalidOperationException if the cipher isn't initialised. + @return the number of bytes processed and produced. + + + Implements the Segmented Integer Counter (SIC) mode on top of a simple + block cipher. + + + Basic constructor. + + @param c the block cipher to be used. + + + return the underlying block cipher that we are wrapping. + + @return the underlying block cipher that we are wrapping. + + + Return the digest algorithm using one of the standard JCA string + representations rather than the algorithm identifier (if possible). + + + + Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve + signature algorithm details. + + + + + Base constructor. + + The name of the signature algorithm to use. + The private key to be used in the signing operation. + + + + Constructor which also specifies a source of randomness to be used if one is required. + + The name of the signature algorithm to use. + The private key to be used in the signing operation. + The source of randomness to be used in signature calculation. + + + + Allows enumeration of the signature names supported by the verifier provider. + + + + + Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve + signature algorithm details. + + + + + Base constructor. + + The name of the signature algorithm to use. + The public key to be used in the verification operation. + + + + Provider class which supports dynamic creation of signature verifiers. + + + + + Base constructor - specify the public key to be used in verification. + + The public key to be used in creating verifiers provided by this object. + + + + Allows enumeration of the signature names supported by the verifier provider. + + + + Block cipher padders are expected to conform to this interface + + + Initialise the padder. + + @param param parameters, if any required. + + + Return the name of the algorithm the cipher implements. + + @return the name of the algorithm the cipher implements. + + + add the pad bytes to the passed in block, returning the + number of bytes added. + + + return the number of pad bytes present in the block. + @exception InvalidCipherTextException if the padding is badly formed + or invalid. + + + A padder that adds ISO10126-2 padding to a block. + + + Initialise the padder. + + @param random a SecureRandom if available. + + + Return the name of the algorithm the cipher implements. + + @return the name of the algorithm the cipher implements. + + + add the pad bytes to the passed in block, returning the + number of bytes added. + + + return the number of pad bytes present in the block. + + + A padder that adds the padding according to the scheme referenced in + ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00 + + + Initialise the padder. + + @param random - a SecureRandom if available. + + + Return the name of the algorithm the padder implements. + + @return the name of the algorithm the padder implements. + + + add the pad bytes to the passed in block, returning the + number of bytes added. + + + return the number of pad bytes present in the block. + + + A wrapper class that allows block ciphers to be used to process data in + a piecemeal fashion with padding. The PaddedBufferedBlockCipher + outputs a block only when the buffer is full and more data is being added, + or on a doFinal (unless the current block in the buffer is a pad block). + The default padding mechanism used is the one outlined in Pkcs5/Pkcs7. + + + Create a buffered block cipher with the desired padding. + + @param cipher the underlying block cipher this buffering object wraps. + @param padding the padding type. + + + Create a buffered block cipher Pkcs7 padding + + @param cipher the underlying block cipher this buffering object wraps. + + + initialise the cipher. + + @param forEncryption if true the cipher is initialised for + encryption, if false for decryption. + @param param the key and other data required by the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + + + return the minimum size of the output buffer required for an update + plus a doFinal with an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to update and doFinal + with len bytes of input. + + + return the size of the output buffer required for an update + an input of len bytes. + + @param len the length of the input. + @return the space required to accommodate a call to update + with len bytes of input. + + + process a single byte, producing an output block if necessary. + + @param in the input byte. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + process an array of bytes, producing output if necessary. + + @param in the input byte array. + @param inOff the offset at which the input data starts. + @param len the number of bytes to be copied out of the input array. + @param out the space for any output that might be produced. + @param outOff the offset from which the output will be copied. + @return the number of output bytes copied to out. + @exception DataLengthException if there isn't enough space in out. + @exception InvalidOperationException if the cipher isn't initialised. + + + Process the last block in the buffer. If the buffer is currently + full and padding needs to be added a call to doFinal will produce + 2 * GetBlockSize() bytes. + + @param out the array the block currently being held is copied into. + @param outOff the offset at which the copying starts. + @return the number of output bytes copied to out. + @exception DataLengthException if there is insufficient space in out for + the output or we are decrypting and the input is not block size aligned. + @exception InvalidOperationException if the underlying cipher is not + initialised. + @exception InvalidCipherTextException if padding is expected and not found. + + + A padder that adds Pkcs7/Pkcs5 padding to a block. + + + Initialise the padder. + + @param random - a SecureRandom if available. + + + Return the name of the algorithm the cipher implements. + + @return the name of the algorithm the cipher implements. + + + add the pad bytes to the passed in block, returning the + number of bytes added. + + + return the number of pad bytes present in the block. + + + A padder that adds Trailing-Bit-Compliment padding to a block. +

+ This padding pads the block out compliment of the last bit + of the plain text. +

+
+
+ + Return the name of the algorithm the cipher implements. + the name of the algorithm the cipher implements. + + + + Initialise the padder. + - a SecureRandom if available. + + + + add the pad bytes to the passed in block, returning the + number of bytes added. +

+ Note: this assumes that the last block of plain text is always + passed to it inside in. i.e. if inOff is zero, indicating the + entire block is to be overwritten with padding the value of in + should be the same as the last block of plain text. +

+
+
+ + return the number of pad bytes present in the block. + + + A padder that adds X9.23 padding to a block - if a SecureRandom is + passed in random padding is assumed, otherwise padding with zeros is used. + + + Initialise the padder. + + @param random a SecureRandom if one is available. + + + Return the name of the algorithm the cipher implements. + + @return the name of the algorithm the cipher implements. + + + add the pad bytes to the passed in block, returning the + number of bytes added. + + + return the number of pad bytes present in the block. + + + A padder that adds Null byte padding to a block. + + + Return the name of the algorithm the cipher implements. + + + the name of the algorithm the cipher implements. + + + + Initialise the padder. + + + - a SecureRandom if available. + + + + add the pad bytes to the passed in block, returning the + number of bytes added. + + + + return the number of pad bytes present in the block. + + + Base constructor. + + @param key key to be used by underlying cipher + @param macSize macSize in bits + @param nonce nonce to be used + + + Base constructor. + + @param key key to be used by underlying cipher + @param macSize macSize in bits + @param nonce nonce to be used + @param associatedText associated text, if any + + + Base constructor. + + @param key key to be used by underlying cipher + @param macSize macSize in bits + @param nonce nonce to be used + @param associatedText associated text, if any + + + return true if the passed in key is a DES-EDE weak key. + + @param key bytes making up the key + @param offset offset into the byte array the key starts at + @param length number of bytes making up the key + + + return true if the passed in key is a DES-EDE weak key. + + @param key bytes making up the key + @param offset offset into the byte array the key starts at + + + return true if the passed in key is a real 2/3 part DES-EDE key. + + @param key bytes making up the key + @param offset offset into the byte array the key starts at + + + return true if the passed in key is a real 2 part DES-EDE key. + + @param key bytes making up the key + @param offset offset into the byte array the key starts at + + + return true if the passed in key is a real 3 part DES-EDE key. + + @param key bytes making up the key + @param offset offset into the byte array the key starts at + + + DES has 16 weak keys. This method will check + if the given DES key material is weak or semi-weak. + Key material that is too short is regarded as weak. +

+ See "Applied + Cryptography" by Bruce Schneier for more information. +

+ @return true if the given DES key material is weak or semi-weak, + false otherwise. +
+ + DES Keys use the LSB as the odd parity bit. This can + be used to check for corrupt keys. + + @param bytes the byte array to set the parity on. + + + The minimum bitlength of the private value. + + + The bitlength of the private value. + + + Construct without a usage index, this will do a random construction of G. + + @param L desired length of prime P in bits (the effective key size). + @param N desired length of prime Q in bits. + @param certainty certainty level for prime number generation. + @param random the source of randomness to use. + + + Construct for a specific usage index - this has the effect of using verifiable canonical generation of G. + + @param L desired length of prime P in bits (the effective key size). + @param N desired length of prime Q in bits. + @param certainty certainty level for prime number generation. + @param random the source of randomness to use. + @param usageIndex a valid usage index. + + + return the generator - g + + + return private value limit - l + + + Parameter class for the HkdfBytesGenerator class. + + + Generates parameters for HKDF, specifying both the optional salt and + optional info. Step 1: Extract won't be skipped. + + @param ikm the input keying material or seed + @param salt the salt to use, may be null for a salt for hashLen zeros + @param info the info to use, may be null for an info field of zero bytes + + + Factory method that makes the HKDF skip the extract part of the key + derivation function. + + @param ikm the input keying material or seed, directly used for step 2: + Expand + @param info the info to use, may be null for an info field of zero bytes + @return HKDFParameters that makes the implementation skip step 1 + + + Returns the input keying material or seed. + + @return the keying material + + + Returns if step 1: extract has to be skipped or not + + @return true for skipping, false for no skipping of step 1 + + + Returns the salt, or null if the salt should be generated as a byte array + of HashLen zeros. + + @return the salt, or null + + + Returns the info field, which may be empty (null is converted to empty). + + @return the info field, never null + + + parameters for using an integrated cipher in stream mode. + + + @param derivation the derivation parameter for the KDF function. + @param encoding the encoding parameter for the KDF function. + @param macKeySize the size of the MAC key (in bits). + + + @param derivation the derivation parameter for the KDF function. + @param encoding the encoding parameter for the KDF function. + @param macKeySize the size of the MAC key (in bits). + @param cipherKeySize the size of the associated Cipher key (in bits). + + + parameters for Key derivation functions for ISO-18033 + + + + Base constructor - suffix fixed input data only. + + the KDF seed + fixed input data to follow counter. + length of the counter in bits + + + + Base constructor - prefix and suffix fixed input data. + + the KDF seed + fixed input data to precede counter + fixed input data to follow counter. + length of the counter in bits. + + + parameters for Key derivation functions for IEEE P1363a + + + Parameters for mask derivation functions. + + + Parameters for NaccacheStern public private key generation. For details on + this cipher, please see + + http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf + + + Parameters for generating a NaccacheStern KeyPair. + + @param random + The source of randomness + @param strength + The desired strength of the Key in Bits + @param certainty + the probability that the generated primes are not really prime + as integer: 2^(-certainty) is then the probability + @param countSmallPrimes + How many small key factors are desired + + + * Parameters for a NaccacheStern KeyPair. + * + * @param random + * The source of randomness + * @param strength + * The desired strength of the Key in Bits + * @param certainty + * the probability that the generated primes are not really prime + * as integer: 2^(-certainty) is then the probability + * @param cntSmallPrimes + * How many small key factors are desired + * @param debug + * Ignored + + + @return Returns the certainty. + + + @return Returns the countSmallPrimes. + + + Public key parameters for NaccacheStern cipher. For details on this cipher, + please see + + http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf + + + @param privateKey + + + @return Returns the g. + + + @return Returns the lowerSigmaBound. + + + @return Returns the n. + + + Private key parameters for NaccacheStern cipher. For details on this cipher, + please see + + http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf + + + Constructs a NaccacheSternPrivateKey + + @param g + the public enryption parameter g + @param n + the public modulus n = p*q + @param lowerSigmaBound + the public lower sigma bound up to which data can be encrypted + @param smallPrimes + the small primes, of which sigma is constructed in the right + order + @param phi_n + the private modulus phi(n) = (p-1)(q-1) + + + Cipher parameters with a fixed salt value associated with them. + + + + Parameters for the Skein hash function - a series of byte[] strings identified by integer tags. + + + Parameterised Skein can be used for: +
    +
  • MAC generation, by providing a key.
  • +
  • Randomised hashing, by providing a nonce.
  • +
  • A hash function for digital signatures, associating a + public key with the message digest.
  • +
  • A key derivation function, by providing a + key identifier.
  • +
  • Personalised hashing, by providing a + recommended format or + arbitrary personalisation string.
  • +
+
+ + + +
+ + + The parameter type for a secret key, supporting MAC or KDF functions: 0 + + + + + The parameter type for the Skein configuration block: 4 + + + + + The parameter type for a personalisation string: 8 + + + + + The parameter type for a public key: 12 + + + + + The parameter type for a key identifier string: 16 + + + + + The parameter type for a nonce: 20 + + + + + The parameter type for the message: 48 + + + + + The parameter type for the output transformation: 63 + + + + + Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object. + + + + + Obtains the value of the key parameter, or null if not + set. + + The key. + + + + Obtains the value of the personalisation parameter, or + null if not set. + + + + + Obtains the value of the public key parameter, or + null if not set. + + + + + Obtains the value of the key identifier parameter, or + null if not set. + + + + + Obtains the value of the nonce parameter, or null if + not set. + + + + + A builder for . + + + + + Sets a parameters to apply to the Skein hash function. + + + Parameter types must be in the range 0,5..62, and cannot use the value 48 + (reserved for message body). +

+ Parameters with type < 48 are processed before + the message content, parameters with type > 48 + are processed after the message and prior to output. + + the type of the parameter, in the range 5..62. + the byte sequence of the parameter. + + +

+ Sets the parameter. + +
+ + + Sets the parameter. + + + + + Implements the recommended personalisation format for Skein defined in Section 4.11 of + the Skein 1.3 specification. + + + The format is YYYYMMDD email@address distinguisher, encoded to a byte + sequence using UTF-8 encoding. + + the date the personalised application of the Skein was defined. + the email address of the creation of the personalised application. + an arbitrary personalisation string distinguishing the application. + + + + Sets the parameter. + + + + + Sets the parameter. + + + + + Sets the parameter. + + + + + Constructs a new instance with the parameters provided to this + builder. + + + + Private parameters for an SM2 key exchange. + The ephemeralPrivateKey is used to calculate the random point used in the algorithm. + + + Public parameters for an SM2 key exchange. + In this case the ephemeralPublicKey provides the random point used in the algorithm. + + + + Parameters for tweakable block ciphers. + + + + + Gets the key. + + the key to use, or null to use the current key. + + + + Gets the tweak value. + + The tweak to use, or null to use the current tweak. + + + super class for all Password Based Encyrption (Pbe) parameter generator classes. + + + base constructor. + + + initialise the Pbe generator. + + @param password the password converted into bytes (see below). + @param salt the salt to be mixed with the password. + @param iterationCount the number of iterations the "mixing" function + is to be applied for. + + + return the password byte array. + + @return the password byte array. + + + return the salt byte array. + + @return the salt byte array. + + + return the iteration count. + + @return the iteration count. + + + Generate derived parameters for a key of length keySize. + + @param keySize the length, in bits, of the key required. + @return a parameters object representing a key. + + + Generate derived parameters for a key of length keySize, and + an initialisation vector (IV) of length ivSize. + + @param keySize the length, in bits, of the key required. + @param ivSize the length, in bits, of the iv required. + @return a parameters object representing a key and an IV. + + + Generate derived parameters for a key of length keySize, specifically + for use with a MAC. + + @param keySize the length, in bits, of the key required. + @return a parameters object representing a key. + + + converts a password to a byte array according to the scheme in + Pkcs5 (ascii, no padding) + + @param password a character array representing the password. + @return a byte array representing the password. + + + converts a password to a byte array according to the scheme in + PKCS5 (UTF-8, no padding) + + @param password a character array representing the password. + @return a byte array representing the password. + + + converts a password to a byte array according to the scheme in + Pkcs12 (unicode, big endian, 2 zero pad bytes at the end). + + @param password a character array representing the password. + @return a byte array representing the password. + + + An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed(). + + + Create a entropy source provider based on the passed in SecureRandom. + + @param secureRandom the SecureRandom to base EntropySource construction on. + @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is). + + + Return an entropy source that will create bitsRequired bits of entropy on + each invocation of getEntropy(). + + @param bitsRequired size (in bits) of entropy to be created by the provided source. + @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method. + + + + Uses RandomNumberGenerator.Create() to get randomness generator + + + + Random generation based on the digest with counter. Calling AddSeedMaterial will + always increase the entropy of the hash. +

+ Internal access to the digest is synchronized so a single one of these can be shared. +

+
+ + A SP800-90A CTR DRBG. + + + Construct a SP800-90A CTR DRBG. +

+ Minimum entropy requirement is the security strength requested. +

+ @param engine underlying block cipher to use to support DRBG + @param keySizeInBits size of the key to use with the block cipher. + @param securityStrength security strength required (in bits) + @param entropySource source of entropy to use for seeding/reseeding. + @param personalizationString personalization string to distinguish this DRBG (may be null). + @param nonce nonce to further distinguish this DRBG (may be null). +
+ + Return the block size (in bits) of the DRBG. + + @return the number of bits produced on each internal round of the DRBG. + + + Populate a passed in array with random data. + + @param output output array for generated bits. + @param additionalInput additional input to be added to the DRBG in this step. + @param predictionResistant true if a reseed should be forced, false otherwise. + + @return number of bits generated, -1 if a reseed required. + + + Reseed the DRBG. + + @param additionalInput additional input to be added to the DRBG in this step. + + + Pad out a key for TDEA, setting odd parity for each byte. + + @param keyMaster + @param keyOff + @param tmp + @param tmpOff + + + Used by both Dual EC and Hash. + + + A SP800-90A Hash DRBG. + + + Construct a SP800-90A Hash DRBG. +

+ Minimum entropy requirement is the security strength requested. +

+ @param digest source digest to use for DRB stream. + @param securityStrength security strength required (in bits) + @param entropySource source of entropy to use for seeding/reseeding. + @param personalizationString personalization string to distinguish this DRBG (may be null). + @param nonce nonce to further distinguish this DRBG (may be null). +
+ + Return the block size (in bits) of the DRBG. + + @return the number of bits produced on each internal round of the DRBG. + + + Populate a passed in array with random data. + + @param output output array for generated bits. + @param additionalInput additional input to be added to the DRBG in this step. + @param predictionResistant true if a reseed should be forced, false otherwise. + + @return number of bits generated, -1 if a reseed required. + + + Reseed the DRBG. + + @param additionalInput additional input to be added to the DRBG in this step. + + + A SP800-90A HMAC DRBG. + + + Construct a SP800-90A Hash DRBG. +

+ Minimum entropy requirement is the security strength requested. +

+ @param hMac Hash MAC to base the DRBG on. + @param securityStrength security strength required (in bits) + @param entropySource source of entropy to use for seeding/reseeding. + @param personalizationString personalization string to distinguish this DRBG (may be null). + @param nonce nonce to further distinguish this DRBG (may be null). +
+ + Return the block size (in bits) of the DRBG. + + @return the number of bits produced on each round of the DRBG. + + + Populate a passed in array with random data. + + @param output output array for generated bits. + @param additionalInput additional input to be added to the DRBG in this step. + @param predictionResistant true if a reseed should be forced, false otherwise. + + @return number of bits generated, -1 if a reseed required. + + + Reseed the DRBG. + + @param additionalInput additional input to be added to the DRBG in this step. + + + Interface to SP800-90A deterministic random bit generators. + + + Return the block size of the DRBG. + + @return the block size (in bits) produced by each round of the DRBG. + + + Populate a passed in array with random data. + + @param output output array for generated bits. + @param additionalInput additional input to be added to the DRBG in this step. + @param predictionResistant true if a reseed should be forced, false otherwise. + + @return number of bits generated, -1 if a reseed required. + + + Reseed the DRBG. + + @param additionalInput additional input to be added to the DRBG in this step. + + + Generate numBytes worth of entropy from the passed in entropy source. + + @param entropySource the entropy source to request the data from. + @param numBytes the number of bytes of entropy requested. + @return a byte array populated with the random data. + + + Generic interface for objects generating random bytes. + + + Add more seed material to the generator. + A byte array to be mixed into the generator's state. + + + Add more seed material to the generator. + A long value to be mixed into the generator's state. + + + Fill byte array with random values. + Array to be filled. + + + Fill byte array with random values. + Array to receive bytes. + Index to start filling at. + Length of segment to fill. + + + + Takes bytes generated by an underling RandomGenerator and reverses the order in + each small window (of configurable size). +

+ Access to internals is synchronized so a single one of these can be shared. +

+
+
+ + Add more seed material to the generator. + A byte array to be mixed into the generator's state. + + + Add more seed material to the generator. + A long value to be mixed into the generator's state. + + + Fill byte array with random values. + Array to be filled. + + + Fill byte array with random values. + Array to receive bytes. + Index to start filling at. + Length of segment to fill. + + + Force a reseed of the DRBG. + optional additional input + + + Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG). + + + Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with + predictionResistant set to false. +

+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if + the default SecureRandom does for its generateSeed() call. +

+
+ + Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value + for prediction resistance. +

+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if + the passed in SecureRandom does for its generateSeed() call. +

+ @param entropySource + @param predictionResistant +
+ + Create a builder which makes creates the SecureRandom objects from a specified entropy source provider. +

+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored. +

+ @param entropySourceProvider a provider of EntropySource objects. +
+ + Set the personalization string for DRBG SecureRandoms created by this builder + @param personalizationString the personalisation string for the underlying DRBG. + @return the current builder. + + + Set the security strength required for DRBGs used in building SecureRandom objects. + + @param securityStrength the security strength (in bits) + @return the current builder. + + + Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects. + + @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed. + @return the current builder. + + + Build a SecureRandom based on a SP 800-90A Hash DRBG. + + @param digest digest algorithm to use in the DRBG underneath the SecureRandom. + @param nonce nonce value to use in DRBG construction. + @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes. + @return a SecureRandom supported by a Hash DRBG. + + + Build a SecureRandom based on a SP 800-90A CTR DRBG. + + @param cipher the block cipher to base the DRBG on. + @param keySizeInBits key size in bits to be used with the block cipher. + @param nonce nonce value to use in DRBG construction. + @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes. + @return a SecureRandom supported by a CTR DRBG. + + + Build a SecureRandom based on a SP 800-90A HMAC DRBG. + + @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom. + @param nonce nonce value to use in DRBG construction. + @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes. + @return a SecureRandom supported by a HMAC DRBG. + + + A thread based seed generator - one source of randomness. +

+ Based on an idea from Marcus Lippert. +

+
+ + Generate seed bytes. Set fast to false for best quality. +

+ If fast is set to true, the code should be round about 8 times faster when + generating a long sequence of random bytes. 20 bytes of random values using + the fast mode take less than half a second on a Nokia e70. If fast is set to false, + it takes round about 2500 ms. +

+ @param numBytes the number of bytes to generate + @param fast true if fast mode should be used +
+ + + Permutation generated by code: + + // First 1850 fractional digit of Pi number. + byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray(); + s = 0; + P = new byte[256]; + for (int i = 0; i < 256; i++) + { + P[i] = (byte) i; + } + for (int m = 0; m < 768; m++) + { + s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff]; + byte temp = P[m & 0xff]; + P[m & 0xff] = P[s & 0xff]; + P[s & 0xff] = temp; + } + + + + Value generated in the same way as P. + + + + @param engine + @param entropySource + + + Populate a passed in array with random data. + + @param output output array for generated bits. + @param predictionResistant true if a reseed should be forced, false otherwise. + + @return number of bits generated, -1 if a reseed required. + + + Reseed the RNG. + + + Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with + predictionResistant set to false. +

+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if + the default SecureRandom does for its generateSeed() call. +

+
+ + Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value + for prediction resistance. +

+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if + the passed in SecureRandom does for its generateSeed() call. +

+ @param entropySource + @param predictionResistant +
+ + Create a builder which makes creates the SecureRandom objects from a specified entropy source provider. +

+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored. +

+ @param entropySourceProvider a provider of EntropySource objects. +
+ + Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the + generator will be reseeded on each request. + + @param engine a block cipher to use as the operator. + @param key the block cipher key to initialise engine with. + @param predictionResistant true if engine to be reseeded on each use, false otherwise. + @return a SecureRandom. + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + Generate a signature for the message we've been loaded with using + the key we were initialised with. + + + true if the internal state represents the signature described in the passed in array. + + + Reset the internal state + + + The Digital Signature Algorithm - as described in "Handbook of Applied + Cryptography", pages 452 - 453. + + + Default configuration, random K values. + + + Configuration with an alternate, possibly deterministic calculator of K. + + @param kCalculator a K value calculator. + + + Generate a signature for the given message using the key we were + initialised with. For conventional DSA the message should be a SHA-1 + hash of the message of interest. + + @param message the message that will be verified later. + + + return true if the value r and s represent a DSA signature for + the passed in message for standard DSA the message should be a + SHA-1 hash of the real message to be verified. + + + EC-DSA as described in X9.62 + + + Default configuration, random K values. + + + Configuration with an alternate, possibly deterministic calculator of K. + + @param kCalculator a K value calculator. + + + Generate a signature for the given message using the key we were + initialised with. For conventional DSA the message should be a SHA-1 + hash of the message of interest. + + @param message the message that will be verified later. + + + return true if the value r and s represent a DSA signature for + the passed in message (for standard DSA the message should be + a SHA-1 hash of the real message to be verified). + + + GOST R 34.10-2001 Signature Algorithm + + + generate a signature for the given message using the key we were + initialised with. For conventional GOST3410 the message should be a GOST3411 + hash of the message of interest. + + @param message the message that will be verified later. + + + return true if the value r and s represent a GOST3410 signature for + the passed in message (for standard GOST3410 the message should be + a GOST3411 hash of the real message to be verified). + + + EC-NR as described in IEEE 1363-2000 + + + generate a signature for the given message using the key we were + initialised with. Generally, the order of the curve should be at + least as long as the hash of the message of interest, and with + ECNR it *must* be at least as long. + + @param digest the digest to be signed. + @exception DataLengthException if the digest is longer than the key allows + + + return true if the value r and s represent a signature for the + message passed in. Generally, the order of the curve should be at + least as long as the hash of the message of interest, and with + ECNR, it *must* be at least as long. But just in case the signer + applied mod(n) to the longer digest, this implementation will + apply mod(n) during verification. + + @param digest the digest to be verified. + @param r the r value of the signature. + @param s the s value of the signature. + @exception DataLengthException if the digest is longer than the key allows + + + initialise the signer for signing or verification. + + @param forSigning + true if for signing, false otherwise + @param parameters + necessary parameters. + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + Generate a signature for the message we've been loaded with using the key + we were initialised with. + + + return true if the internal state represents the signature described in + the passed in array. + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + Generate a signature for the message we've been loaded with using + the key we were initialised with. + + + true if the internal state represents the signature described in the passed in array. + + + Reset the internal state + + + Gost R 34.10-94 Signature Algorithm + + + generate a signature for the given message using the key we were + initialised with. For conventional Gost3410 the message should be a Gost3411 + hash of the message of interest. + + @param message the message that will be verified later. + + + return true if the value r and s represent a Gost3410 signature for + the passed in message for standard Gost3410 the message should be a + Gost3411 hash of the real message to be verified. + + + A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979. + + + Base constructor. + + @param digest digest to build the HMAC on. + + + + An interface for different encoding formats for DSA signatures. + + + + Decode the (r, s) pair of a DSA signature. + The order of the group that r, s belong to. + An encoding of the (r, s) pair of a DSA signature. + The (r, s) of a DSA signature, stored in an array of exactly two elements, r followed by s. + + + Encode the (r, s) pair of a DSA signature. + The order of the group that r, s belong to. + The r value of a DSA signature. + The s value of a DSA signature. + An encoding of the DSA signature given by the provided (r, s) pair. + + + Interface define calculators of K values for DSA/ECDSA. + + + Return true if this calculator is deterministic, false otherwise. + + @return true if deterministic, otherwise false. + + + Non-deterministic initialiser. + + @param n the order of the DSA group. + @param random a source of randomness. + + + Deterministic initialiser. + + @param n the order of the DSA group. + @param d the DSA private value. + @param message the message being signed. + + + Return the next valid value of K. + + @return a K value. + + + ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3). +

+ Note: the usual length for the salt is the length of the hash + function used in bytes.

+
+
+ + + Return a reference to the recoveredMessage message. + + The full/partial recoveredMessage message. + + + + + Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3. + + base cipher to use for signature creation/verification + digest to use. + length of salt in bytes. + whether or not the trailer is implicit or gives the hash. + + + Constructor for a signer with an explicit digest trailer. + + + cipher to use. + + digest to sign with. + + length of salt in bytes. + + + + Initialise the signer. + true if for signing, false if for verification. + parameters for signature generation/verification. If the + parameters are for generation they should be a ParametersWithRandom, + a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters + are passed in a SecureRandom will be created. + + if wrong parameter type or a fixed + salt is passed in which is the wrong length. + + + + compare two byte arrays - constant time. + + + clear possible sensitive data + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + reset the internal state + + + Generate a signature for the loaded message using the key we were + initialised with. + + + + return true if the signature represents a ISO9796-2 signature + for the passed in message. + + + + + Return true if the full message was recoveredMessage. + + true on full message recovery, false otherwise, or if not sure. + + + + int to octet string. + int to octet string. + + + long to octet string. + + + mask generator function, as described in Pkcs1v2. + + + ISO9796-2 - mechanism using a hash function with recovery (scheme 1) + + + + Return a reference to the recoveredMessage message. + + The full/partial recoveredMessage message. + + + + + Generate a signer with either implicit or explicit trailers for ISO9796-2. + + base cipher to use for signature creation/verification + digest to use. + whether or not the trailer is implicit or gives the hash. + + + Constructor for a signer with an explicit digest trailer. + + + cipher to use. + + digest to sign with. + + + + compare two byte arrays - constant time. + + + clear possible sensitive data + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + reset the internal state + + + Generate a signature for the loaded message using the key we were + initialised with. + + + + return true if the signature represents a ISO9796-2 signature + for the passed in message. + + + + + Return true if the full message was recoveredMessage. + + true on full message recovery, false otherwise. + + + + RSA-PSS as described in Pkcs# 1 v 2.1. +

+ Note: the usual value for the salt length is the number of + bytes in the hash function.

+
+
+ + Basic constructor + the asymmetric cipher to use. + the digest to use. + the length of the salt to use (in bytes). + + + Basic constructor + the asymmetric cipher to use. + the digest to use. + the fixed salt to be used. + + + clear possible sensitive data + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + reset the internal state + + + Generate a signature for the message we've been loaded with using + the key we were initialised with. + + + + return true if the internal state represents the signature described + in the passed in array. + + + + int to octet string. + + + mask generator function, as described in Pkcs1v2. + + + + Load oid table. + + + + Initialise the signer for signing or verification. + + @param forSigning true if for signing, false otherwise + @param param necessary parameters. + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + Generate a signature for the message we've been loaded with using + the key we were initialised with. + + + return true if the internal state represents the signature described + in the passed in array. + + + The SM2 Digital Signature algorithm. + + + X9.31-1998 - signing using a hash. +

+ The message digest hash, H, is encapsulated to form a byte string as follows +

+
+            EB = 06 || PS || 0xBA || H || TRAILER
+            
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number† for the digest. The byte string, EB, is converted to an integer value, the message representative, f. +
+ + Generate a signer with either implicit or explicit trailers for X9.31. + + @param cipher base cipher to use for signature creation/verification + @param digest digest to use. + @param implicit whether or not the trailer is implicit or gives the hash. + + + Constructor for a signer with an explicit digest trailer. + + @param cipher cipher to use. + @param digest digest to sign with. + + + clear possible sensitive data + + + update the internal digest with the byte b + + + update the internal digest with the byte array in + + + reset the internal state + + + generate a signature for the loaded message using the key we were + initialised with. + + + return true if the signature represents a ISO9796-2 signature + for the passed in message. + + + + A simple block result object which just carries a byte array. + + + + + Base constructor - a wrapper for the passed in byte array. + + The byte array to be wrapped. + + + + Return the number of bytes in the result + + The length of the result in bytes. + + + + Return the final result of the operation. + + A block of bytes, representing the result of an operation. + + + + Store the final result of the operation by copying it into the destination array. + + The number of bytes copied into destination. + The byte array to copy the result into. + The offset into destination to start copying the result at. + + + a wrapper for block ciphers with a single byte block size, so that they + can be treated like stream ciphers. + + + basic constructor. + + @param cipher the block cipher to be wrapped. + @exception ArgumentException if the cipher has a block size other than + one. + + + initialise the underlying cipher. + + @param forEncryption true if we are setting up for encryption, false otherwise. + @param param the necessary parameters for the underlying cipher to be initialised. + + + return the name of the algorithm we are wrapping. + + @return the name of the algorithm we are wrapping. + + + encrypt/decrypt a single byte returning the result. + + @param in the byte to be processed. + @return the result of processing the input byte. + + + process a block of bytes from in putting the result into out. + + @param in the input byte array. + @param inOff the offset into the in array where the data to be processed starts. + @param len the number of bytes to be processed. + @param out the output buffer the processed bytes go into. + @param outOff the offset into the output byte array the processed data stars at. + @exception DataLengthException if the output buffer is too small. + + + reset the underlying cipher. This leaves it in the same state + it was at after the last init (if there was one). + + + + + + + + + + + + + + + + + + + RFC 5246 7.2 + + + + This message notifies the recipient that the sender will not send any more messages on this + connection. Note that as of TLS 1.1, failure to properly close a connection no longer + requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes + unresumable if any connection is terminated without proper close_notify messages with level + equal to warning.") to conform with widespread implementation practice. + + + An inappropriate message was received. This alert is always fatal and should never be + observed in communication between proper implementations. + + + This alert is returned if a record is received with an incorrect MAC. This alert also MUST be + returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it + wasn't an even multiple of the block length, or its padding values, when checked, weren't + correct. This message is always fatal and should never be observed in communication between + proper implementations (except when messages were corrupted in the network). + + + This alert was used in some earlier versions of TLS, and may have permitted certain attacks + against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations. + + + A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record + decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always + fatal and should never be observed in communication between proper implementations (except + when messages were corrupted in the network). + + + The decompression function received improper input (e.g., data that would expand to excessive + length). This message is always fatal and should never be observed in communication between + proper implementations. + + + Reception of a handshake_failure alert message indicates that the sender was unable to + negotiate an acceptable set of security parameters given the options available. This is a + fatal error. + + + This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant + implementations. + + + A certificate was corrupt, contained signatures that did not verify correctly, etc. + + + A certificate was of an unsupported type. + + + A certificate was revoked by its signer. + + + A certificate has expired or is not currently valid. + + + Some other (unspecified) issue arose in processing the certificate, rendering it + unacceptable. + + + A field in the handshake was out of range or inconsistent with other fields. This message is + always fatal. + + + A valid certificate chain or partial chain was received, but the certificate was not accepted + because the CA certificate could not be located or couldn't be matched with a known, trusted + CA. This message is always fatal. + + + A valid certificate was received, but when access control was applied, the sender decided not + to proceed with negotiation. This message is always fatal. + + + A message could not be decoded because some field was out of the specified range or the + length of the message was incorrect. This message is always fatal and should never be + observed in communication between proper implementations (except when messages were corrupted + in the network). + + + A handshake cryptographic operation failed, including being unable to correctly verify a + signature or validate a Finished message. This message is always fatal. + + + This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant + implementations. + + + The protocol version the client has attempted to negotiate is recognized but not supported. + (For example, old protocol versions might be avoided for security reasons.) This message is + always fatal. + + + Returned instead of handshake_failure when a negotiation has failed specifically because the + server requires ciphers more secure than those supported by the client. This message is + always fatal. + + + An internal error unrelated to the peer or the correctness of the protocol (such as a memory + allocation failure) makes it impossible to continue. This message is always fatal. + + + This handshake is being canceled for some reason unrelated to a protocol failure. If the user + cancels an operation after the handshake is complete, just closing the connection by sending + a close_notify is more appropriate. This alert should be followed by a close_notify. This + message is generally a warning. + + + Sent by the client in response to a hello request or by the server in response to a client + hello after initial handshaking. Either of these would normally lead to renegotiation; when + that is not appropriate, the recipient should respond with this alert. At that point, the + original requester can decide whether to proceed with the connection. One case where this + would be appropriate is where a server has spawned a process to satisfy a request; the + process might receive security parameters (key length, authentication, etc.) at startup, and + it might be difficult to communicate changes to these parameters after that point. This + message is always a warning. + + + Sent by clients that receive an extended server hello containing an extension that they did + not put in the corresponding client hello. This message is always fatal. + + + This alert is sent by servers who are unable to retrieve a certificate chain from the URL + supplied by the client (see Section 3.3). This message MAY be fatal - for example if client + authentication is required by the server for the handshake to continue and the server is + unable to retrieve the certificate chain, it may send a fatal alert. + + + This alert is sent by servers that receive a server_name extension request, but do not + recognize the server name. This message MAY be fatal. + + + This alert is sent by clients that receive an invalid certificate status response (see + Section 3.6). This message is always fatal. + + + This alert is sent by servers when a certificate hash does not match a client provided + certificate_hash. This message is always fatal. + + + If the server does not recognize the PSK identity, it MAY respond with an + "unknown_psk_identity" alert message. + + + If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version + supported by the server is higher than the version indicated in ClientHello.client_version, + the server MUST respond with a fatal inappropriate_fallback alert [..]. + + + + RFC 5246 7.2 + + + + RFC 2246 + + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + + + + + A queue for bytes. +

+ This file could be more optimized. +

+
+
+ + The smallest number which can be written as 2^x which is bigger than i. + + + The initial size for our buffer. + + + The buffer where we store our data. + + + How many bytes at the beginning of the buffer are skipped. + + + How many bytes in the buffer are valid data. + + + Add some data to our buffer. + A byte-array to read data from. + How many bytes to skip at the beginning of the array. + How many bytes to read from the array. + + + The number of bytes which are available in this buffer. + + + Copy some bytes from the beginning of the data to the provided Stream. + The Stream to copy the bytes to. + How many bytes to copy. + If insufficient data is available. + If there is a problem copying the data. + + + Read data from the buffer. + The buffer where the read data will be copied to. + How many bytes to skip at the beginning of buf. + How many bytes to read at all. + How many bytes from our data to skip. + + + Return a MemoryStream over some bytes at the beginning of the data. + How many bytes will be readable. + A MemoryStream over the data. + If insufficient data is available. + + + Remove some bytes from our data from the beginning. + How many bytes to remove. + + + Parsing and encoding of a Certificate struct from RFC 4346. +

+

+             opaque ASN.1Cert<2^24-1>;
+            
+             struct {
+                 ASN.1Cert certificate_list<0..2^24-1>;
+             } Certificate;
+             
+ + @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure +
+ + The certificates. + + + @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate + chain. + + + @return true if this certificate chain contains no certificates, or + false otherwise. + + + Encode this {@link Certificate} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link Certificate} from a {@link Stream}. + + @param input the {@link Stream} to parse from. + @return a {@link Certificate} object. + @throws IOException + + + Parsing and encoding of a CertificateRequest struct from RFC 4346. +

+

+             struct {
+                 ClientCertificateType certificate_types<1..2^8-1>;
+                 DistinguishedName certificate_authorities<3..2^16-1>
+             } CertificateRequest;
+             
+ + @see ClientCertificateType + @see X509Name +
+ + @param certificateTypes see {@link ClientCertificateType} for valid constants. + @param certificateAuthorities an {@link IList} of {@link X509Name}. + + + @return an array of certificate types + @see {@link ClientCertificateType} + + + @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2). + + + @return an {@link IList} of {@link X509Name} + + + Encode this {@link CertificateRequest} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link CertificateRequest} from a {@link Stream}. + + @param context + the {@link TlsContext} of the current connection. + @param input + the {@link Stream} to parse from. + @return a {@link CertificateRequest} object. + @throws IOException + + + Encode this {@link CertificateStatus} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link CertificateStatus} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link CertificateStatus} object. + @throws IOException + + + Encode this {@link CertificateStatusRequest} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link CertificateStatusRequest} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link CertificateStatusRequest} object. + @throws IOException + + + RFC 6091 + + + @param type + see {@link CertChainType} for valid constants. + @param urlAndHashList + a {@link IList} of {@link UrlAndHash}. + + + @return {@link CertChainType} + + + @return an {@link IList} of {@link UrlAndHash} + + + Encode this {@link CertificateUrl} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link CertificateUrl} from a {@link Stream}. + + @param context + the {@link TlsContext} of the current connection. + @param input + the {@link Stream} to parse from. + @return a {@link CertificateUrl} object. + @throws IOException + + + draft-ietf-tls-chacha20-poly1305-04 + + + + + + + + + + + + + + + + RFC 2246 A.5 + + + + RFC 2246 + + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + + + + A combined hash, which implements md5(m) || sha1(m). + + + @see org.bouncycastle.crypto.Digest#update(byte[], int, int) + + + @see org.bouncycastle.crypto.Digest#doFinal(byte[], int) + + + @see org.bouncycastle.crypto.Digest#reset() + + + + RFC 2246 6.1 + + + + RFC 2246 + + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + + + + RFC 2246 6.2.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Accept various standard DH groups with 'P' at least DefaultMinimumPrimeBits bits. + + + Accept various standard DH groups with 'P' at least the specified number of bits. + + + Accept a custom set of group parameters, subject to a minimum bitlength for 'P'. + An IList of acceptable DHParameters. + The minimum acceptable bitlength of the 'P' parameter. + + + + + + + + + Accept only the group parameters specified in RFC 5054 Appendix A. + + + Specify a custom set of acceptable group parameters. + + @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters} + + + Buffers input until the hash algorithm is determined. + + + @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2). + + + Encode this {@link DigitallySigned} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link DigitallySigned} from a {@link Stream}. + + @param context + the {@link TlsContext} of the current connection. + @param input + the {@link Stream} to parse from. + @return a {@link DigitallySigned} object. + @throws IOException + + + + + + + + + + + + + + + + + + + + + + + + + + + Check that there are no "extra" messages left in the current inbound flight + + + RFC 4347 4.1.2.5 Anti-replay +

+ Support fast rejection of duplicate records by maintaining a sliding receive window + + + Check whether a received record with the given sequence number should be rejected as a duplicate. + + @param seq the 48-bit DTLSPlainText.sequence_number field of a received record. + @return true if the record should be discarded without further processing. + + + Report that a received record with the given sequence number passed authentication checks. + + @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record. + + + When a new epoch begins, sequence numbers begin again at 0 + + +

RFC 4492 5.4. (Errata ID: 2389) +
+ + + RFC 4492 5.4 + + + + Indicates the elliptic curve domain parameters are conveyed verbosely, and the + underlying finite field is a prime field. + + + Indicates the elliptic curve domain parameters are conveyed verbosely, and the + underlying finite field is a characteristic-2 field. + + + Indicates that a named curve is used. This option SHOULD be used when applicable. + + + + RFC 4492 5.1.2 + + + + RFC 2246 + + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + + + + RFC 5705 + + + RFC 5246 7.4.1.4.1 + + + Encode this {@link HeartbeatExtension} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link HeartbeatExtension} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link HeartbeatExtension} object. + @throws IOException + + + Encode this {@link HeartbeatMessage} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link HeartbeatMessage} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link HeartbeatMessage} object. + @throws IOException + + + RFC 2246 + + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + + + + RFC 2246 + + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + + + + + RFC 4492 5.1.1 + The named curves defined here are those specified in SEC 2 [13]. Note that many of + these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00 + through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the + client supports arbitrary prime and characteristic-2 curves, respectively (the curve + parameters must be encoded explicitly in ECParameters). + + + + Encode this {@link NewSessionTicket} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link NewSessionTicket} from a {@link Stream}. + + @param input the {@link Stream} to parse from. + @return a {@link NewSessionTicket} object. + @throws IOException + + + RFC 3546 3.6 + + + @param responderIDList + an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP + responders. An empty list has the special meaning that the responders are + implicitly known to the server - e.g., by prior arrangement. + @param requestExtensions + OCSP request extensions. A null value means that there are no extensions. + + + @return an {@link IList} of {@link ResponderID} + + + @return OCSP request extensions + + + Encode this {@link OcspStatusRequest} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link OcspStatusRequest} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return an {@link OcspStatusRequest} object. + @throws IOException + + + RFC 5246 + + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + + + + + + + An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3. + + + RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the + record layer version number (TLSPlaintext.version) should contain when sending ClientHello + (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers + compliant with this specification MUST accept any value {03,XX} as the record layer version + number for ClientHello." + + + @return {@link ConnectionEnd} + + + @return {@link CipherSuite} + + + @return {@link CompressionMethod} + + + @return {@link PRFAlgorithm} + + + Encode this {@link ServerName} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link ServerName} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link ServerName} object. + @throws IOException + + + @param serverNameList an {@link IList} of {@link ServerName}. + + + @return an {@link IList} of {@link ServerName}. + + + Encode this {@link ServerNameList} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link ServerNameList} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link ServerNameList} object. + @throws IOException + + + Encode this {@link ServerSRPParams} to an {@link OutputStream}. + + @param output + the {@link OutputStream} to encode to. + @throws IOException + + + Parse a {@link ServerSRPParams} from an {@link InputStream}. + + @param input + the {@link InputStream} to parse from. + @return a {@link ServerSRPParams} object. + @throws IOException + + + RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned) + + + RFC 5246 7.4.1.4.1 + + + @param hash {@link HashAlgorithm} + @param signature {@link SignatureAlgorithm} + + + @return {@link HashAlgorithm} + + + @return {@link SignatureAlgorithm} + + + Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}. + + @param input the {@link Stream} to parse from. + @return a {@link SignatureAndHashAlgorithm} object. + @throws IOException + + + An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities + to obscure the fact that there is no verifier for them. + + + Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3 + + @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in + @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3 + @return an instance of {@link SimulatedTlsSRPIdentityManager} + + + HMAC implementation based on original internet draft for HMAC (RFC 2104) + + The difference is that padding is concatentated versus XORed with the key + + H(K + opad, H(K + ipad, text)) + + + Base constructor for one of the standard digest algorithms that the byteLength of + the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1. + + @param digest the digest. + + + Reset the mac generator. + + + RFC 4680 + + + + + + + + + + + + + + + + + + + + + + Called by the protocol handler to report the server certificate. + + + This method is responsible for certificate verification and validation + + The server received + + + + + Return client credentials in response to server's certificate request + + + A containing server certificate request details + + + A to be used for client authentication + (or null for no client authentication) + + + + + + A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example. + + + + + + + + + + + + + + + + + + + + Called at the start of a new TLS session, before any other methods. + + + A + + + + Return the session this client wants to resume, if any. + Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated. + + A representing the resumable session to be used for this connection, + or null to use a new session. + + + + + Return the to use for the TLSPlaintext.version field prior to + receiving the server version. NOTE: This method is not called for DTLS. + + + See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value + {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest + version number supported by the client, and the value of ClientHello.client_version. No + single value will guarantee interoperability with all old servers, but this is a complex + topic beyond the scope of this document." + + The to use. + + + + Get the list of cipher suites that this client supports. + + + An array of values, each specifying a supported cipher suite. + + + + + Get the list of compression methods that this client supports. + + + An array of values, each specifying a supported compression method. + + + + + Get the (optional) table of client extensions to be included in (extended) client hello. + + + A (Int32 -> byte[]). May be null. + + + + + + + + + Notifies the client of the session_id sent in the ServerHello. + + An array of + + + + Report the cipher suite that was selected by the server. + + + The protocol handler validates this value against the offered cipher suites + + + + A + + + + + Report the compression method that was selected by the server. + + + The protocol handler validates this value against the offered compression methods + + + + A + + + + + Report the extensions from an extended server hello. + + + Will only be called if we returned a non-null result from . + + + A (Int32 -> byte[]) + + + + A list of + + + + + Return an implementation of to negotiate the key exchange + part of the protocol. + + + A + + + + + + Return an implementation of to handle authentication + part of the protocol. + + + + + A list of + + + + RFC 5077 3.3. NewSessionTicket Handshake Message + + This method will be called (only) when a NewSessionTicket handshake message is received. The + ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption + that it complies with e.g. RFC 5077 4. Recommended Ticket Construction. + + The ticket + + + + Constructor for blocking mode. + @param stream The bi-directional stream of data to/from the server + @param secureRandom Random number generator for various cryptographic functions + + + Constructor for blocking mode. + @param input The stream of data from the server + @param output The stream of data to the server + @param secureRandom Random number generator for various cryptographic functions + + + Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to + provide the received ciphertext, then use + {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use + {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use + {@link #readOutput(byte[], int, int)} to get the corresponding + ciphertext. + + @param secureRandom + Random number generator for various cryptographic functions +
+ + Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete. + In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to + receive a callback when the handshake is complete. + + @param tlsClient The {@link TlsClient} to use for the handshake. + @throws IOException If in blocking mode and handshake was not successful. +
+ + + + + Used to get the resumable session, if any, used by this connection. Only available after the + handshake has successfully completed. + + @return A {@link TlsSession} representing the resumable session used by this connection, or + null if no resumable session available. + @see TlsPeer#NotifyHandshakeComplete() + + + Export keying material according to RFC 5705: "Keying Material Exporters for TLS". + + @param asciiLabel indicates which application will use the exported keys. + @param context_value allows the application using the exporter to mix its own data with the TLS PRF for + the exporter output. + @param length the number of bytes to generate + @return a pseudorandom bit string of 'length' bytes generated from the master_secret. + + + (D)TLS DH key exchange. + + + An interface for verifying that Diffie-Hellman parameters are acceptable. + + + Verify that the given DHParameters are acceptable. + The DHParameters to verify. + true if (and only if) the specified parameters are acceptable. + + + (D)TLS ECDHE key exchange (see RFC 4492). + + + (D)TLS ECDH key exchange (see RFC 4492). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A generic interface for key exchange implementations in (D)TLS. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest. + + + + Generate a new instance of an TlsMac. + + @param context the TLS client context + @param digest The digest to use. + @param key A byte-array where the key for this MAC is located. + @param keyOff The number of bytes to skip, before the key starts in the buffer. + @param keyLen The length of the key. + + + @return the MAC write secret + + + @return The output length of this MAC. + + + Calculate the MAC for some given data. + + @param type The message type of the message. + @param message A byte-buffer containing the message. + @param offset The number of bytes to skip, before the message starts. + @param length The length of the message. + @return A new byte-buffer containing the MAC value. + + + + This exception will be thrown(only) when the connection is closed by the peer without sending a + close_notify warning alert. + + + If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially + malicious). It may be possible to check for truncation via some property of a higher level protocol + built upon TLS, e.g.the Content-Length header for HTTPS. + + + + + A NULL CipherSuite, with optional MAC. + + + + + + + + + + + + + + + + + Specify the timeout, in milliseconds, to use for the complete handshake process. + + + Negative values are not allowed. A timeout of zero means an infinite timeout (i.e. the + handshake will never time out). NOTE: Currently only respected by DTLS protocols. + + + + + This implementation supports RFC 7627 and will always negotiate the extended_master_secret + extension where possible. + + + When connecting to a peer that does not offer/accept this extension, it is recommended to + abort the handshake. This option is provided for interoperability with legacy peers, + although some TLS features will be disabled in that case (see RFC 7627 5.4). + + + true if the handshake should be aborted when the peer does not negotiate the + extended_master_secret extension, or false to support legacy interoperability. + + + + + draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on + gmt_unix_time containing the current time, we recommend that implementors MAY provide the + ability to set gmt_unix_time as an option only, off by default." + + + true if the current time should be used in the gmt_unix_time field of + Random, or false if gmt_unix_time should contain a cryptographically + random value. + + + + + Report whether the server supports secure renegotiation + + + The protocol handler automatically processes the relevant extensions + + + A , true if the server supports secure renegotiation + + + + + + Return an implementation of to handle record compression. + + A + + + + + Return an implementation of to use for encryption/decryption. + + A + + + + This method will be called when an alert is raised by the protocol. + + + A human-readable message explaining what caused this alert. May be null. + The Exception that caused this alert to be raised. May be null. + + + This method will be called when an alert is received from the remote peer. + + + + + Notifies the peer that the handshake has been successfully completed. + + + + This method is called, when a change cipher spec message is received. + + @throws IOException If the message has an invalid content or the handshake is not in the correct + state. + + + Read data from the network. The method will return immediately, if there is still some data + left in the buffer, or block until some application data has been read from the network. + + @param buf The buffer where the data will be copied to. + @param offset The position where the data will be placed in the buffer. + @param len The maximum number of bytes to read. + @return The number of bytes read. + @throws IOException If something goes wrong during reading data. + + + Send some application data to the remote system. +

+ The method will handle fragmentation internally. + + @param buf The buffer with the data. + @param offset The position in the buffer where the data is placed. + @param len The length of the data. + @throws IOException If something goes wrong during sending. + + +

The secure bidirectional stream for this connection + Only allowed in blocking mode. +
+ + Should be called in non-blocking mode when the input data reaches EOF. + + + Equivalent to OfferInput(input, 0, input.length) + @see TlsProtocol#OfferInput(byte[], int, int) + @param input The input buffer to offer + @throws IOException If an error occurs while decrypting or processing a record + + + Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ This method will decrypt and process all records that are fully available. + If only part of a record is available, the buffer will be retained until the + remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data + can be obtained using {@link #readInput(byte[], int, int)}. If any records + containing protocol data were processed, a response may have been generated. + You should always check to see if there is any available output after calling + this method by calling {@link #getAvailableOutputBytes()}. + @param input The input buffer to offer + @param inputOff The offset within the input buffer that input begins + @param inputLen The number of bytes of input being offered + @throws IOException If an error occurs while decrypting or processing a record +
+ + Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)} + is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode. + @return The number of bytes of available application data +
+ + Retrieves received application data. Use {@link #getAvailableInputBytes()} to check + how much application data is currently available. This method functions similarly to + {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data + is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode. + @param buffer The buffer to hold the application data + @param offset The start offset in the buffer at which the data is written + @param length The maximum number of bytes to read + @return The total number of bytes copied to the buffer. May be less than the + length specified if the length was greater than the amount of available data. +
+ + Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been + processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to + transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting + to call it before the handshake is complete will result in an exception. + @param buffer The buffer containing application data to encrypt + @param offset The offset at which to begin reading data + @param length The number of bytes of data to read + @throws IOException If an error occurs encrypting the data, or the handshake is not complete +
+ + Gets the amount of encrypted data available to be sent. A call to + {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at + least this much data.
+
+ Only allowed in non-blocking mode. + @return The number of bytes of available encrypted data +
+ + Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check + how much encrypted data is currently available. This method functions similarly to + {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data + is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode. + @param buffer The buffer to hold the encrypted data + @param offset The start offset in the buffer at which the data is written + @param length The maximum number of bytes to read + @return The total number of bytes copied to the buffer. May be less than the + length specified if the length was greater than the amount of available data. +
+ + Closes this connection. + + @throws IOException If something goes wrong during closing. + + + Make sure the InputStream 'buf' now empty. Fail otherwise. + + @param buf The InputStream to check. + @throws IOException If 'buf' is not empty. + + + 'sender' only relevant to SSLv3 + + + Both streams can be the same object + + + (D)TLS PSK key exchange (RFC 4279). + + + (D)TLS and SSLv3 RSA key exchange. + + + + + + + + + + + + + + + + + + A (Int32 -> byte[]). Will never be null. + + + + + + + + + + + + + + Get the (optional) table of server extensions to be included in (extended) server hello. + + + A (Int32 -> byte[]). May be null. + + + + + + A (). May be null. + + + + + + + + + This method will be called (only) if the server included an extension of type + "status_request" with empty "extension_data" in the extended server hello. See RFC 3546 + 3.6. Certificate Status Request. If a non-null is returned, it + is sent to the client as a handshake message of type "certificate_status". + + A to be sent to the client (or null for none). + + + + + + + + + + () + + + + + Called by the protocol handler to report the client certificate, only if GetCertificateRequest + returned non-null. + + Note: this method is responsible for certificate verification and validation. + the effective client certificate (may be an empty chain). + + + + RFC 5077 3.3. NewSessionTicket Handshake Message. + + This method will be called (only) if a NewSessionTicket extension was sent by the server. See + RFC 5077 4. Recommended Ticket Construction for recommended format and protection. + + The ticket) + + + + Constructor for blocking mode. + @param stream The bi-directional stream of data to/from the client + @param output The stream of data to the client + @param secureRandom Random number generator for various cryptographic functions + + + Constructor for blocking mode. + @param input The stream of data from the client + @param output The stream of data to the client + @param secureRandom Random number generator for various cryptographic functions + + + Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to + provide the received ciphertext, then use + {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use + {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use + {@link #readOutput(byte[], int, int)} to get the corresponding + ciphertext. + + @param secureRandom + Random number generator for various cryptographic functions +
+ + Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete. + In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to + receive a callback when the handshake is complete. + + @param tlsServer + @throws IOException If in blocking mode and handshake was not successful. +
+ + + + + Check whether the given SRP group parameters are acceptable for use. + + @param group the {@link SRP6GroupParameters} to check + @return true if (and only if) the specified group parameters are acceptable + + + Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity. + + NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC + 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose. + + @param identity + the SRP identity sent by the connecting client + @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated' + parameters if the identity is not recognized. A null value is also allowed, but not + recommended. + + + (D)TLS SRP key exchange (RFC 5054). + + + RFC 5764 DTLS Extension to Establish Keys for SRTP. + + + + + + + + + + + + Some helper functions for MicroTLS. + + + Add a 'signature_algorithms' extension to existing extensions. + + @param extensions A {@link Hashtable} to add the extension to. + @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}. + @throws IOException + + + Get a 'signature_algorithms' extension from extensions. + + @param extensions A {@link Hashtable} to get the extension from, if it is present. + @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null. + @throws IOException + + + Create a 'signature_algorithms' extension value. + + @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}. + @return A byte array suitable for use as an extension value. + @throws IOException + + + Read 'signature_algorithms' extension data. + + @param extensionData The extension data. + @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}. + @throws IOException + + + RFC 6066 5. + + + Encode this {@link UrlAndHash} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + + + Parse a {@link UrlAndHash} from a {@link Stream}. + + @param context + the {@link TlsContext} of the current connection. + @param input + the {@link Stream} to parse from. + @return a {@link UrlAndHash} object. + @throws IOException + + + RFC 4681 + + + RFC 5764 4.1.1 + + + @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants. + @param mki valid lengths from 0 to 255. + + + @return see {@link SrtpProtectionProfile} for valid constants. + + + @return valid lengths from 0 to 255. + + + Create an AlgorithmIdentifier for the passed in encryption algorithm. + + @param encryptionOID OID for the encryption algorithm + @param keySize key size in bits (-1 if unknown) + @param random SecureRandom to use for parameter generation. + @return a full AlgorithmIdentifier including parameters + @throws IllegalArgumentException if encryptionOID cannot be matched + + + Create a key generator for the passed in Object Identifier. + + @param algorithm the Object Identifier indicating the algorithn the generator is for. + @param random a source of random to initialise the generator with. + @return an initialised CipherKeyGenerator. + @throws IllegalArgumentException if the algorithm cannot be identified. + + + return a = a + b - b preserved. + + + unsigned comparison on two arrays - note the arrays may + start with leading zeros. + + + return z = x / y - done in place (z value preserved, x contains the + remainder) + + + return whether or not a BigInteger is probably prime with a + probability of 1 - (1/2)**certainty. +

From Knuth Vol 2, pg 395.

+
+ + Calculate the numbers u1, u2, and u3 such that: + + u1 * a + u2 * b = u3 + + where u3 is the greatest common divider of a and b. + a and b using the extended Euclid algorithm (refer p. 323 + of The Art of Computer Programming vol 2, 2nd ed). + This also seems to have the side effect of calculating + some form of multiplicative inverse. + + @param a First number to calculate gcd for + @param b Second number to calculate gcd for + @param u1Out the return object for the u1 value + @return The greatest common divisor of a and b + + + return w with w = x * x - w is assumed to have enough space. + + + return x with x = y * z - x is assumed to have enough space. + + + Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size) + + + Montgomery multiplication: a = x * y * R^(-1) mod m +
+ Based algorithm 14.36 of Handbook of Applied Cryptography. +
+
  • m, x, y should have length n
  • +
  • a should have length (n + 1)
  • +
  • b = 2^32, R = b^n
  • +
    + The result is put in x +
    + NOTE: the indices of x, y, m, a different in HAC and in Java +
    + + return x = x % y - done in place (y value preserved) + + + do a left shift - this returns a new array. + + + do a right shift - this does it in place. + + + do a right shift by one - this does it in place. + + + returns x = x - y - we assume x is >= y + + + Class representing a simple version of a big decimal. A + SimpleBigDecimal is basically a + {@link java.math.BigInteger BigInteger} with a few digits on the right of + the decimal point. The number of (binary) digits on the right of the decimal + point is called the scale of the SimpleBigDecimal. + Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted + automatically, but must be set manually. All SimpleBigDecimals + taking part in the same arithmetic operation must have equal scale. The + result of a multiplication of two SimpleBigDecimals returns a + SimpleBigDecimal with double scale. + + + Returns a SimpleBigDecimal representing the same numerical + value as value. + @param value The value of the SimpleBigDecimal to be + created. + @param scale The scale of the SimpleBigDecimal to be + created. + @return The such created SimpleBigDecimal. + + + Constructor for SimpleBigDecimal. The value of the + constructed SimpleBigDecimal Equals bigInt / + 2scale. + @param bigInt The bigInt value parameter. + @param scale The scale of the constructed SimpleBigDecimal. + + + Class holding methods for point multiplication based on the window + τ-adic nonadjacent form (WTNAF). The algorithms are based on the + paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves" + by Jerome A. Solinas. The paper first appeared in the Proceedings of + Crypto 1997. + + + The window width of WTNAF. The standard value of 4 is slightly less + than optimal for running time, but keeps space requirements for + precomputation low. For typical curves, a value of 5 or 6 results in + a better running time. When changing this value, the + αu's must be computed differently, see + e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson, + Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004, + p. 121-122 + + + 24 + + + The αu's for a=0 as an array + of ZTauElements. + + + The αu's for a=0 as an array + of TNAFs. + + + The αu's for a=1 as an array + of ZTauElements. + + + The αu's for a=1 as an array + of TNAFs. + + + Computes the norm of an element λ of + Z[τ]. + @param mu The parameter μ of the elliptic curve. + @param lambda The element λ of + Z[τ]. + @return The norm of λ. + + + Computes the norm of an element λ of + R[τ], where λ = u + vτ + and u and u are real numbers (elements of + R). + @param mu The parameter μ of the elliptic curve. + @param u The real part of the element λ of + R[τ]. + @param v The τ-adic part of the element + λ of R[τ]. + @return The norm of λ. + + + Rounds an element λ of R[τ] + to an element of Z[τ], such that their difference + has minimal norm. λ is given as + λ = λ0 + λ1τ. + @param lambda0 The component λ0. + @param lambda1 The component λ1. + @param mu The parameter μ of the elliptic curve. Must + equal 1 or -1. + @return The rounded element of Z[τ]. + @throws ArgumentException if lambda0 and + lambda1 do not have same scale. + + + Approximate division by n. For an integer + k, the value λ = s k / n is + computed to c bits of accuracy. + @param k The parameter k. + @param s The curve parameter s0 or + s1. + @param vm The Lucas Sequence element Vm. + @param a The parameter a of the elliptic curve. + @param m The bit length of the finite field + Fm. + @param c The number of bits of accuracy, i.e. the scale of the returned + SimpleBigDecimal. + @return The value λ = s k / n computed to + c bits of accuracy. + + + Computes the τ-adic NAF (non-adjacent form) of an + element λ of Z[τ]. + @param mu The parameter μ of the elliptic curve. + @param lambda The element λ of + Z[τ]. + @return The τ-adic NAF of λ. + + + Applies the operation τ() to an + AbstractF2mPoint. + @param p The AbstractF2mPoint to which τ() is applied. + @return τ(p) + + + Returns the parameter μ of the elliptic curve. + @param curve The elliptic curve from which to obtain μ. + The curve must be a Koblitz curve, i.e. a Equals + 0 or 1 and b Equals + 1. + @return μ of the elliptic curve. + @throws ArgumentException if the given ECCurve is not a Koblitz + curve. + + + Calculates the Lucas Sequence elements Uk-1 and + Uk or Vk-1 and + Vk. + @param mu The parameter μ of the elliptic curve. + @param k The index of the second element of the Lucas Sequence to be + returned. + @param doV If set to true, computes Vk-1 and + Vk, otherwise Uk-1 and + Uk. + @return An array with 2 elements, containing Uk-1 + and Uk or Vk-1 + and Vk. + + + Computes the auxiliary value tw. If the width is + 4, then for mu = 1, tw = 6 and for + mu = -1, tw = 10 + @param mu The parameter μ of the elliptic curve. + @param w The window width of the WTNAF. + @return the auxiliary value tw + + + Computes the auxiliary values s0 and + s1 used for partial modular reduction. + @param curve The elliptic curve for which to compute + s0 and s1. + @throws ArgumentException if curve is not a + Koblitz curve (Anomalous Binary Curve, ABC). + + + Partial modular reduction modulo + (τm - 1)/(τ - 1). + @param k The integer to be reduced. + @param m The bitlength of the underlying finite field. + @param a The parameter a of the elliptic curve. + @param s The auxiliary values s0 and + s1. + @param mu The parameter μ of the elliptic curve. + @param c The precision (number of bits of accuracy) of the partial + modular reduction. + @return ρ := k partmod (τm - 1)/(τ - 1) + + + Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint} + by a BigInteger using the reduced τ-adic + NAF (RTNAF) method. + @param p The AbstractF2mPoint to Multiply. + @param k The BigInteger by which to Multiply p. + @return k * p + + + Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint} + by an element λ of Z[τ] + using the τ-adic NAF (TNAF) method. + @param p The AbstractF2mPoint to Multiply. + @param lambda The element λ of + Z[τ]. + @return λ * p + + + Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint} + by an element λ of Z[τ] + using the τ-adic NAF (TNAF) method, given the TNAF + of λ. + @param p The AbstractF2mPoint to Multiply. + @param u The the TNAF of λ.. + @return λ * p + + + Computes the [τ]-adic window NAF of an element + λ of Z[τ]. + @param mu The parameter μ of the elliptic curve. + @param lambda The element λ of + Z[τ] of which to compute the + [τ]-adic NAF. + @param width The window width of the resulting WNAF. + @param pow2w 2width. + @param tw The auxiliary value tw. + @param alpha The αu's for the window width. + @return The [τ]-adic window NAF of + λ. + + + Does the precomputation for WTNAF multiplication. + @param p The ECPoint for which to do the precomputation. + @param a The parameter a of the elliptic curve. + @return The precomputation array for p. + + + Class representing an element of Z[τ]. Let + λ be an element of Z[τ]. Then + λ is given as λ = u + vτ. The + components u and v may be used directly, there + are no accessor methods. + Immutable class. + + + The "real" part of λ. + + + The "τ-adic" part of λ. + + + Constructor for an element λ of + Z[τ]. + @param u The "real" part of λ. + @param v The "τ-adic" part of + λ. + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve the curve to use + @param x affine x co-ordinate + @param y affine y co-ordinate + + @deprecated Use ECCurve.CreatePoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve the curve to use + @param x affine x co-ordinate + @param y affine y co-ordinate + @param withCompression if true encode with point compression + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(boolean)} + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.CreatePoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.CreatePoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.CreatePoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + + + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + + + Create a point that encodes with or without point compresion. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + @param withCompression + if true encode with point compression + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + @deprecated Use ECCurve.createPoint to construct points + + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + + + Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly + faster) implementations, and for very small scalars. CAUTION: This implementation is NOT + constant-time in any way. It is only intended to be used for diagnostics. + + @param p + The point to multiply. + @param k + The multiplier. + @return The result of the point multiplication kP. + + + Base class for an elliptic curve. + + + Compute a PreCompInfo for a point on this curve, under a given name. Used by + ECMultipliers to save the precomputation for this ECPoint for use + by subsequent multiplication. + + @param point + The ECPoint to store precomputations for. + @param name + A String used to index precomputations of different types. + @param callback + Called to calculate the PreCompInfo. + + + Normalization ensures that any projective coordinate is 1, and therefore that the x, y + coordinates reflect those of the equivalent point in an affine coordinate system. Where more + than one point is to be normalized, this method will generally be more efficient than + normalizing each point separately. + + @param points + An array of points that will be updated in place with their normalized versions, + where necessary + + + Normalization ensures that any projective coordinate is 1, and therefore that the x, y + coordinates reflect those of the equivalent point in an affine coordinate system. Where more + than one point is to be normalized, this method will generally be more efficient than + normalizing each point separately. An (optional) z-scaling factor can be applied; effectively + each z coordinate is scaled by this value prior to normalization (but only one + actual multiplication is needed). + + @param points + An array of points that will be updated in place with their normalized versions, + where necessary + @param off + The start of the range of points to normalize + @param len + The length of the range of points to normalize + @param iso + The (optional) z-scaling factor - can be null + + + Create a cache-safe lookup table for the specified sequence of points. All the points MUST + belong to this ECCurve instance, and MUST already be normalized. + + + Sets the default ECMultiplier, unless already set. + + We avoid locking for performance reasons, so there is no uniqueness guarantee. + + + Decode a point on this curve from its ASN.1 encoding. The different + encodings are taken account of, including point compression for + Fp (X9.62 s 4.2.1 pg 17). + @return The decoded point. + + + Elliptic curve over Fp + + + The auxiliary values s0 and + s1 used for partial modular reduction for + Koblitz curves. + + + Solves a quadratic equation z2 + z = beta(X9.62 + D.1.6) The other solution is z + 1. + + @param beta + The value to solve the quadratic equation for. + @return the solution for z2 + z = beta or + null if no solution exists. + + + @return the auxiliary values s0 and + s1 used for partial modular reduction for + Koblitz curves. + + + Returns true if this is a Koblitz curve (ABC curve). + @return true if this is a Koblitz curve (ABC curve), false otherwise + + + Elliptic curves over F2m. The Weierstrass equation is given by + y2 + xy = x3 + ax2 + b. + + + The exponent m of F2m. + + + TPB: The integer k where xm + + xk + 1 represents the reduction polynomial + f(z).
    + PPB: The integer k1 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z).
    +
    + + TPB: Always set to 0
    + PPB: The integer k2 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z).
    +
    + + TPB: Always set to 0
    + PPB: The integer k3 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z).
    +
    + + The point at infinity on this curve. + + + Constructor for Trinomial Polynomial Basis (TPB). + @param m The exponent m of + F2m. + @param k The integer k where xm + + xk + 1 represents the reduction + polynomial f(z). + @param a The coefficient a in the Weierstrass equation + for non-supersingular elliptic curves over + F2m. + @param b The coefficient b in the Weierstrass equation + for non-supersingular elliptic curves over + F2m. + + + Constructor for Trinomial Polynomial Basis (TPB). + @param m The exponent m of + F2m. + @param k The integer k where xm + + xk + 1 represents the reduction + polynomial f(z). + @param a The coefficient a in the Weierstrass equation + for non-supersingular elliptic curves over + F2m. + @param b The coefficient b in the Weierstrass equation + for non-supersingular elliptic curves over + F2m. + @param order The order of the main subgroup of the elliptic curve. + @param cofactor The cofactor of the elliptic curve, i.e. + #Ea(F2m) = h * n. + + + Constructor for Pentanomial Polynomial Basis (PPB). + @param m The exponent m of + F2m. + @param k1 The integer k1 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param k2 The integer k2 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param k3 The integer k3 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param a The coefficient a in the Weierstrass equation + for non-supersingular elliptic curves over + F2m. + @param b The coefficient b in the Weierstrass equation + for non-supersingular elliptic curves over + F2m. + + + Constructor for Pentanomial Polynomial Basis (PPB). + @param m The exponent m of + F2m. + @param k1 The integer k1 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param k2 The integer k2 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param k3 The integer k3 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param a The coefficient a in the Weierstrass equation + for non-supersingular elliptic curves over + F2m. + @param b The coefficient b in the Weierstrass equation + for non-supersingular elliptic curves over + F2m. + @param order The order of the main subgroup of the elliptic curve. + @param cofactor The cofactor of the elliptic curve, i.e. + #Ea(F2m) = h * n. + + + Return true if curve uses a Trinomial basis. + + @return true if curve Trinomial, false otherwise. + + + return the field name for this field. + + @return the string "Fp". + + + return a sqrt root - the routine verifies that the calculation + returns the right value - if none exists it returns null. + + + Class representing the Elements of the finite field + F2m in polynomial basis (PB) + representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial + basis representations are supported. Gaussian normal basis (GNB) + representation is not supported. + + + Indicates gaussian normal basis representation (GNB). Number chosen + according to X9.62. GNB is not implemented at present. + + + Indicates trinomial basis representation (Tpb). Number chosen + according to X9.62. + + + Indicates pentanomial basis representation (Ppb). Number chosen + according to X9.62. + + + Tpb or Ppb. + + + The exponent m of F2m. + + + The LongArray holding the bits. + + + Constructor for Ppb. + @param m The exponent m of + F2m. + @param k1 The integer k1 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param k2 The integer k2 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param k3 The integer k3 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z). + @param x The BigInteger representing the value of the field element. + + + Constructor for Tpb. + @param m The exponent m of + F2m. + @param k The integer k where xm + + xk + 1 represents the reduction + polynomial f(z). + @param x The BigInteger representing the value of the field element. + + + Checks, if the ECFieldElements a and b + are elements of the same field F2m + (having the same representation). + @param a field element. + @param b field element to be compared. + @throws ArgumentException if a and b + are not elements of the same field + F2m (having the same + representation). + + + @return the representation of the field + F2m, either of + {@link F2mFieldElement.Tpb} (trinomial + basis representation) or + {@link F2mFieldElement.Ppb} (pentanomial + basis representation). + + + @return the degree m of the reduction polynomial + f(z). + + + @return Tpb: The integer k where xm + + xk + 1 represents the reduction polynomial + f(z).
    + Ppb: The integer k1 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z).
    +
    + + @return Tpb: Always returns 0
    + Ppb: The integer k2 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z).
    +
    + + @return Tpb: Always set to 0
    + Ppb: The integer k3 where xm + + xk3 + xk2 + xk1 + 1 + represents the reduction polynomial f(z).
    +
    + + base class for points on elliptic curves. + + + Returns the affine x-coordinate after checking that this point is normalized. + + @return The affine x-coordinate of this point + @throws IllegalStateException if the point is not normalized + + + Returns the affine y-coordinate after checking that this point is normalized + + @return The affine y-coordinate of this point + @throws IllegalStateException if the point is not normalized + + + Returns the x-coordinate. + + Caution: depending on the curve's coordinate system, this may not be the same value as in an + affine coordinate system; use Normalize() to get a point where the coordinates have their + affine values, or use AffineXCoord if you expect the point to already have been normalized. + + @return the x-coordinate of this point + + + Returns the y-coordinate. + + Caution: depending on the curve's coordinate system, this may not be the same value as in an + affine coordinate system; use Normalize() to get a point where the coordinates have their + affine values, or use AffineYCoord if you expect the point to already have been normalized. + + @return the y-coordinate of this point + + + Normalization ensures that any projective coordinate is 1, and therefore that the x, y + coordinates reflect those of the equivalent point in an affine coordinate system. + + @return a new ECPoint instance representing the same point, but with normalized coordinates + + + return the field element encoded with point compression. (S 4.3.6) + + + Multiplies this ECPoint by the given number. + @param k The multiplicator. + @return k * this. + + + Elliptic curve points over Fp + + + Create a point which encodes without point compression. + + @param curve the curve to use + @param x affine x co-ordinate + @param y affine y co-ordinate + + + Create a point that encodes with or without point compression. + + @param curve the curve to use + @param x affine x co-ordinate + @param y affine y co-ordinate + @param withCompression if true encode with point compression + + + Elliptic curve points over F2m + + + @param curve base curve + @param x x point + @param y y point + + + @param curve base curve + @param x x point + @param y y point + @param withCompression true if encode with point compression. + + + Joye's double-add algorithm. + + + Interface for classes encapsulating a point multiplication algorithm + for ECPoints. + + + Multiplies the ECPoint p by k, i.e. + p is added k times to itself. + @param p The ECPoint to be multiplied. + @param k The factor by which p is multiplied. + @return p multiplied by k. + + + Class holding precomputation data for fixed-point multiplications. + + + Lookup table for the precomputed ECPoints used for a fixed point multiplication. + + + The width used for the precomputation. If a larger width precomputation + is already available this may be larger than was requested, so calling + code should refer to the actual width. + + + Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using + mixed coordinates. + + + By default, addition will be done in Jacobian coordinates, and doubling will be done in + Modified Jacobian coordinates (independent of the original coordinate system of each point). + + + Montgomery ladder. + + + Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right). + + + Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left). + + + Interface for classes storing precomputation data for multiplication + algorithms. Used as a Memento (see GOF patterns) for + WNafMultiplier. + + + Class implementing the WNAF (Window Non-Adjacent Form) multiplication + algorithm. + + + Multiplies this by an integer k using the + Window NAF method. + @param k The integer by which this is multiplied. + @return A new ECPoint which equals this + multiplied by k. + + + Class holding precomputation data for the WNAF (Window Non-Adjacent Form) + algorithm. + + + Array holding the precomputed ECPoints used for a Window + NAF multiplication. + + + Array holding the negations of the precomputed ECPoints used + for a Window NAF multiplication. + + + Holds an ECPoint representing Twice(this). Used for the + Window NAF multiplication to create or extend the precomputed values. + + + Computes the Window NAF (non-adjacent Form) of an integer. + @param width The width w of the Window NAF. The width is + defined as the minimal number w, such that for any + w consecutive digits in the resulting representation, at + most one is non-zero. + @param k The integer of which the Window NAF is computed. + @return The Window NAF of the given width, such that the following holds: + k = &sum;i=0l-1 ki2i + , where the ki denote the elements of the + returned byte[]. + + + Determine window width to use for a scalar multiplication of the given size. + + @param bits the bit-length of the scalar to multiply by + @return the window size to use + + + Determine window width to use for a scalar multiplication of the given size. + + @param bits the bit-length of the scalar to multiply by + @param maxWidth the maximum window width to return + @return the window size to use + + + Determine window width to use for a scalar multiplication of the given size. + + @param bits the bit-length of the scalar to multiply by + @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width + @return the window size to use + + + Determine window width to use for a scalar multiplication of the given size. + + @param bits the bit-length of the scalar to multiply by + @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width + @param maxWidth the maximum window width to return + @return the window size to use + + + Class implementing the WTNAF (Window + τ-adic Non-Adjacent Form) algorithm. + + + Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint} + by k using the reduced τ-adic NAF (RTNAF) + method. + @param p The AbstractF2mPoint to multiply. + @param k The integer by which to multiply k. + @return p multiplied by k. + + + Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint} + by an element λ of Z[τ] using + the τ-adic NAF (TNAF) method. + @param p The AbstractF2mPoint to multiply. + @param lambda The element λ of + Z[τ] of which to compute the + [τ]-adic NAF. + @return p multiplied by λ. + + + Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint} + by an element λ of Z[τ] + using the window τ-adic NAF (TNAF) method, given the + WTNAF of λ. + @param p The AbstractF2mPoint to multiply. + @param u The the WTNAF of λ.. + @return λ * p + + + Class holding precomputation data for the WTNAF (Window + τ-adic Non-Adjacent Form) algorithm. + + + Array holding the precomputed AbstractF2mPoints used for the + WTNAF multiplication in + {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply() + WTauNafMultiplier.multiply()}. + + + 'Zeroless' Signed Digit Left-to-Right. + + + 'Zeroless' Signed Digit Right-to-Left. + + + Utility methods for generating primes and testing for primality. + + + Used to return the output from the + {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced + Miller-Rabin Probabilistic Primality Test} + + + Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine} + + + FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine + + Construct a provable prime number using a hash function. + + @param hash + the {@link Digest} instance to use (as "Hash()"). Cannot be null. + @param length + the length (in bits) of the prime to be generated. Must be at least 2. + @param inputSeed + the seed to be used for the generation of the requested prime. Cannot be null or + empty. + @return an {@link STOutput} instance containing the requested prime. + + + FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test + + Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an + alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more + information about a composite candidate, which may be useful when generating or validating + RSA moduli. + + @param candidate + the {@link BigInteger} instance to test for primality. + @param random + the source of randomness to use to choose bases. + @param iterations + the number of randomly-chosen bases to perform the test for. + @return an {@link MROutput} instance that can be further queried for details. + + + A fast check for small divisors, up to some implementation-specific limit. + + @param candidate + the {@link BigInteger} instance to test for division by small factors. + + @return true if the candidate is found to have any small factors, + false otherwise. + + + FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test + + Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. + + @param candidate + the {@link BigInteger} instance to test for primality. + @param random + the source of randomness to use to choose bases. + @param iterations + the number of randomly-chosen bases to perform the test for. + @return false if any witness to compositeness is found amongst the chosen bases + (so candidate is definitely NOT prime), or else true + (indicating primality with some probability dependent on the number of iterations + that were performed). + + + FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base). + + Run a single iteration of the Miller-Rabin algorithm against the specified base. + + @param candidate + the {@link BigInteger} instance to test for primality. + @param baseValue + the base value to use for this iteration. + @return false if the specified base is a witness to compositeness (so + candidate is definitely NOT prime), or else true. + + + + + BasicOcspResponse ::= SEQUENCE { + tbsResponseData ResponseData, + signatureAlgorithm AlgorithmIdentifier, + signature BIT STRING, + certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL + } + + + + + The DER encoding of the tbsResponseData field. + In the event of an encoding error. + + + The certificates, if any, associated with the response. + In the event of an encoding error. + + + + Verify the signature against the tbsResponseData object we contain. + + + + The ASN.1 encoded representation of this object. + + + Generator for basic OCSP response objects. + + + basic constructor + + + construct with the responderID to be the SHA-1 keyHash of the passed in public key. + + + Add a response for a particular Certificate ID. + + @param certID certificate ID details + @param certStatus status of the certificate - null if okay + + + Add a response for a particular Certificate ID. + + @param certID certificate ID details + @param certStatus status of the certificate - null if okay + @param singleExtensions optional extensions + + + Add a response for a particular Certificate ID. + + @param certID certificate ID details + @param nextUpdate date when next update should be requested + @param certStatus status of the certificate - null if okay + @param singleExtensions optional extensions + + + Add a response for a particular Certificate ID. + + @param certID certificate ID details + @param thisUpdate date this response was valid on + @param nextUpdate date when next update should be requested + @param certStatus status of the certificate - null if okay + @param singleExtensions optional extensions + + + Set the extensions for the response. + + @param responseExtensions the extension object to carry. + + + + Generate the signed response using the passed in signature calculator. + + Implementation of signing calculator factory. + The certificate chain associated with the response signer. + "produced at" date. + + + + Return an IEnumerable of the signature names supported by the generator. + + @return an IEnumerable containing recognised names. + + + create from an issuer certificate and the serial number of the + certificate it signed. + @exception OcspException if any problems occur creating the id fields. + + + return the serial number for the certificate associated + with this request. + + + Create a new CertificateID for a new serial number derived from a previous one + calculated for the same CA certificate. + + @param original the previously calculated CertificateID for the CA. + @param newSerialNumber the serial number for the new certificate of interest. + + @return a new CertificateID for newSerialNumber + + +
    +             OcspRequest     ::=     SEQUENCE {
    +                   tbsRequest                  TBSRequest,
    +                   optionalSignature   [0]     EXPLICIT Signature OPTIONAL }
    +            
    +               TBSRequest      ::=     SEQUENCE {
    +                   version             [0]     EXPLICIT Version DEFAULT v1,
    +                   requestorName       [1]     EXPLICIT GeneralName OPTIONAL,
    +                   requestList                 SEQUENCE OF Request,
    +                   requestExtensions   [2]     EXPLICIT Extensions OPTIONAL }
    +            
    +               Signature       ::=     SEQUENCE {
    +                   signatureAlgorithm      AlgorithmIdentifier,
    +                   signature               BIT STRING,
    +                   certs               [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
    +            
    +               Version         ::=             INTEGER  {  v1(0) }
    +            
    +               Request         ::=     SEQUENCE {
    +                   reqCert                     CertID,
    +                   singleRequestExtensions     [0] EXPLICIT Extensions OPTIONAL }
    +            
    +               CertID          ::=     SEQUENCE {
    +                   hashAlgorithm       AlgorithmIdentifier,
    +                   issuerNameHash      OCTET STRING, -- Hash of Issuer's DN
    +                   issuerKeyHash       OCTET STRING, -- Hash of Issuers public key
    +                   serialNumber        CertificateSerialNumber }
    +             
    +
    + + Return the DER encoding of the tbsRequest field. + @return DER encoding of tbsRequest + @throws OcspException in the event of an encoding error. + + + return the object identifier representing the signature algorithm + + + If the request is signed return a possibly empty CertStore containing the certificates in the + request. If the request is not signed the method returns null. + + @return null if not signed, a CertStore otherwise + @throws OcspException + + + Return whether or not this request is signed. + + @return true if signed false otherwise. + + + Verify the signature against the TBSRequest object we contain. + + + return the ASN.1 encoded representation of this object. + + + Add a request for the given CertificateID. + + @param certId certificate ID of interest + + + Add a request with extensions + + @param certId certificate ID of interest + @param singleRequestExtensions the extensions to attach to the request + + + Set the requestor name to the passed in X509Principal + + @param requestorName a X509Principal representing the requestor name. + + + Generate an unsigned request + + @return the OcspReq + @throws OcspException + + + Return an IEnumerable of the signature names supported by the generator. + + @return an IEnumerable containing recognised names. + + + return the ASN.1 encoded representation of this object. + + + base generator for an OCSP response - at the moment this only supports the + generation of responses containing BasicOCSP responses. + + + note 4 is not used. + + + Carrier for a ResponderID. + + + wrapper for the RevokedInfo object + + + return the revocation reason. Note: this field is optional, test for it + with hasRevocationReason() first. + @exception InvalidOperationException if a reason is asked for and none is avaliable + + + Return the status object for the response - null indicates good. + + @return the status object for the response, null if it is good. + + + return the NextUpdate value - note: this is an optional field so may + be returned as null. + + @return nextUpdate, or null if not present. + + + wrapper for the UnknownInfo object + + + + Utility class for creating IBasicAgreement objects from their names/Oids + + + + + Cipher Utility class contains methods that can not be specifically grouped into other classes. + + + + + Returns a ObjectIdentifier for a give encoding. + + A string representation of the encoding. + A DerObjectIdentifier, null if the Oid is not available. + + + + Utility class for creating IDigest objects from their names/Oids + + + + + Returns a ObjectIdentifier for a given digest mechanism. + + A string representation of the digest meanism. + A DerObjectIdentifier, null if the Oid is not available. + + + + A class containing methods to interface the BouncyCastle world to the .NET Crypto world. + + + + + Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure. + + + A System.Security.Cryptography.X509Certificate. + + + + Utility class for creating HMac object from their names/Oids + + + + + + + + + + Returns a ObjectIdentifier for a give encoding. + + A string representation of the encoding. + A DerObjectIdentifier, null if the Oid is not available. + + + + Create and auto-seed an instance based on the given algorithm. + + Equivalent to GetInstance(algorithm, true) + e.g. "SHA256PRNG" + + + + Create an instance based on the given algorithm, with optional auto-seeding + + e.g. "SHA256PRNG" + If true, the instance will be auto-seeded. + + + + To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed) + + + + Use the specified instance of IRandomGenerator as random source. + + This constructor performs no seeding of either the IRandomGenerator or the + constructed SecureRandom. It is the responsibility of the client to provide + proper seed material as necessary/appropriate for the given IRandomGenerator + implementation. + + The source to generate all random bytes from. + + + base constructor. + + + create a SecurityUtilityException with the given message. + + @param message the message to be carried with the exception. + + + + Signer Utility class contains methods that can not be specifically grouped into other classes. + + + + + Returns an ObjectIdentifier for a given encoding. + + A string representation of the encoding. + A DerObjectIdentifier, null if the OID is not available. + + + + Utility class for creating IWrapper objects from their names/Oids + + + + PEM generator for the original set of PEM objects used in Open SSL. + + + Class for reading OpenSSL PEM encoded streams containing + X509 certificates, PKCS8 encoded keys and PKCS7 objects. +

    + In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and + Certificates will be returned using the appropriate java.security type.

    +
    + + Create a new PemReader + + @param reader the Reader + + + Create a new PemReader with a password finder + + @param reader the Reader + @param pFinder the password finder + + + Reads in a X509Certificate. + + @return the X509Certificate + @throws IOException if an I/O error occured + + + Reads in a X509CRL. + + @return the X509Certificate + @throws IOException if an I/O error occured + + + Reads in a PKCS10 certification request. + + @return the certificate request. + @throws IOException if an I/O error occured + + + Reads in a X509 Attribute Certificate. + + @return the X509 Attribute Certificate + @throws IOException if an I/O error occured + + + Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS + API. + + @return the X509Certificate + @throws IOException if an I/O error occured + + + Read a Key Pair + + + General purpose writer for OpenSSL PEM objects. + + + The TextWriter object to write the output to. + + + Constructor for an unencrypted private key PEM object. + + @param key private key to be encoded. + + + Constructor for an encrypted private key PEM object. + + @param key private key to be encoded + @param algorithm encryption algorithm to use + @param provider provider to use + @throws NoSuchAlgorithmException if algorithm/mode cannot be found + + + + A class for verifying and creating Pkcs10 Certification requests. + + + CertificationRequest ::= Sequence { + certificationRequestInfo CertificationRequestInfo, + signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }}, + signature BIT STRING + } + + CertificationRequestInfo ::= Sequence { + version Integer { v1(0) } (v1,...), + subject Name, + subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }}, + attributes [0] Attributes{{ CRIAttributes }} + } + + Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }} + + Attr { ATTRIBUTE:IOSet } ::= Sequence { + type ATTRIBUTE.&id({IOSet}), + values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type}) + } + + see + + + + Instantiate a Pkcs10CertificationRequest object with the necessary credentials. + + Name of Sig Alg. + X509Name of subject eg OU="My unit." O="My Organisatioin" C="au" + Public Key to be included in cert reqest. + ASN1Set of Attributes. + Matching Private key for nominated (above) public key to be used to sign the request. + + + + Instantiate a Pkcs10CertificationRequest object with the necessary credentials. + + The factory for signature calculators to sign the PKCS#10 request with. + X509Name of subject eg OU="My unit." O="My Organisatioin" C="au" + Public Key to be included in cert reqest. + ASN1Set of Attributes. + Ignored. + + + + Instantiate a Pkcs10CertificationRequest object with the necessary credentials. + + The factory for signature calculators to sign the PKCS#10 request with. + X509Name of subject eg OU="My unit." O="My Organisatioin" C="au" + Public Key to be included in cert reqest. + ASN1Set of Attributes. + + + + Get the public key. + + The public key. + + + + Verify Pkcs10 Cert Request is valid. + + true = valid. + + + + A class for creating and verifying Pkcs10 Certification requests (this is an extension on ). + The requests are made using delay signing. This is useful for situations where + the private key is in another environment and not directly accessible (e.g. HSM) + So the first step creates the request, then the signing is done outside this + object and the signature is then used to complete the request. + + + CertificationRequest ::= Sequence { + certificationRequestInfo CertificationRequestInfo, + signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }}, + signature BIT STRING + } + + CertificationRequestInfo ::= Sequence { + version Integer { v1(0) } (v1,...), + subject Name, + subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }}, + attributes [0] Attributes{{ CRIAttributes }} + } + + Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }} + + Attr { ATTRIBUTE:IOSet } ::= Sequence { + type ATTRIBUTE.&id({IOSet}), + values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type}) + } + + see + + + + Instantiate a Pkcs10CertificationRequest object with the necessary credentials. + + Name of Sig Alg. + X509Name of subject eg OU="My unit." O="My Organisatioin" C="au" + Public Key to be included in cert reqest. + ASN1Set of Attributes. + + After the object is constructed use the and finally the + SignRequest methods to finalize the request. + + + + simply return the cert entry for the private key + + + Utility class for reencoding PKCS#12 files to definite length. + + + Just re-encode the outer layer of the PKCS#12 file to definite length encoding. + + @param berPKCS12File - original PKCS#12 file + @return a byte array representing the DER encoding of the PFX structure + @throws IOException + + + Re-encode the PKCS#12 structure to definite length encoding at the inner layer + as well, recomputing the MAC accordingly. + + @param berPKCS12File - original PKCS12 file. + @param provider - provider to use for MAC calculation. + @return a byte array representing the DER encoding of the PFX structure. + @throws IOException on parsing, encoding errors. + + + + A holding class for a PKCS#8 encrypted private key info object that allows for its decryption. + + + + + Base constructor from a PKCS#8 EncryptedPrivateKeyInfo object. + + A PKCS#8 EncryptedPrivateKeyInfo object. + + + + Base constructor from a BER encoding of a PKCS#8 EncryptedPrivateKeyInfo object. + + A BER encoding of a PKCS#8 EncryptedPrivateKeyInfo objects. + + + + Returns the underlying ASN.1 structure inside this object. + + Return the EncryptedPrivateKeyInfo structure in this object. + + + + Returns a copy of the encrypted data in this structure. + + Return a copy of the encrypted data in this object. + + + + Return a binary ASN.1 encoding of the EncryptedPrivateKeyInfo structure in this object. + + A byte array containing the encoded object. + + + + Get a decryptor from the passed in provider and decrypt the encrypted private key info, returning the result. + + A provider to query for decryptors for the object. + The decrypted private key info structure. + + + + Create the encrypted private key info using the passed in encryptor. + + The encryptor to use. + An encrypted private key info containing the original private key info. + + + + Base exception for PKCS related issues. + + + + + Base exception for parsing related issues in the PKCS namespace. + + + + Create a PrivateKeyInfo representation of a private key with attributes. + + @param privateKey the key to be encoded into the info object. + @param attributes the set of attributes to be included. + @return the appropriate PrivateKeyInfo + @throws java.io.IOException on an error encoding the key + + + + Returns the revocationDate. + + + + + Returns the certStatus. + + + + Returns an immutable Set of X.509 attribute certificate + extensions that this PkixAttrCertChecker supports or + null if no extensions are supported. +

    + Each element of the set is a String representing the + Object Identifier (OID) of the X.509 extension that is supported. +

    +

    + All X.509 attribute certificate extensions that a + PkixAttrCertChecker might possibly be able to process + should be included in the set. +

    + + @return an immutable Set of X.509 extension OIDs (in + String format) supported by this + PkixAttrCertChecker, or null if no + extensions are supported +
    + + Performs checks on the specified attribute certificate. Every handled + extension is rmeoved from the unresolvedCritExts + collection. + + @param attrCert The attribute certificate to be checked. + @param certPath The certificate path which belongs to the attribute + certificate issuer public key certificate. + @param holderCertPath The certificate path which belongs to the holder + certificate. + @param unresolvedCritExts a Collection of OID strings + representing the current set of unresolved critical extensions + @throws CertPathValidatorException if the specified attribute certificate + does not pass the check. + + + Returns a clone of this object. + + @return a copy of this PkixAttrCertChecker + + + Build and validate a CertPath using the given parameter. + + @param params PKIXBuilderParameters object containing all information to + build the CertPath + + + CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281. + + @see org.bouncycastle.x509.ExtendedPkixParameters + + + Validates an attribute certificate with the given certificate path. + +

    + params must be an instance of + ExtendedPkixParameters. +

    + The target constraints in the params must be an + X509AttrCertStoreSelector with at least the attribute + certificate criterion set. Obey that also target informations may be + necessary to correctly validate this attribute certificate. +

    + The attribute certificate issuer must be added to the trusted attribute + issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}. +

    + @param certPath The certificate path which belongs to the attribute + certificate issuer public key certificate. + @param params The PKIX parameters. + @return A PKIXCertPathValidatorResult of the result of + validating the certPath. + @throws InvalidAlgorithmParameterException if params is + inappropriate for this validator. + @throws CertPathValidatorException if the verification fails. +
    + + + Summary description for PkixBuilderParameters. + + + + Returns an instance of PkixBuilderParameters. +

    + This method can be used to get a copy from other + PKIXBuilderParameters, PKIXParameters, + and ExtendedPKIXParameters instances. +

    + + @param pkixParams The PKIX parameters to create a copy of. + @return An PkixBuilderParameters instance. +
    + + + Excluded certificates are not used for building a certification path. + + the excluded certificates. + + + + Sets the excluded certificates which are not used for building a + certification path. If the ISet is null an + empty set is assumed. + + + The given set is cloned to protect it against subsequent modifications. + + The excluded certificates to set. + + + Can alse handle ExtendedPKIXBuilderParameters and + PKIXBuilderParameters. + + @param params Parameters to set. + @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters) + + + Makes a copy of this PKIXParameters object. Changes to the + copy will not affect the original and vice versa. + + @return a copy of this PKIXParameters object + + + An immutable sequence of certificates (a certification path).
    +
    + This is an abstract class that defines the methods common to all CertPaths. + Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
    +
    + All CertPath objects have a type, a list of Certificates, and one or more + supported encodings. Because the CertPath class is immutable, a CertPath + cannot change in any externally visible way after being constructed. This + stipulation applies to all public fields and methods of this class and any + added or overridden by subclasses.
    +
    + The type is a string that identifies the type of Certificates in the + certification path. For each certificate cert in a certification path + certPath, cert.getType().equals(certPath.getType()) must be true.
    +
    + The list of Certificates is an ordered List of zero or more Certificates. + This List and all of the Certificates contained in it must be immutable.
    +
    + Each CertPath object must support one or more encodings so that the object + can be translated into a byte array for storage or transmission to other + parties. Preferably, these encodings should be well-documented standards + (such as PKCS#7). One of the encodings supported by a CertPath is considered + the default encoding. This encoding is used if no encoding is explicitly + requested (for the {@link #getEncoded()} method, for instance).
    +
    + All CertPath objects are also Serializable. CertPath objects are resolved + into an alternate {@link CertPathRep} object during serialization. This + allows a CertPath object to be serialized into an equivalent representation + regardless of its underlying implementation.
    +
    + CertPath objects can be created with a CertificateFactory or they can be + returned by other classes, such as a CertPathBuilder.
    +
    + By convention, X.509 CertPaths (consisting of X509Certificates), are ordered + starting with the target certificate and ending with a certificate issued by + the trust anchor. That is, the issuer of one certificate is the subject of + the following one. The certificate representing the + {@link TrustAnchor TrustAnchor} should not be included in the certification + path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX + CertPathValidators will detect any departure from these conventions that + cause the certification path to be invalid and throw a + CertPathValidatorException.
    +
    + Concurrent Access
    +
    + All CertPath objects must be thread-safe. That is, multiple threads may + concurrently invoke the methods defined in this class on a single CertPath + object (or more than one) with no ill effects. This is also true for the List + returned by CertPath.getCertificates.
    +
    + Requiring CertPath objects to be immutable and thread-safe allows them to be + passed around to various pieces of code without worrying about coordinating + access. Providing this thread-safety is generally not difficult, since the + CertPath and List objects in question are immutable. + + @see CertificateFactory + @see CertPathBuilder + + CertPath implementation for X.509 certificates. + +
    + + @param certs + + + Creates a CertPath of the specified type. + This constructor is protected because most users should use + a CertificateFactory to create CertPaths. + @param type the standard name of the type of Certificatesin this path + + + + Creates a CertPath of the specified type. + This constructor is protected because most users should use + a CertificateFactory to create CertPaths. + + @param type the standard name of the type of Certificatesin this path + + + + Returns an iteration of the encodings supported by this + certification path, with the default encoding + first. Attempts to modify the returned Iterator via its + remove method result in an UnsupportedOperationException. + + @return an Iterator over the names of the supported encodings (as Strings) + + + + Compares this certification path for equality with the specified object. + Two CertPaths are equal if and only if their types are equal and their + certificate Lists (and by implication the Certificates in those Lists) + are equal. A CertPath is never equal to an object that is not a CertPath.
    +
    + This algorithm is implemented by this method. If it is overridden, the + behavior specified here must be maintained. + + @param other + the object to test for equality with this certification path + + @return true if the specified object is equal to this certification path, + false otherwise + + @see Object#hashCode() Object.hashCode() +
    + + Returns the encoded form of this certification path, using + the default encoding. + + @return the encoded bytes + @exception CertificateEncodingException if an encoding error occurs + + + + Returns the encoded form of this certification path, using + the specified encoding. + + @param encoding the name of the encoding to use + @return the encoded bytes + @exception CertificateEncodingException if an encoding error + occurs or the encoding requested is not supported + + + + + Returns the list of certificates in this certification + path. + + + + Return a DERObject containing the encoded certificate. + + @param cert the X509Certificate object to be encoded + + @return the DERObject + + + + Implements the PKIX CertPathBuilding algorithm for BouncyCastle. + + @see CertPathBuilderSpi + + + Build and validate a CertPath using the given parameter. + + @param params PKIXBuilderParameters object containing all information to + build the CertPath + + + + Summary description for PkixCertPathBuilderException. + + + + + Summary description for PkixCertPathBuilderResult. + + + + * Initializes the internal state of this PKIXCertPathChecker. + *

    + * The forward flag specifies the order that certificates + * will be passed to the {@link #check check} method (forward or reverse). A + * PKIXCertPathChecker must support reverse checking + * and may support forward checking. + *

    + * + * @param forward + * the order that certificates are presented to the + * check method. If true, + * certificates are presented from target to most-trusted CA + * (forward); if false, from most-trusted CA to + * target (reverse). + * @exception CertPathValidatorException + * if this PKIXCertPathChecker is unable to + * check certificates in the specified order; it should never + * be thrown if the forward flag is false since reverse + * checking must be supported +
    + + Indicates if forward checking is supported. Forward checking refers to + the ability of the PKIXCertPathChecker to perform its + checks when certificates are presented to the check method + in the forward direction (from target to most-trusted CA). + + @return true if forward checking is supported, + false otherwise + + + * Returns an immutable Set of X.509 certificate extensions + * that this PKIXCertPathChecker supports (i.e. recognizes, + * is able to process), or null if no extensions are + * supported. + *

    + * Each element of the set is a String representing the + * Object Identifier (OID) of the X.509 extension that is supported. The OID + * is represented by a set of nonnegative integers separated by periods. + *

    + * All X.509 certificate extensions that a PKIXCertPathChecker + * might possibly be able to process should be included in the set. + *

    + * + * @return an immutable Set of X.509 extension OIDs (in + * String format) supported by this + * PKIXCertPathChecker, or null if no + * extensions are supported +
    + + Performs the check(s) on the specified certificate using its internal + state and removes any critical extensions that it processes from the + specified collection of OID strings that represent the unresolved + critical extensions. The certificates are presented in the order + specified by the init method. + + @param cert + the Certificate to be checked + @param unresolvedCritExts + a Collection of OID strings representing the + current set of unresolved critical extensions + @exception CertPathValidatorException + if the specified certificate does not pass the check + + + Returns a clone of this object. Calls the Object.clone() + method. All subclasses which maintain state must support and override + this method, if necessary. + + @return a copy of this PKIXCertPathChecker + + + The Service Provider Interface (SPI) + for the {@link CertPathValidator CertPathValidator} class. All + CertPathValidator implementations must include a class (the + SPI class) that extends this class (CertPathValidatorSpi) + and implements all of its methods. In general, instances of this class + should only be accessed through the CertPathValidator class. + For details, see the Java Cryptography Architecture.
    +
    + Concurrent Access
    +
    + Instances of this class need not be protected against concurrent + access from multiple threads. Threads that need to access a single + CertPathValidatorSpi instance concurrently should synchronize + amongst themselves and provide the necessary locking before calling the + wrapping CertPathValidator object.
    +
    + However, implementations of CertPathValidatorSpi may still + encounter concurrency issues, since multiple threads each + manipulating a different CertPathValidatorSpi instance need not + synchronize. + + CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC + 3280. + +
    + + An exception indicating one of a variety of problems encountered when + validating a certification path.
    +
    + A CertPathValidatorException provides support for wrapping + exceptions. The {@link #getCause getCause} method returns the throwable, + if any, that caused this exception to be thrown.
    +
    + A CertPathValidatorException may also include the + certification path that was being validated when the exception was thrown + and the index of the certificate in the certification path that caused the + exception to be thrown. Use the {@link #getCertPath getCertPath} and + {@link #getIndex getIndex} methods to retrieve this information.
    +
    + Concurrent Access
    +
    + Unless otherwise specified, the methods defined in this class are not + thread-safe. Multiple threads that need to access a single + object concurrently should synchronize amongst themselves and + provide the necessary locking. Multiple threads each manipulating + separate objects need not synchronize. + + @see CertPathValidator + +
    + + + Creates a PkixCertPathValidatorException with the given detail + message. A detail message is a String that describes this + particular exception. + + the detail message + + + + Creates a PkixCertPathValidatorException with the specified + detail message and cause. + + the detail message + the cause (which is saved for later retrieval by the + {@link #getCause getCause()} method). (A null + value is permitted, and indicates that the cause is + nonexistent or unknown.) + + + + Creates a PkixCertPathValidatorException with the specified + detail message, cause, certification path, and index. + + the detail message (or null if none) + the cause (or null if none) + the certification path that was in the process of being + validated when the error was encountered + the index of the certificate in the certification path that * + + + + Returns the detail message for this CertPathValidatorException. + + the detail message, or null if neither the message nor cause were specified + + + Returns the certification path that was being validated when the + exception was thrown. + + @return the CertPath that was being validated when the + exception was thrown (or null if not specified) + + + Returns the index of the certificate in the certification path that + caused the exception to be thrown. Note that the list of certificates in + a CertPath is zero based. If no index has been set, -1 is + returned. + + @return the index that has been set, or -1 if none has been set + + + + Summary description for PkixCertPathValidatorResult. + + + + + Summary description for PkixCertPathValidatorUtilities. + + + + + key usage bits + + + + + Search the given Set of TrustAnchor's for one that is the + issuer of the given X509 certificate. + + the X509 certificate + a Set of TrustAnchor's + the TrustAnchor object if found or + null if not. + + @exception + + + + Returns the issuer of an attribute certificate or certificate. + + The attribute certificate or certificate. + The issuer as X500Principal. + + + Return the next working key inheriting DSA parameters if necessary. +

    + This methods inherits DSA parameters from the indexed certificate or + previous certificates in the certificate chain to the returned + PublicKey. The list is searched upwards, meaning the end + certificate is at position 0 and previous certificates are following. +

    +

    + If the indexed certificate does not contain a DSA key this method simply + returns the public key. If the DSA key already contains DSA parameters + the key is also only returned. +

    + + @param certs The certification path. + @param index The index of the certificate which contains the public key + which should be extended with DSA parameters. + @return The public key of the certificate in list position + index extended with DSA parameters if applicable. + @throws Exception if DSA parameters cannot be inherited. +
    + + + Return a Collection of all certificates or attribute certificates found + in the X509Store's that are matching the certSelect criteriums. + + a {@link Selector} object that will be used to select + the certificates + a List containing only X509Store objects. These + are used to search for certificates. + a Collection of all found or + objects. + May be empty but never null. + + + + Add the CRL issuers from the cRLIssuer field of the distribution point or + from the certificate if not given to the issuer criterion of the + selector. +

    + The issuerPrincipals are a collection with a single + X500Principal for X509Certificates. For + {@link X509AttributeCertificate}s the issuer may contain more than one + X500Principal. +

    + + @param dp The distribution point. + @param issuerPrincipals The issuers of the certificate or attribute + certificate which contains the distribution point. + @param selector The CRL selector. + @param pkixParams The PKIX parameters containing the cert stores. + @throws Exception if an exception occurs while processing. + @throws ClassCastException if issuerPrincipals does not + contain only X500Principals. +
    + + Fetches complete CRLs according to RFC 3280. + + @param dp The distribution point for which the complete CRL + @param cert The X509Certificate or + {@link org.bouncycastle.x509.X509AttributeCertificate} for + which the CRL should be searched. + @param currentDate The date for which the delta CRLs must be valid. + @param paramsPKIX The extended PKIX parameters. + @return A Set of X509CRLs with complete + CRLs. + @throws Exception if an exception occurs while picking the CRLs + or no CRLs are found. + + + Fetches delta CRLs according to RFC 3280 section 5.2.4. + + @param currentDate The date for which the delta CRLs must be valid. + @param paramsPKIX The extended PKIX parameters. + @param completeCRL The complete CRL the delta CRL is for. + @return A Set of X509CRLs with delta CRLs. + @throws Exception if an exception occurs while picking the delta + CRLs. + + + Find the issuer certificates of a given certificate. + + @param cert + The certificate for which an issuer should be found. + @param pkixParams + @return A Collection object containing the issuer + X509Certificates. Never null. + + @exception Exception + if an error occurs. + + + + Extract the value of the given extension, if it exists. + + The extension object. + The object identifier to obtain. + Asn1Object + if the extension cannot be read. + + + + crl checking + Return a Collection of all CRLs found in the X509Store's that are + matching the crlSelect criteriums. + + a {@link X509CRLStoreSelector} object that will be used + to select the CRLs + a List containing only {@link org.bouncycastle.x509.X509Store + X509Store} objects. These are used to search for CRLs + a Collection of all found {@link X509CRL X509CRL} objects. May be + empty but never null. + + + + Returns the intersection of the permitted IP ranges in + permitted with ip. + + @param permitted A Set of permitted IP addresses with + their subnet mask as byte arrays. + @param ips The IP address with its subnet mask. + @return The Set of permitted IP ranges intersected with + ip. + + + Returns the union of the excluded IP ranges in excluded + with ip. + + @param excluded A Set of excluded IP addresses with their + subnet mask as byte arrays. + @param ip The IP address with its subnet mask. + @return The Set of excluded IP ranges unified with + ip as byte arrays. + + + Calculates the union if two IP ranges. + + @param ipWithSubmask1 The first IP address with its subnet mask. + @param ipWithSubmask2 The second IP address with its subnet mask. + @return A Set with the union of both addresses. + + + Calculates the interesction if two IP ranges. + + @param ipWithSubmask1 The first IP address with its subnet mask. + @param ipWithSubmask2 The second IP address with its subnet mask. + @return A Set with the single IP address with its subnet + mask as a byte array or an empty Set. + + + Concatenates the IP address with its subnet mask. + + @param ip The IP address. + @param subnetMask Its subnet mask. + @return The concatenated IP address with its subnet mask. + + + Splits the IP addresses and their subnet mask. + + @param ipWithSubmask1 The first IP address with the subnet mask. + @param ipWithSubmask2 The second IP address with the subnet mask. + @return An array with two elements. Each element contains the IP address + and the subnet mask in this order. + + + Based on the two IP addresses and their subnet masks the IP range is + computed for each IP address - subnet mask pair and returned as the + minimum IP address and the maximum address of the range. + + @param ip1 The first IP address. + @param subnetmask1 The subnet mask of the first IP address. + @param ip2 The second IP address. + @param subnetmask2 The subnet mask of the second IP address. + @return A array with two elements. The first/second element contains the + min and max IP address of the first/second IP address and its + subnet mask. + + + Checks if the IP address ip is constrained by + constraint. + + @param constraint The constraint. This is an IP address concatenated with + its subnetmask. + @param ip The IP address. + @return true if constrained, false + otherwise. + + + Checks if the IP ip is included in the permitted ISet + permitted. + + @param permitted A Set of permitted IP addresses with + their subnet mask as byte arrays. + @param ip The IP address. + @throws PkixNameConstraintValidatorException + if the IP is not permitted. + + + Checks if the IP ip is included in the excluded ISet + excluded. + + @param excluded A Set of excluded IP addresses with their + subnet mask as byte arrays. + @param ip The IP address. + @throws PkixNameConstraintValidatorException + if the IP is excluded. + + + The common part of email1 and email2 is + added to the union union. If email1 and + email2 have nothing in common they are added both. + + @param email1 Email address constraint 1. + @param email2 Email address constraint 2. + @param union The union. + + + The most restricting part from email1 and + email2 is added to the intersection intersect. + + @param email1 Email address constraint 1. + @param email2 Email address constraint 2. + @param intersect The intersection. + + + Checks if the given GeneralName is in the permitted ISet. + + @param name The GeneralName + @throws PkixNameConstraintValidatorException + If the name + + + Check if the given GeneralName is contained in the excluded ISet. + + @param name The GeneralName. + @throws PkixNameConstraintValidatorException + If the name is + excluded. + + + Updates the permitted ISet of these name constraints with the intersection + with the given subtree. + + @param permitted The permitted subtrees + + + Adds a subtree to the excluded ISet of these name constraints. + + @param subtree A subtree with an excluded GeneralName. + + + Returns the maximum IP address. + + @param ip1 The first IP address. + @param ip2 The second IP address. + @return The maximum IP address. + + + Returns the minimum IP address. + + @param ip1 The first IP address. + @param ip2 The second IP address. + @return The minimum IP address. + + + Compares IP address ip1 with ip2. If ip1 + is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1 + otherwise. + + @param ip1 The first IP address. + @param ip2 The second IP address. + @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise. + + + Returns the logical OR of the IP addresses ip1 and + ip2. + + @param ip1 The first IP address. + @param ip2 The second IP address. + @return The OR of ip1 and ip2. + + + Stringifies an IPv4 or v6 address with subnet mask. + + @param ip The IP with subnet mask. + @return The stringified IP address. + + + + Summary description for PkixParameters. + + + + This is the default PKIX validity model. Actually there are two variants + of this: The PKIX model and the modified PKIX model. The PKIX model + verifies that all involved certificates must have been valid at the + current time. The modified PKIX model verifies that all involved + certificates were valid at the signing time. Both are indirectly choosen + with the {@link PKIXParameters#setDate(java.util.Date)} method, so this + methods sets the Date when all certificates must have been + valid. + + + This model uses the following validity model. Each certificate must have + been valid at the moment where is was used. That means the end + certificate must have been valid at the time the signature was done. The + CA certificate which signed the end certificate must have been valid, + when the end certificate was signed. The CA (or Root CA) certificate must + have been valid, when the CA certificate was signed and so on. So the + {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when + the end certificate must have been valid.

    It is used e.g. + in the German signature law. + + + Creates an instance of PKIXParameters with the specified Set of + most-trusted CAs. Each element of the set is a TrustAnchor.
    +
    + Note that the Set is copied to protect against subsequent modifications. + + @param trustAnchors + a Set of TrustAnchors + + @exception InvalidAlgorithmParameterException + if the specified Set is empty + (trustAnchors.isEmpty() == true) + @exception NullPointerException + if the specified Set is null + @exception ClassCastException + if any of the elements in the Set are not of type + java.security.cert.TrustAnchor +
    + + Returns the required constraints on the target certificate. The + constraints are returned as an instance of CertSelector. If + null, no constraints are defined.
    +
    + Note that the CertSelector returned is cloned to protect against + subsequent modifications. + + @return a CertSelector specifying the constraints on the target + certificate (or null) + + @see #setTargetCertConstraints(CertSelector) +
    + + Sets the required constraints on the target certificate. The constraints + are specified as an instance of CertSelector. If null, no constraints are + defined.
    +
    + Note that the CertSelector specified is cloned to protect against + subsequent modifications. + + @param selector + a CertSelector specifying the constraints on the target + certificate (or null) + + @see #getTargetCertConstraints() +
    + + Returns an immutable Set of initial policy identifiers (OID strings), + indicating that any one of these policies would be acceptable to the + certificate user for the purposes of certification path processing. The + default return value is an empty Set, which is + interpreted as meaning that any policy would be acceptable. + + @return an immutable Set of initial policy OIDs in String + format, or an empty Set (implying any policy is + acceptable). Never returns null. + + @see #setInitialPolicies(java.util.Set) + + + Sets the Set of initial policy identifiers (OID strings), + indicating that any one of these policies would be acceptable to the + certificate user for the purposes of certification path processing. By + default, any policy is acceptable (i.e. all policies), so a user that + wants to allow any policy as acceptable does not need to call this + method, or can call it with an empty Set (or + null).
    +
    + Note that the Set is copied to protect against subsequent modifications.
    +
    + + @param initialPolicies + a Set of initial policy OIDs in String format (or + null) + + @exception ClassCastException + if any of the elements in the set are not of type String + + @see #getInitialPolicies() +
    + + Sets a List of additional certification path checkers. If + the specified List contains an object that is not a PKIXCertPathChecker, + it is ignored.
    +
    + Each PKIXCertPathChecker specified implements additional + checks on a certificate. Typically, these are checks to process and + verify private extensions contained in certificates. Each + PKIXCertPathChecker should be instantiated with any + initialization parameters needed to execute the check.
    +
    + This method allows sophisticated applications to extend a PKIX + CertPathValidator or CertPathBuilder. Each + of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX + CertPathValidator or CertPathBuilder for + each certificate processed or validated.
    +
    + Regardless of whether these additional PKIXCertPathCheckers are set, a + PKIX CertPathValidator or CertPathBuilder + must perform all of the required PKIX checks on each certificate. The one + exception to this rule is if the RevocationEnabled flag is set to false + (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled} + method).
    +
    + Note that the List supplied here is copied and each PKIXCertPathChecker + in the list is cloned to protect against subsequent modifications. + + @param checkers + a List of PKIXCertPathCheckers. May be null, in which case no + additional checkers will be used. + @exception ClassCastException + if any of the elements in the list are not of type + java.security.cert.PKIXCertPathChecker + @see #getCertPathCheckers() +
    + + Returns the List of certification path checkers. Each PKIXCertPathChecker + in the returned IList is cloned to protect against subsequent modifications. + + @return an immutable List of PKIXCertPathCheckers (may be empty, but not + null) + + @see #setCertPathCheckers(java.util.List) + + + Adds a PKIXCertPathChecker to the list of certification + path checkers. See the {@link #setCertPathCheckers setCertPathCheckers} + method for more details. +

    + Note that the PKIXCertPathChecker is cloned to protect + against subsequent modifications.

    + + @param checker a PKIXCertPathChecker to add to the list of + checks. If null, the checker is ignored (not added to list). +
    + + Method to support Clone() under J2ME. + super.Clone() does not exist and fields are not copied. + + @param params Parameters to set. If this are + ExtendedPkixParameters they are copied to. + + + Whether delta CRLs should be used for checking the revocation status. + Defaults to false. + + + The validity model. + @see #CHAIN_VALIDITY_MODEL + @see #PKIX_VALIDITY_MODEL + + + Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute + certificates or cross certificates. +

    + The IList is cloned. +

    + + @param stores A list of stores to use. + @see #getStores + @throws ClassCastException if an element of stores is not + a {@link Store}. +
    + + Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute + certificates or cross certificates. +

    + This method should be used to add local stores, like collection based + X.509 stores, if available. Local stores should be considered first, + before trying to use additional (remote) locations, because they do not + need possible additional network traffic. +

    + If store is null it is ignored. +

    + + @param store The store to add. + @see #getStores +
    + + Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates, + attribute certificates or cross certificates. +

    + You should not use this method. This method is used for adding additional + X.509 stores, which are used to add (remote) locations, e.g. LDAP, found + during X.509 object processing, e.g. in certificates or CRLs. This method + is used in PKIX certification path processing. +

    + If store is null it is ignored. +

    + + @param store The store to add. + @see #getStores() +
    + + Returns an IList of additional Bouncy Castle + Stores used for finding CRLs, certificates, attribute + certificates or cross certificates. + + @return an immutable IList of additional Bouncy Castle + Stores. Never null. + + @see #addAddionalStore(Store) + + + Returns an IList of Bouncy Castle + Stores used for finding CRLs, certificates, attribute + certificates or cross certificates. + + @return an immutable IList of Bouncy Castle + Stores. Never null. + + @see #setStores(IList) + + + Returns if additional {@link X509Store}s for locations like LDAP found + in certificates or CRLs should be used. + + @return Returns true if additional stores are used. + + + Sets if additional {@link X509Store}s for locations like LDAP found in + certificates or CRLs should be used. + + @param enabled true if additional stores are used. + + + Returns the required constraints on the target certificate or attribute + certificate. The constraints are returned as an instance of + IX509Selector. If null, no constraints are + defined. + +

    + The target certificate in a PKIX path may be a certificate or an + attribute certificate. +

    + Note that the IX509Selector returned is cloned to protect + against subsequent modifications. +

    + @return a IX509Selector specifying the constraints on the + target certificate or attribute certificate (or null) + @see #setTargetConstraints + @see X509CertStoreSelector + @see X509AttributeCertStoreSelector +
    + + Sets the required constraints on the target certificate or attribute + certificate. The constraints are specified as an instance of + IX509Selector. If null, no constraints are + defined. +

    + The target certificate in a PKIX path may be a certificate or an + attribute certificate. +

    + Note that the IX509Selector specified is cloned to protect + against subsequent modifications. +

    + + @param selector a IX509Selector specifying the constraints on + the target certificate or attribute certificate (or + null) + @see #getTargetConstraints + @see X509CertStoreSelector + @see X509AttributeCertStoreSelector +
    + + Returns the trusted attribute certificate issuers. If attribute + certificates is verified the trusted AC issuers must be set. +

    + The returned ISet consists of TrustAnchors. +

    + The returned ISet is immutable. Never null +

    + + @return Returns an immutable set of the trusted AC issuers. +
    + + Sets the trusted attribute certificate issuers. If attribute certificates + is verified the trusted AC issuers must be set. +

    + The trustedACIssuers must be a ISet of + TrustAnchor +

    + The given set is cloned. +

    + + @param trustedACIssuers The trusted AC issuers to set. Is never + null. + @throws ClassCastException if an element of stores is not + a TrustAnchor. +
    + + Returns the necessary attributes which must be contained in an attribute + certificate. +

    + The returned ISet is immutable and contains + Strings with the OIDs. +

    + + @return Returns the necessary AC attributes. +
    + + Sets the necessary which must be contained in an attribute certificate. +

    + The ISet must contain Strings with the + OIDs. +

    + The set is cloned. +

    + + @param necessaryACAttributes The necessary AC attributes to set. + @throws ClassCastException if an element of + necessaryACAttributes is not a + String. +
    + + Returns the attribute certificates which are not allowed. +

    + The returned ISet is immutable and contains + Strings with the OIDs. +

    + + @return Returns the prohibited AC attributes. Is never null. +
    + + Sets the attribute certificates which are not allowed. +

    + The ISet must contain Strings with the + OIDs. +

    + The set is cloned. +

    + + @param prohibitedACAttributes The prohibited AC attributes to set. + @throws ClassCastException if an element of + prohibitedACAttributes is not a + String. +
    + + Returns the attribute certificate checker. The returned set contains + {@link PKIXAttrCertChecker}s and is immutable. + + @return Returns the attribute certificate checker. Is never + null. + + + Sets the attribute certificate checkers. +

    + All elements in the ISet must a {@link PKIXAttrCertChecker}. +

    +

    + The given set is cloned. +

    + + @param attrCertCheckers The attribute certificate checkers to set. Is + never null. + @throws ClassCastException if an element of attrCertCheckers + is not a PKIXAttrCertChecker. +
    + + + Summary description for PkixPolicyNode. + + + + Constructors + + + + This class helps to handle CRL revocation reasons mask. Each CRL handles a + certain set of revocation reasons. + + + + + Constructs are reason mask with the reasons. + + The reasons. + + + + A reason mask with no reason. + + + + + A mask with all revocation reasons. + + + + Adds all reasons from the reasons mask to this mask. + + @param mask The reasons mask to add. + + + + Returns true if this reasons mask contains all possible + reasons. + + true if this reasons mask contains all possible reasons. + + + + + Intersects this mask with the given reasons mask. + + mask The mask to intersect with. + The intersection of this and teh given mask. + + + + Returns true if the passed reasons mask has new reasons. + + The reasons mask which should be tested for new reasons. + true if the passed reasons mask has new reasons. + + + + Returns the reasons in this mask. + + + + If the complete CRL includes an issuing distribution point (IDP) CRL + extension check the following: +

    + (i) If the distribution point name is present in the IDP CRL extension + and the distribution field is present in the DP, then verify that one of + the names in the IDP matches one of the names in the DP. If the + distribution point name is present in the IDP CRL extension and the + distribution field is omitted from the DP, then verify that one of the + names in the IDP matches one of the names in the cRLIssuer field of the + DP. +

    +

    + (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL + extension, verify that the certificate does not include the basic + constraints extension with the cA boolean asserted. +

    +

    + (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL + extension, verify that the certificate includes the basic constraints + extension with the cA boolean asserted. +

    +

    + (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted. +

    + + @param dp The distribution point. + @param cert The certificate. + @param crl The CRL. + @throws AnnotatedException if one of the conditions is not met or an error occurs. +
    + + If the DP includes cRLIssuer, then verify that the issuer field in the + complete CRL matches cRLIssuer in the DP and that the complete CRL + contains an + g distribution point extension with the indirectCRL + boolean asserted. Otherwise, verify that the CRL issuer matches the + certificate issuer. + + @param dp The distribution point. + @param cert The certificate ot attribute certificate. + @param crl The CRL for cert. + @throws AnnotatedException if one of the above conditions does not apply or an error + occurs. + + + Obtain and validate the certification path for the complete CRL issuer. + If a key usage extension is present in the CRL issuer's certificate, + verify that the cRLSign bit is set. + + @param crl CRL which contains revocation information for the certificate + cert. + @param cert The attribute certificate or certificate to check if it is + revoked. + @param defaultCRLSignCert The issuer certificate of the certificate cert. + @param defaultCRLSignKey The public key of the issuer certificate + defaultCRLSignCert. + @param paramsPKIX paramsPKIX PKIX parameters. + @param certPathCerts The certificates on the certification path. + @return A Set with all keys of possible CRL issuer + certificates. + @throws AnnotatedException if the CRL is not valid or the status cannot be checked or + some error occurs. + + + Checks a distribution point for revocation information for the + certificate cert. + + @param dp The distribution point to consider. + @param paramsPKIX PKIX parameters. + @param cert Certificate to check if it is revoked. + @param validDate The date when the certificate revocation status should be + checked. + @param defaultCRLSignCert The issuer certificate of the certificate cert. + @param defaultCRLSignKey The public key of the issuer certificate + defaultCRLSignCert. + @param certStatus The current certificate revocation status. + @param reasonMask The reasons mask which is already checked. + @param certPathCerts The certificates of the certification path. + @throws AnnotatedException if the certificate is revoked or the status cannot be checked + or some error occurs. + + + Checks a certificate if it is revoked. + + @param paramsPKIX PKIX parameters. + @param cert Certificate to check if it is revoked. + @param validDate The date when the certificate revocation status should be + checked. + @param sign The issuer certificate of the certificate cert. + @param workingPublicKey The public key of the issuer certificate sign. + @param certPathCerts The certificates of the certification path. + @throws AnnotatedException if the certificate is revoked or the status cannot be checked + or some error occurs. + + + If use-deltas is set, verify the issuer and scope of the delta CRL. + + @param deltaCRL The delta CRL. + @param completeCRL The complete CRL. + @param pkixParams The PKIX paramaters. + @throws AnnotatedException if an exception occurs. + + + Checks if an attribute certificate is revoked. + + @param attrCert Attribute certificate to check if it is revoked. + @param paramsPKIX PKIX parameters. + @param issuerCert The issuer certificate of the attribute certificate + attrCert. + @param validDate The date when the certificate revocation status should + be checked. + @param certPathCerts The certificates of the certification path to be + checked. + + @throws CertPathValidatorException if the certificate is revoked or the + status cannot be checked or some error occurs. + + + Searches for a holder public key certificate and verifies its + certification path. + + @param attrCert the attribute certificate. + @param pkixParams The PKIX parameters. + @return The certificate path of the holder certificate. + @throws Exception if +
      +
    • no public key certificate can be found although holder + information is given by an entity name or a base certificate + ID
    • +
    • support classes cannot be created
    • +
    • no certification path for the public key certificate can + be built
    • +
    +
    + + + Checks a distribution point for revocation information for the + certificate attrCert. + + @param dp The distribution point to consider. + @param attrCert The attribute certificate which should be checked. + @param paramsPKIX PKIX parameters. + @param validDate The date when the certificate revocation status should + be checked. + @param issuerCert Certificate to check if it is revoked. + @param reasonMask The reasons mask which is already checked. + @param certPathCerts The certificates of the certification path to be + checked. + @throws Exception if the certificate is revoked or the status + cannot be checked or some error occurs. + + + + A trust anchor or most-trusted Certification Authority (CA). + + This class represents a "most-trusted CA", which is used as a trust anchor + for validating X.509 certification paths. A most-trusted CA includes the + public key of the CA, the CA's name, and any constraints upon the set of + paths which may be validated using this key. These parameters can be + specified in the form of a trusted X509Certificate or as individual + parameters. + + + + + Creates an instance of TrustAnchor with the specified X509Certificate and + optional name constraints, which are intended to be used as additional + constraints when validating an X.509 certification path. + The name constraints are specified as a byte array. This byte array + should contain the DER encoded form of the name constraints, as they + would appear in the NameConstraints structure defined in RFC 2459 and + X.509. The ASN.1 definition of this structure appears below. + +
    +            	NameConstraints ::= SEQUENCE {
    +            		permittedSubtrees       [0]     GeneralSubtrees OPTIONAL,
    +            		excludedSubtrees        [1]     GeneralSubtrees OPTIONAL }
    +            	   
    +             GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
    +             
    +            		GeneralSubtree ::= SEQUENCE {
    +            		base                    GeneralName,
    +            		minimum         [0]     BaseDistance DEFAULT 0,
    +            		maximum         [1]     BaseDistance OPTIONAL }
    +            		
    +            		BaseDistance ::= INTEGER (0..MAX)
    +            
    +            		GeneralName ::= CHOICE {
    +            		otherName                       [0]     OtherName,
    +            		rfc822Name                      [1]     IA5String,
    +            		dNSName                         [2]     IA5String,
    +            		x400Address                     [3]     ORAddress,
    +            		directoryName                   [4]     Name,
    +            		ediPartyName                    [5]     EDIPartyName,
    +            		uniformResourceIdentifier       [6]     IA5String,
    +            		iPAddress                       [7]     OCTET STRING,
    +            		registeredID                    [8]     OBJECT IDENTIFIER}
    +            	
    + + Note that the name constraints byte array supplied is cloned to protect + against subsequent modifications. +
    + a trusted X509Certificate + a byte array containing the ASN.1 DER encoding of a + NameConstraints extension to be used for checking name + constraints. Only the value of the extension is included, not + the OID or criticality flag. Specify null to omit the + parameter. + if the specified X509Certificate is null +
    + + + Creates an instance of TrustAnchor where the + most-trusted CA is specified as an X500Principal and public key. + + +

    + Name constraints are an optional parameter, and are intended to be used + as additional constraints when validating an X.509 certification path. +

    + The name constraints are specified as a byte array. This byte array + contains the DER encoded form of the name constraints, as they + would appear in the NameConstraints structure defined in RFC 2459 + and X.509. The ASN.1 notation for this structure is supplied in the + documentation for the other constructors. +

    + Note that the name constraints byte array supplied here is cloned to + protect against subsequent modifications. +

    +
    + the name of the most-trusted CA as X509Name + the public key of the most-trusted CA + + a byte array containing the ASN.1 DER encoding of a NameConstraints extension to + be used for checking name constraints. Only the value of the extension is included, + not the OID or criticality flag. Specify null to omit the parameter. + + + if caPrincipal or pubKey is null + +
    + + + Creates an instance of TrustAnchor where the most-trusted + CA is specified as a distinguished name and public key. Name constraints + are an optional parameter, and are intended to be used as additional + constraints when validating an X.509 certification path. +
    + The name constraints are specified as a byte array. This byte array + contains the DER encoded form of the name constraints, as they would + appear in the NameConstraints structure defined in RFC 2459 and X.509. +
    + the X.500 distinguished name of the most-trusted CA in RFC + 2253 string format + the public key of the most-trusted CA + a byte array containing the ASN.1 DER encoding of a + NameConstraints extension to be used for checking name + constraints. Only the value of the extension is included, not + the OID or criticality flag. Specify null to omit the + parameter. + throws NullPointerException, IllegalArgumentException +
    + + + Returns the most-trusted CA certificate. + + + + + Returns the name of the most-trusted CA as an X509Name. + + + + + Returns the name of the most-trusted CA in RFC 2253 string format. + + + + + Returns the public key of the most-trusted CA. + + + + + Decode the name constraints and clone them if not null. + + + + + Returns a formatted string describing the TrustAnchor. + + a formatted string describing the TrustAnchor + + + Base class for an RFC 3161 Time Stamp Request. + + + Create a TimeStampRequest from the past in byte array. + + @param req byte array containing the request. + @throws IOException if the request is malformed. + + + Create a TimeStampRequest from the past in input stream. + + @param in input stream containing the request. + @throws IOException if the request is malformed. + + + Validate the timestamp request, checking the digest to see if it is of an + accepted type and whether it is of the correct length for the algorithm specified. + + @param algorithms a set of string OIDS giving accepted algorithms. + @param policies if non-null a set of policies we are willing to sign under. + @param extensions if non-null a set of extensions we are willing to accept. + @throws TspException if the request is invalid, or processing fails. + + + return the ASN.1 encoded representation of this object. + + + Generator for RFC 3161 Time Stamp Request objects. + + + add a given extension field for the standard extensions tag (tag 3) + @throws IOException + + + add a given extension field for the standard extensions tag + The value parameter becomes the contents of the octet string associated + with the extension. + + + add a given extension field for the standard extensions tag (tag 3) + @throws IOException + + + add a given extension field for the standard extensions tag + The value parameter becomes the contents of the octet string associated + with the extension. + + + Base class for an RFC 3161 Time Stamp Response object. + + + Create a TimeStampResponse from a byte array containing an ASN.1 encoding. + + @param resp the byte array containing the encoded response. + @throws TspException if the response is malformed. + @throws IOException if the byte array doesn't represent an ASN.1 encoding. + + + Create a TimeStampResponse from an input stream containing an ASN.1 encoding. + + @param input the input stream containing the encoded response. + @throws TspException if the response is malformed. + @throws IOException if the stream doesn't represent an ASN.1 encoding. + + + Check this response against to see if it a well formed response for + the passed in request. Validation will include checking the time stamp + token if the response status is GRANTED or GRANTED_WITH_MODS. + + @param request the request to be checked against + @throws TspException if the request can not match this response. + + + return the ASN.1 encoded representation of this object. + + + Generator for RFC 3161 Time Stamp Responses. + + + Return an appropriate TimeStampResponse. +

    + If genTime is null a timeNotAvailable error response will be returned. + + @param request the request this response is for. + @param serialNumber serial number for the response token. + @param genTime generation time for the response token. + @param provider provider to use for signature calculation. + @return + @throws NoSuchAlgorithmException + @throws NoSuchProviderException + @throws TSPException +

    +
    + + Generate a TimeStampResponse with chosen status and FailInfoField. + + @param status the PKIStatus to set. + @param failInfoField the FailInfoField to set. + @param statusString an optional string describing the failure. + @return a TimeStampResponse with a failInfoField and optional statusString + @throws TSPException in case the response could not be created + + + Validate the time stamp token. +

    + To be valid the token must be signed by the passed in certificate and + the certificate must be the one referred to by the SigningCertificate + attribute included in the hashed attributes of the token. The + certificate must also have the ExtendedKeyUsageExtension with only + KeyPurposeID.IdKPTimeStamping and have been valid at the time the + timestamp was created. +

    +

    + A successful call to validate means all the above are true. +

    +
    + + Return the underlying CmsSignedData object. + + @return the underlying CMS structure. + + + Return a ASN.1 encoded byte stream representing the encoded object. + + @throws IOException if encoding fails. + + + return the ASN.1 encoded representation of this object using the specified encoding. + + @param encoding the ASN.1 encoding format to use ("BER" or "DER"). + + + basic creation - only the default attributes will be included here. + + + create with a signer with extra signed/unsigned attributes. + + + @return the nonce value, null if there isn't one. + + + Recognised hash algorithms for the time stamp protocol. + + + Fetches the signature time-stamp attributes from a SignerInformation object. + Checks that the MessageImprint for each time-stamp matches the signature field. + (see RFC 3161 Appendix A). + + @param signerInfo a SignerInformation to search for time-stamps + @return a collection of TimeStampToken objects + @throws TSPValidationException + + + Validate the passed in certificate as being of the correct type to be used + for time stamping. To be valid it must have an ExtendedKeyUsage extension + which has a key purpose identifier of id-kp-timeStamping. + + @param cert the certificate of interest. + @throws TspValidationException if the certicate fails on one of the check points. + + + + Return the digest algorithm using one of the standard JCA string + representations rather than the algorithm identifier (if possible). + + + + Exception thrown if a TSP request or response fails to validate. +

    + If a failure code is associated with the exception it can be retrieved using + the getFailureCode() method.

    +
    + + Return the failure code associated with this exception - if one is set. + + @return the failure code if set, -1 otherwise. + + + General array utilities. + + + + Are two arrays equal. + + Left side. + Right side. + True if equal. + + + + A constant time equals comparison - does not terminate early if + test will fail. + + first array + second array + true if arrays equal, false otherwise. + + + Make a copy of a range of bytes from the passed in data array. The range can + extend beyond the end of the input array, in which case the return array will + be padded with zeroes. + + @param data the array from which the data is to be copied. + @param from the start index at which the copying should take place. + @param to the final index of the range (exclusive). + + @return a new byte array containing the range given. + + + BigInteger utilities. + + + Return the passed in value as an unsigned byte array. + + @param value the value to be converted. + @return a byte array without a leading zero byte if present in the signed encoding. + + + Return the passed in value as an unsigned byte array of the specified length, padded with + leading zeros as necessary. + @param length the fixed length of the result. + @param n the value to be converted. + @return a byte array padded to a fixed length with leading zeros. + + + Write the passed in value as unsigned bytes to the specified buffer range, padded with + leading zeros as necessary. + + @param value + the value to be converted. + @param buf + the buffer to which the value is written. + @param off + the start offset in array buf at which the data is written. + @param len + the fixed length of data written (possibly padded with leading zeros). + + + + Creates a Random BigInteger from the secure random of a given bit length. + + + + + + + Return a random BigInteger not less than 'min' and not greater than 'max' + + @param min the least value that may be generated + @param max the greatest value that may be generated + @param random the source of randomness + @return a random BigInteger value in the range [min,max] + + + + Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value. + + A UTC DateTime value not before epoch. + Number of whole milliseconds after epoch. + 'dateTime' is before epoch. + + + + Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC). + + Number of milliseconds since the epoch. + A UTC DateTime value + + + + Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC). + + + + encode the input data producing a base 64 encoded byte array. + + @return a byte array containing the base 64 encoded data. + + + encode the input data producing a base 64 encoded byte array. + + @return a byte array containing the base 64 encoded data. + + + Encode the byte data to base 64 writing it to the given output stream. + + @return the number of bytes produced. + + + Encode the byte data to base 64 writing it to the given output stream. + + @return the number of bytes produced. + + + decode the base 64 encoded input data. It is assumed the input data is valid. + + @return a byte array representing the decoded data. + + + decode the base 64 encoded string data - whitespace will be ignored. + + @return a byte array representing the decoded data. + + + decode the base 64 encoded string data writing it to the given output stream, + whitespace characters will be ignored. + + @return the number of bytes produced. + + + encode the input data producing a base 64 output stream. + + @return the number of bytes produced. + + + decode the base 64 encoded byte data writing it to the given output stream, + whitespace characters will be ignored. + + @return the number of bytes produced. + + + decode the base 64 encoded string data writing it to the given output stream, + whitespace characters will be ignored. + + @return the number of bytes produced. + + + + A buffering class to allow translation from one format to another to + be done in discrete chunks. + + + + + Create a buffered Decoder. + + The translater to use. + The size of the buffer. + + + + Process one byte of data. + + Data in. + Byte array for the output. + The offset in the output byte array to start writing from. + The amount of output bytes. + + + + Process data from a byte array. + + The input data. + Start position within input data array. + Amount of data to process from input data array. + Array to store output. + Position in output array to start writing from. + The amount of output bytes. + + + + A class that allows encoding of data using a specific encoder to be processed in chunks. + + + + + Create. + + The translator to use. + Size of the chunks. + + + + Process one byte of data. + + The byte. + An array to store output in. + Offset within output array to start writing from. + + + + + Process data from a byte array. + + Input data Byte array containing data to be processed. + Start position within input data array. + Amount of input data to be processed. + Output data array. + Offset within output data array to start writing to. + The amount of data written. + + + + Class to decode and encode Hex. + + + + encode the input data producing a Hex encoded byte array. + + @return a byte array containing the Hex encoded data. + + + encode the input data producing a Hex encoded byte array. + + @return a byte array containing the Hex encoded data. + + + Hex encode the byte data writing it to the given output stream. + + @return the number of bytes produced. + + + Hex encode the byte data writing it to the given output stream. + + @return the number of bytes produced. + + + decode the Hex encoded input data. It is assumed the input data is valid. + + @return a byte array representing the decoded data. + + + decode the Hex encoded string data - whitespace will be ignored. + + @return a byte array representing the decoded data. + + + decode the Hex encoded string data writing it to the given output stream, + whitespace characters will be ignored. + + @return the number of bytes produced. + + + Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be + considered an error. + + @return a byte array representing the decoded data. + + + Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be + considered an error. + + @return a byte array representing the decoded data. + + + encode the input data producing a Hex output stream. + + @return the number of bytes produced. + + + decode the Hex encoded byte data writing it to the given output stream, + whitespace characters will be ignored. + + @return the number of bytes produced. + + + decode the Hex encoded string data writing it to the given output stream, + whitespace characters will be ignored. + + @return the number of bytes produced. + + + + A hex translator. + + + + + Return encoded block size. + + 2 + + + + Encode some data. + + Input data array. + Start position within input data array. + The amount of data to process. + The output data array. + The offset within the output data array to start writing from. + Amount of data encoded. + + + + Returns the decoded block size. + + 1 + + + + Decode data from a byte array. + + The input data array. + Start position within input data array. + The amounty of data to process. + The output data array. + The position within the output data array to start writing from. + The amount of data written. + + + Encode and decode byte arrays (typically from binary to 7-bit ASCII + encodings). + + + + Translator interface. + + + + Convert binary data to and from UrlBase64 encoding. This is identical to + Base64 encoding, except that the padding character is "." and the other + non-alphanumeric characters are "-" and "_" instead of "+" and "/". +

    + The purpose of UrlBase64 encoding is to provide a compact encoding of binary + data that is safe for use as an URL parameter. Base64 encoding does not + produce encoded values that are safe for use in URLs, since "/" can be + interpreted as a path delimiter; "+" is the encoded form of a space; and + "=" is used to separate a name from the corresponding value in an URL + parameter. +

    +
    + + Encode the input data producing a URL safe base 64 encoded byte array. + + @return a byte array containing the URL safe base 64 encoded data. + + + Encode the byte data writing it to the given output stream. + + @return the number of bytes produced. + + + Decode the URL safe base 64 encoded input data - white space will be ignored. + + @return a byte array representing the decoded data. + + + decode the URL safe base 64 encoded byte data writing it to the given output stream, + whitespace characters will be ignored. + + @return the number of bytes produced. + + + decode the URL safe base 64 encoded string data - whitespace will be ignored. + + @return a byte array representing the decoded data. + + + Decode the URL safe base 64 encoded string data writing it to the given output stream, + whitespace characters will be ignored. + + @return the number of bytes produced. + + + Convert binary data to and from UrlBase64 encoding. This is identical to + Base64 encoding, except that the padding character is "." and the other + non-alphanumeric characters are "-" and "_" instead of "+" and "/". +

    + The purpose of UrlBase64 encoding is to provide a compact encoding of binary + data that is safe for use as an URL parameter. Base64 encoding does not + produce encoded values that are safe for use in URLs, since "/" can be + interpreted as a path delimiter; "+" is the encoded form of a space; and + "=" is used to separate a name from the corresponding value in an URL + parameter. +

    +
    + + + Produce a copy of this object with its configuration and in its current state. + + + The returned object may be used simply to store the state, or may be used as a similar object + starting from the copied state. + + + + + Restore a copied object state into this object. + + + Implementations of this method should try to avoid or minimise memory allocation to perform the reset. + + an object originally {@link #copy() copied} from an object of the same type as this instance. + if the provided object is not of the correct type. + if the other parameter is in some other way invalid. + + + + A + + + + + + A + + + A + + + + + + A + + + + + A generic PEM writer, based on RFC 1421 + + + Base constructor. + + @param out output stream to use. + + + Return the number of bytes or characters required to contain the + passed in object if it is PEM encoded. + + @param obj pem object to be output + @return an estimate of the number of bytes + + + + Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater + than limit bytes in inStr. + + + A + + + A + + + A + + The number of bytes actually transferred, if not greater than limit + + + + + + + + + + Exception to be thrown on a failure to reset an object implementing Memoable. +

    + The exception extends InvalidCastException to enable users to have a single handling case, + only introducing specific handling of this one if required. +

    +
    + + Basic Constructor. + + @param msg message to be associated with this exception. + + + Validate the given IPv4 or IPv6 address. + + @param address the IP address as a string. + + @return true if a valid address, false otherwise + + + Validate the given IPv4 or IPv6 address and netmask. + + @param address the IP address as a string. + + @return true if a valid address with netmask, false otherwise + + + Validate the given IPv4 address. + + @param address the IP address as a string. + + @return true if a valid IPv4 address, false otherwise + + + Validate the given IPv6 address. + + @param address the IP address as a string. + + @return true if a valid IPv4 address, false otherwise + + + General string utilities. + + + + Summary description for DeflaterOutputStream. + + + + + Summary description for DeflaterOutputStream. + + + + + The Holder object. +
    +            Holder ::= SEQUENCE {
    +            	baseCertificateID   [0] IssuerSerial OPTIONAL,
    +            		-- the issuer and serial number of
    +            		-- the holder's Public Key Certificate
    +            	entityName          [1] GeneralNames OPTIONAL,
    +            		-- the name of the claimant or role
    +            	objectDigestInfo    [2] ObjectDigestInfo OPTIONAL
    +            		-- used to directly authenticate the holder,
    +            		-- for example, an executable
    +            }
    +            
    +
    +
    + + Constructs a holder for v2 attribute certificates with a hash value for + some type of object. +

    + digestedObjectType can be one of the following: +

      +
    • 0 - publicKey - A hash of the public key of the holder must be + passed.
    • +
    • 1 - publicKeyCert - A hash of the public key certificate of the + holder must be passed.
    • +
    • 2 - otherObjectDigest - A hash of some other object type must be + passed. otherObjectTypeID must not be empty.
    • +
    +

    +

    This cannot be used if a v1 attribute certificate is used.

    + + @param digestedObjectType The digest object type. + @param digestAlgorithm The algorithm identifier for the hash. + @param otherObjectTypeID The object type ID if + digestedObjectType is + otherObjectDigest. + @param objectDigest The hash value. +
    + + Returns the digest object type if an object digest info is used. +

    +

      +
    • 0 - publicKey - A hash of the public key of the holder must be + passed.
    • +
    • 1 - publicKeyCert - A hash of the public key certificate of the + holder must be passed.
    • +
    • 2 - otherObjectDigest - A hash of some other object type must be + passed. otherObjectTypeID must not be empty.
    • +
    +

    + + @return The digest object type or -1 if no object digest info is set. +
    + + Returns the other object type ID if an object digest info is used. + + @return The other object type ID or null if no object + digest info is set. + + + Returns the hash if an object digest info is used. + + @return The hash or null if no object digest info is set. + + + Returns the digest algorithm ID if an object digest info is used. + + @return The digest algorithm ID or null if no object + digest info is set. + + + Return any principal objects inside the attribute certificate holder entity names field. + + @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set. + + + Return the principals associated with the issuer attached to this holder + + @return an array of principals, null if no BaseCertificateID is set. + + + Return the serial number associated with the issuer attached to this holder. + + @return the certificate serial number, null if no BaseCertificateID is set. + + + Carrying class for an attribute certificate issuer. + + + Set the issuer directly with the ASN.1 structure. + + @param issuer The issuer + + + Return any principal objects inside the attribute certificate issuer object. + An array of IPrincipal objects (usually X509Principal). + + + A high level authority key identifier. + + + Constructor which will take the byte[] returned from getExtensionValue() + + @param encodedValue a DER octet encoded string with the extension structure in it. + @throws IOException on parsing errors. + + + Create an AuthorityKeyIdentifier using the passed in certificate's public + key, issuer and serial number. + + @param certificate the certificate providing the information. + @throws CertificateParsingException if there is a problem processing the certificate + + + Create an AuthorityKeyIdentifier using just the hash of the + public key. + + @param pubKey the key to generate the hash from. + @throws InvalidKeyException if there is a problem using the key. + + + A high level subject key identifier. + + + Constructor which will take the byte[] returned from getExtensionValue() + + @param encodedValue a DER octet encoded string with the extension structure in it. + @throws IOException on parsing errors. + + + Interface for an X.509 Attribute Certificate. + + + The version number for the certificate. + + + The serial number for the certificate. + + + The UTC DateTime before which the certificate is not valid. + + + The UTC DateTime after which the certificate is not valid. + + + The holder of the certificate. + + + The issuer details for the certificate. + + + Return the attributes contained in the attribute block in the certificate. + An array of attributes. + + + Return the attributes with the same type as the passed in oid. + The object identifier we wish to match. + An array of matched attributes, null if there is no match. + + + Return an ASN.1 encoded byte array representing the attribute certificate. + An ASN.1 encoded byte array. + If the certificate cannot be encoded. + + + + Get all critical extension values, by oid + + IDictionary with string (OID) keys and Asn1OctetString values + + + + Get all non-critical extension values, by oid + + IDictionary with string (OID) keys and Asn1OctetString values + + + + A utility class that will extract X509Principal objects from X.509 certificates. +

    + Use this in preference to trying to recreate a principal from a string, not all + DNs are what they should be, so it's best to leave them encoded where they + can be.

    +
    +
    + + Return the issuer of the given cert as an X509Principal. + + + Return the subject of the given cert as an X509Principal. + + + Return the issuer of the given CRL as an X509Principal. + + + This class is an Selector like implementation to select + attribute certificates from a given set of criteria. + + @see org.bouncycastle.x509.X509AttributeCertificate + @see org.bouncycastle.x509.X509Store + + + + Decides if the given attribute certificate should be selected. + + The attribute certificate to be checked. + true if the object matches this selector. + + + The attribute certificate which must be matched. + If null is given, any will do. + + + The criteria for validity + If null is given any will do. + + + The holder. + If null is given any will do. + + + The issuer. + If null is given any will do. + + + The serial number. + If null is given any will do. + + + Adds a target name criterion for the attribute certificate to the target + information extension criteria. The X509AttributeCertificate + must contain at least one of the specified target names. +

    + Each attribute certificate may contain a target information extension + limiting the servers where this attribute certificate can be used. If + this extension is not present, the attribute certificate is not targeted + and may be accepted by any server. +

    + + @param name The name as a GeneralName (not null) +
    + + Adds a target name criterion for the attribute certificate to the target + information extension criteria. The X509AttributeCertificate + must contain at least one of the specified target names. +

    + Each attribute certificate may contain a target information extension + limiting the servers where this attribute certificate can be used. If + this extension is not present, the attribute certificate is not targeted + and may be accepted by any server. +

    + + @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName + @throws IOException if a parsing error occurs. +
    + + Adds a collection with target names criteria. If null is + given any will do. +

    + The collection consists of either GeneralName objects or byte[] arrays representing + DER encoded GeneralName structures. +

    + + @param names A collection of target names. + @throws IOException if a parsing error occurs. + @see #AddTargetName(byte[]) + @see #AddTargetName(GeneralName) +
    + + Gets the target names. The collection consists of Lists + made up of an Integer in the first entry and a DER encoded + byte array or a String in the second entry. +

    The returned collection is immutable.

    + + @return The collection of target names + @see #setTargetNames(Collection) +
    + + Adds a target group criterion for the attribute certificate to the target + information extension criteria. The X509AttributeCertificate + must contain at least one of the specified target groups. +

    + Each attribute certificate may contain a target information extension + limiting the servers where this attribute certificate can be used. If + this extension is not present, the attribute certificate is not targeted + and may be accepted by any server. +

    + + @param group The group as GeneralName form (not null) +
    + + Adds a target group criterion for the attribute certificate to the target + information extension criteria. The X509AttributeCertificate + must contain at least one of the specified target groups. +

    + Each attribute certificate may contain a target information extension + limiting the servers where this attribute certificate can be used. If + this extension is not present, the attribute certificate is not targeted + and may be accepted by any server. +

    + + @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName + @throws IOException if a parsing error occurs. +
    + + Adds a collection with target groups criteria. If null is + given any will do. +

    + The collection consists of GeneralName objects or byte[] + representing DER encoded GeneralNames. +

    + + @param names A collection of target groups. + @throws IOException if a parsing error occurs. + @see #AddTargetGroup(byte[]) + @see #AddTargetGroup(GeneralName) +
    + + Gets the target groups. The collection consists of Lists + made up of an Integer in the first entry and a DER encoded + byte array or a String in the second entry. +

    The returned collection is immutable.

    + + @return The collection of target groups. + @see #setTargetGroups(Collection) +
    + + + This class is an IX509Selector implementation to select + certificate pairs, which are e.g. used for cross certificates. The set of + criteria is given from two X509CertStoreSelector objects, + each of which, if present, must match the respective component of a pair. + + + + The certificate pair which is used for testing on equality. + + + The certificate selector for the forward part. + + + The certificate selector for the reverse part. + + + + Decides if the given certificate pair should be selected. If + obj is not a X509CertificatePair, this method + returns false. + + The X509CertificatePair to be tested. + true if the object matches this selector. + + + + An ISet of DerObjectIdentifier objects. + + + + A simple collection backed store. + + + Basic constructor. + + @param collection - initial contents for the store, this is copied. + + + Return the matches in the collection for the passed in selector. + + @param selector the selector to match against. + @return a possibly empty collection of matching objects. + + + This class contains a collection for collection based X509Stores. + + + + Constructor. +

    + The collection is copied. +

    +
    + The collection containing X.509 object types. + If collection is null. +
    + + Returns a copy of the ICollection. + + + Returns a formatted string describing the parameters. + + + + An ICollection of X509Name objects + + + + The attribute certificate being checked. This is not a criterion. + Rather, it is optional information that may help a {@link X509Store} find + CRLs that would be relevant when checking revocation for the specified + attribute certificate. If null is specified, then no such + optional information is provided. + + @param attrCert the IX509AttributeCertificate being checked (or + null) + @see #getAttrCertificateChecking() + + + If true only complete CRLs are returned. Defaults to + false. + + @return true if only complete CRLs are returned. + + + Returns if this selector must match CRLs with the delta CRL indicator + extension set. Defaults to false. + + @return Returns true if only CRLs with the delta CRL + indicator extension are selected. + + + The issuing distribution point. +

    + The issuing distribution point extension is a CRL extension which + identifies the scope and the distribution point of a CRL. The scope + contains among others information about revocation reasons contained in + the CRL. Delta CRLs and complete CRLs must have matching issuing + distribution points.

    +

    + The byte array is cloned to protect against subsequent modifications.

    +

    + You must also enable or disable this criteria with + {@link #setIssuingDistributionPointEnabled(bool)}.

    + + @param issuingDistributionPoint The issuing distribution point to set. + This is the DER encoded OCTET STRING extension value. + @see #getIssuingDistributionPoint() +
    + + Whether the issuing distribution point criteria should be applied. + Defaults to false. +

    + You may also set the issuing distribution point criteria if not a missing + issuing distribution point should be assumed.

    + + @return Returns if the issuing distribution point check is enabled. +
    + + The maximum base CRL number. Defaults to null. + + @return Returns the maximum base CRL number. + @see #setMaxBaseCRLNumber(BigInteger) + + + + A factory to produce Public Key Info Objects. + + + + + Create a Subject Public Key Info object for a given public key. + + One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters + A subject public key info object. + Throw exception if object provided is not one of the above. + + + + Create loading data from byte array. + + + + + + Create loading data from byte array. + + + + + Generates a certificate object and initializes it with the data + read from the input stream inStream. + + + Returns a (possibly empty) collection view of the certificates + read from the given input stream inStream. + + + Class for carrying the values in an X.509 Attribute. + + + @param at an object representing an attribute. + + + Create an X.509 Attribute with the type given by the passed in oid and + the value represented by an ASN.1 Set containing value. + + @param oid type of the attribute + @param value value object to go into the atribute's value set. + + + Create an X.59 Attribute with the type given by the passed in oid and the + value represented by an ASN.1 Set containing the objects in value. + + @param oid type of the attribute + @param value vector of values to go in the attribute's value set. + + + + An Object representing an X509 Certificate. + Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects. + + + + + Return true if the current time is within the start and end times nominated on the certificate. + + true id certificate is valid for the current time. + + + + Return true if the nominated time is within the start and end times nominated on the certificate. + + The time to test validity against. + True if certificate is valid for nominated time. + + + + Checks if the current date is within certificate's validity period. + + + + + Checks if the given date is within certificate's validity period. + + if the certificate is expired by given date + if the certificate is not yet valid on given date + + + + Return the certificate's version. + + An integer whose value Equals the version of the cerficate. + + + + Return a BigInteger containing the serial number. + + The Serial number. + + + + Get the Issuer Distinguished Name. (Who signed the certificate.) + + And X509Object containing name and value pairs. + + + + Get the subject of this certificate. + + An X509Name object containing name and value pairs. + + + + The time that this certificate is valid from. + + A DateTime object representing that time in the local time zone. + + + + The time that this certificate is valid up to. + + A DateTime object representing that time in the local time zone. + + + + Return the Der encoded TbsCertificate data. + This is the certificate component less the signature. + To Get the whole certificate call the GetEncoded() member. + + A byte array containing the Der encoded Certificate component. + + + + The signature. + + A byte array containg the signature of the certificate. + + + + A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA) + + A sting representing the signature algorithm. + + + + Get the Signature Algorithms Object ID. + + A string containg a '.' separated object id. + + + + Get the signature algorithms parameters. (EG DSA Parameters) + + A byte array containing the Der encoded version of the parameters or null if there are none. + + + + Get the issuers UID. + + A DerBitString. + + + + Get the subjects UID. + + A DerBitString. + + + + Get a key usage guidlines. + + + + + Get the public key of the subject of the certificate. + + The public key parameters. + + + + Return a Der encoded version of this certificate. + + A byte array. + + + + Verify the certificate's signature using the nominated public key. + + An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters + True if the signature is valid. + If key submitted is not of the above nominated types. + + + + Verify the certificate's signature using a verifier created using the passed in verifier provider. + + An appropriate provider for verifying the certificate's signature. + True if the signature is valid. + If verifier provider is not appropriate or the certificate algorithm is invalid. + + + + This class contains a cross certificate pair. Cross certificates pairs may + contain two cross signed certificates from two CAs. A certificate from the + other CA to this CA is contained in the forward certificate, the certificate + from this CA to the other CA is contained in the reverse certificate. + + + + Constructor + Certificate from the other CA to this CA. + Certificate from this CA to the other CA. + + + Constructor from a ASN.1 CertificatePair structure. + The CertificatePair ASN.1 object. + + + Returns the certificate from the other CA to this CA. + + + Returns the certificate from this CA to the other CA. + + + class for dealing with X509 certificates. +

    + At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----" + base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7 + objects.

    +
    + + + Create loading data from byte array. + + + + + + Create loading data from byte array. + + + + + Generates a certificate object and initializes it with the data + read from the input stream inStream. + + + Returns a (possibly empty) collection view of the certificates + read from the given input stream inStream. + + + + Create loading data from byte array. + + + + + + Create loading data from byte array. + + + + + The following extensions are listed in RFC 2459 as relevant to CRLs + + Authority Key Identifier + Issuer Alternative Name + CRL Number + Delta CRL Indicator (critical) + Issuing Distribution Point (critical) + + + + Verify the CRL's signature using a verifier created using the passed in verifier provider. + + An appropriate provider for verifying the CRL's signature. + True if the signature is valid. + If verifier provider is not appropriate or the CRL algorithm is invalid. + + + Returns a string representation of this CRL. + + @return a string representation of this CRL. + + + Checks whether the given certificate is on this CRL. + + @param cert the certificate to check for. + @return true if the given certificate is on this CRL, + false otherwise. + + + The following extensions are listed in RFC 2459 as relevant to CRL Entries + + ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer + (critical) + + + Constructor for CRLEntries of indirect CRLs. If isIndirect + is false {@link #getCertificateIssuer()} will always + return null, previousCertificateIssuer is + ignored. If this isIndirect is specified and this CrlEntry + has no certificate issuer CRL entry extension + previousCertificateIssuer is returned by + {@link #getCertificateIssuer()}. + + @param c + TbsCertificateList.CrlEntry object. + @param isIndirect + true if the corresponding CRL is a indirect + CRL. + @param previousCertificateIssuer + Certificate issuer of the previous CrlEntry. + + + + Create loading data from byte array. + + + + + + Create loading data from byte array. + + + + + Generates a certificate revocation list (CRL) object and initializes + it with the data read from the input stream inStream. + + + Returns a (possibly empty) collection view of the CRLs read from + the given input stream inStream. + + The inStream may contain a sequence of DER-encoded CRLs, or + a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the + only significant field being crls. In particular the signature + and the contents are ignored. + + + + Get non critical extensions. + + A set of non critical extension oids. + + + + Get any critical extensions. + + A sorted list of critical entension. + + + + Get the value of a given extension. + + The object ID of the extension. + An Asn1OctetString object if that extension is found or null if not. + + + A holding class for constructing an X509 Key Usage extension. + +
    +                id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 }
    +            
    +                KeyUsage ::= BIT STRING {
    +                     digitalSignature        (0),
    +                     nonRepudiation          (1),
    +                     keyEncipherment         (2),
    +                     dataEncipherment        (3),
    +                     keyAgreement            (4),
    +                     keyCertSign             (5),
    +                     cRLSign                 (6),
    +                     encipherOnly            (7),
    +                     decipherOnly            (8) }
    +             
    +
    + + Basic constructor. + + @param usage - the bitwise OR of the Key Usage flags giving the + allowed uses for the key. + e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment) + + + Return the digest algorithm using one of the standard JCA string + representations rather than the algorithm identifier (if possible). + + + + Class to Generate X509V1 Certificates. + + + + + Default Constructor. + + + + + Reset the generator. + + + + + Set the certificate's serial number. + + Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data. + You will be surprised how ugly a serial number collision can get. + The serial number. + + + + Set the issuer distinguished name. + The issuer is the entity whose private key is used to sign the certificate. + + The issuers DN. + + + + Set the date that this certificate is to be valid from. + + + + + + Set the date after which this certificate will no longer be valid. + + + + + + Set the subject distinguished name. + The subject describes the entity associated with the public key. + + + + + + Set the public key that this certificate identifies. + + + + + + Set the signature algorithm that will be used to sign this certificate. + This can be either a name or an OID, names are treated as case insensitive. + + string representation of the algorithm name + + + + Generate a new X509Certificate. + + The private key of the issuer used to sign this certificate. + An X509Certificate. + + + + Generate a new X509Certificate specifying a SecureRandom instance that you would like to use. + + The private key of the issuer used to sign this certificate. + The Secure Random you want to use. + An X509Certificate. + + + + Generate a new X509Certificate using the passed in SignatureCalculator. + + A signature calculator factory with the necessary algorithm details. + An X509Certificate. + + + + Allows enumeration of the signature names supported by the generator. + + + + An implementation of a version 2 X.509 Attribute Certificate. + + + + Verify the certificate's signature using a verifier created using the passed in verifier provider. + + An appropriate provider for verifying the certificate's signature. + True if the signature is valid. + If verifier provider is not appropriate or the certificate algorithm is invalid. + + + Class to produce an X.509 Version 2 AttributeCertificate. + + + Reset the generator + + + Set the Holder of this Attribute Certificate. + + + Set the issuer. + + + Set the serial number for the certificate. + + + + Set the signature algorithm. This can be either a name or an OID, names + are treated as case insensitive. + + The algorithm name. + + + Add an attribute. + + + Add a given extension field for the standard extensions tag. + + + + Add a given extension field for the standard extensions tag. + The value parameter becomes the contents of the octet string associated + with the extension. + + + + + Generate an X509 certificate, based on the current issuer and subject. + + + + + Generate an X509 certificate, based on the current issuer and subject, + using the supplied source of randomness, if required. + + + + + Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator. + + A signature calculator factory with the necessary algorithm details. + An IX509AttributeCertificate. + + + + Allows enumeration of the signature names supported by the generator. + + + + class to produce an X.509 Version 2 CRL. + + + reset the generator + + + Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the + certificate. + + + Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise + or 0 if CrlReason is not to be used + + + + Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension. + Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise + or 0 if CrlReason is not to be used + + + + Add a CRL entry with extensions. + + + + Add the CRLEntry objects contained in a previous CRL. + + @param other the X509Crl to source the other entries from. + + + + Set the signature algorithm that will be used to sign this CRL. + + + + + add a given extension field for the standard extensions tag (tag 0) + + + add a given extension field for the standard extensions tag (tag 0) + + + add a given extension field for the standard extensions tag (tag 0) + + + add a given extension field for the standard extensions tag (tag 0) + + + + Generate an X.509 CRL, based on the current issuer and subject. + + The private key of the issuer that is signing this certificate. + An X509Crl. + + + + Generate an X.509 CRL, based on the current issuer and subject using the specified secure random. + + The private key of the issuer that is signing this certificate. + Your Secure Random instance. + An X509Crl. + + + + Generate a new X509Crl using the passed in SignatureCalculator. + + A signature calculator factory with the necessary algorithm details. + An X509Crl. + + + + Allows enumeration of the signature names supported by the generator. + + + + + A class to Generate Version 3 X509Certificates. + + + + + Reset the Generator. + + + + + Set the certificate's serial number. + + Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data. + You will be surprised how ugly a serial number collision can Get. + The serial number. + + + + Set the distinguished name of the issuer. + The issuer is the entity which is signing the certificate. + + The issuer's DN. + + + + Set the date that this certificate is to be valid from. + + + + + + Set the date after which this certificate will no longer be valid. + + + + + + Set the DN of the entity that this certificate is about. + + + + + + Set the public key that this certificate identifies. + + + + + + Set the signature algorithm that will be used to sign this certificate. + + + + + + Set the subject unique ID - note: it is very rare that it is correct to do this. + + + + + + Set the issuer unique ID - note: it is very rare that it is correct to do this. + + + + + + Add a given extension field for the standard extensions tag (tag 3). + + string containing a dotted decimal Object Identifier. + Is it critical. + The value. + + + + Add an extension to this certificate. + + Its Object Identifier. + Is it critical. + The value. + + + + Add an extension using a string with a dotted decimal OID. + + string containing a dotted decimal Object Identifier. + Is it critical. + byte[] containing the value of this extension. + + + + Add an extension to this certificate. + + Its Object Identifier. + Is it critical. + byte[] containing the value of this extension. + + + + Add a given extension field for the standard extensions tag (tag 3), + copying the extension value from another certificate. + + + + add a given extension field for the standard extensions tag (tag 3) + copying the extension value from another certificate. + @throws CertificateParsingException if the extension cannot be extracted. + + + + Generate an X509Certificate. + + The private key of the issuer that is signing this certificate. + An X509Certificate. + + + + Generate an X509Certificate using your own SecureRandom. + + The private key of the issuer that is signing this certificate. + You Secure Random instance. + An X509Certificate. + + + + Generate a new X509Certificate using the passed in SignatureCalculator. + + A signature calculator factory with the necessary algorithm details. + An X509Certificate. + + + + Allows enumeration of the signature names supported by the generator. + + + + Base class for both the compress and decompress classes. + Holds common arrays, and static data. + + @author
    Keiron Liddle + + + An input stream that decompresses from the BZip2 format (with the file + header chars) to be read as any other stream. + + @author Keiron Liddle + + NB: note this class has been modified to read the leading BZ from the + start of the BZIP2 stream to make it compatible with other PGP programs. + + + An output stream that compresses into the BZip2 format (with the file + header chars) into another stream. + + @author Keiron Liddle + + TODO: Update to BZip2 1.0.1 + NB: note this class has been modified to add a leading BZ to the + start of the BZIP2 stream to make it compatible with other PGP programs. + + + + modified by Oliver Merkel, 010128 + + + + A simple class the hold and calculate the CRC for sanity checking + of the data. + + @author Keiron Liddle + + + + Return a salted hash based on PBKDF2 for the UTF-8 encoding of the argument text. + + Provided key text + Base64 encoded string representing the salt + + +
    +
    diff --git a/Bin/ClosedXML.dll.refresh b/Bin/ClosedXML.dll.refresh index 77ab5998d..78fbcefb8 100644 Binary files a/Bin/ClosedXML.dll.refresh and b/Bin/ClosedXML.dll.refresh differ diff --git a/Bin/DocumentFormat.OpenXml.dll.refresh b/Bin/DocumentFormat.OpenXml.dll.refresh index 5fd0dd7fd..4675428f8 100644 --- a/Bin/DocumentFormat.OpenXml.dll.refresh +++ b/Bin/DocumentFormat.OpenXml.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\DocumentFormat.OpenXml.2.7.2\lib\net46\DocumentFormat.OpenXml.dll \ No newline at end of file +..\packages\DocumentFormat.OpenXml.2.7.2\lib\net46\DocumentFormat.OpenXml.dll \ No newline at end of file diff --git a/Bin/ExcelNumberFormat.dll.refresh b/Bin/ExcelNumberFormat.dll.refresh index 0aa2b8948..0b5d0ce84 100644 Binary files a/Bin/ExcelNumberFormat.dll.refresh and b/Bin/ExcelNumberFormat.dll.refresh differ diff --git a/Bin/Microsoft.AspNet.SignalR.Core.dll.refresh b/Bin/Microsoft.AspNet.SignalR.Core.dll.refresh index a9958cd7f..cf7d47794 100644 --- a/Bin/Microsoft.AspNet.SignalR.Core.dll.refresh +++ b/Bin/Microsoft.AspNet.SignalR.Core.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.AspNet.SignalR.Core.2.4.1\lib\net45\Microsoft.AspNet.SignalR.Core.dll \ No newline at end of file +..\packages\Microsoft.AspNet.SignalR.Core.2.4.1\lib\net45\Microsoft.AspNet.SignalR.Core.dll \ No newline at end of file diff --git a/Bin/Microsoft.AspNet.SignalR.SystemWeb.dll.refresh b/Bin/Microsoft.AspNet.SignalR.SystemWeb.dll.refresh index 2f0774e9f..c347a9e72 100644 --- a/Bin/Microsoft.AspNet.SignalR.SystemWeb.dll.refresh +++ b/Bin/Microsoft.AspNet.SignalR.SystemWeb.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.AspNet.SignalR.SystemWeb.2.4.1\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll \ No newline at end of file +..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.4.1\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll \ No newline at end of file diff --git a/Bin/Microsoft.Bcl.AsyncInterfaces.dll.refresh b/Bin/Microsoft.Bcl.AsyncInterfaces.dll.refresh index 7ee9c9d22..524ccd272 100644 --- a/Bin/Microsoft.Bcl.AsyncInterfaces.dll.refresh +++ b/Bin/Microsoft.Bcl.AsyncInterfaces.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll \ No newline at end of file +..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll \ No newline at end of file diff --git a/Bin/Microsoft.Bcl.HashCode.dll.refresh b/Bin/Microsoft.Bcl.HashCode.dll.refresh index 59bf6915c..634b57d51 100644 Binary files a/Bin/Microsoft.Bcl.HashCode.dll.refresh and b/Bin/Microsoft.Bcl.HashCode.dll.refresh differ diff --git a/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll b/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll index 4d638b3df..905ef1009 100644 Binary files a/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll and b/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll differ diff --git a/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll.refresh b/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll.refresh new file mode 100644 index 000000000..c3f502635 --- /dev/null +++ b/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll \ No newline at end of file diff --git a/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml b/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml new file mode 100644 index 000000000..aa8ea7ad0 --- /dev/null +++ b/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml @@ -0,0 +1,158 @@ + + + + Microsoft.CodeDom.Providers.DotNetCompilerPlatform + + + + + Provides access to instances of the .NET Compiler Platform C# code generator and code compiler. + + + + + Default Constructor + + + + + Creates an instance using the given ICompilerSettings + + + + + + Creates an instance using the given IProviderOptions + + + + + + Gets an instance of the .NET Compiler Platform C# code compiler. + + An instance of the .NET Compiler Platform C# code compiler + + + + Provides settings for the C# and VB CodeProviders + + + + + A string representing the in-box .Net Framework compiler version to be used. + Not applicable to this Roslyn-based package which contains it's own compiler. + + + + + Returns true if the codedom provider has warnAsError set to true + + + + + Returns true if the codedom provider is requesting to use similar default + compiler options as ASP.Net does with in-box .Net Framework compilers. + These options are programatically enforced on top of parameters passed + in to the codedom provider. + + + + + Returns the entire set of options - known or not - as configured in <providerOptions> + + + + + A set of options for the C# and VB CodeProviders. + + + + + Create a default set of options for the C# and VB CodeProviders. + + + + + Create a set of options for the C# or VB CodeProviders using the specified inputs. + + + + + Create a set of options for the C# or VB CodeProviders using some specified inputs. + + + + + The full path to csc.exe or vbc.exe + + + + + TTL in seconds + + + + + Used by in-box framework code providers to determine which compat version of the compiler to use. + + + + + Treat all warnings as errors. Will override defaults and command-line options given for a compiler. + + + + + Use the set of compiler options that was traditionally added programatically for ASP.Net. + + + + + A collection of all <providerOptions> specified in config for the given CodeDomProvider. + + + + + Provides settings for the C# and VB CodeProviders + + + + + The full path to csc.exe or vbc.exe + + + + + TTL in seconds + + + + + Provides access to instances of the .NET Compiler Platform VB code generator and code compiler. + + + + + Default Constructor + + + + + Creates an instance using the given ICompilerSettings + + + + + + Creates an instance using the given ICompilerSettings + + + + + + Gets an instance of the .NET Compiler Platform VB code compiler. + + An instance of the .NET Compiler Platform VB code compiler + + + diff --git a/Bin/Microsoft.EntityFrameworkCore.Abstractions.dll.refresh b/Bin/Microsoft.EntityFrameworkCore.Abstractions.dll.refresh index 6f8e0c413..9558c5989 100644 Binary files a/Bin/Microsoft.EntityFrameworkCore.Abstractions.dll.refresh and b/Bin/Microsoft.EntityFrameworkCore.Abstractions.dll.refresh differ diff --git a/Bin/Microsoft.EntityFrameworkCore.dll.refresh b/Bin/Microsoft.EntityFrameworkCore.dll.refresh index 4c1d7daed..dfd8adade 100644 Binary files a/Bin/Microsoft.EntityFrameworkCore.dll.refresh and b/Bin/Microsoft.EntityFrameworkCore.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Caching.Abstractions.dll.refresh b/Bin/Microsoft.Extensions.Caching.Abstractions.dll.refresh index 45fd7fb69..5d1477708 100644 Binary files a/Bin/Microsoft.Extensions.Caching.Abstractions.dll.refresh and b/Bin/Microsoft.Extensions.Caching.Abstractions.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Caching.Memory.dll.refresh b/Bin/Microsoft.Extensions.Caching.Memory.dll.refresh index 2eb00ecef..93b833c21 100644 Binary files a/Bin/Microsoft.Extensions.Caching.Memory.dll.refresh and b/Bin/Microsoft.Extensions.Caching.Memory.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Configuration.Abstractions.dll.refresh b/Bin/Microsoft.Extensions.Configuration.Abstractions.dll.refresh index 9e0d5a5d2..ee156ad32 100644 Binary files a/Bin/Microsoft.Extensions.Configuration.Abstractions.dll.refresh and b/Bin/Microsoft.Extensions.Configuration.Abstractions.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Configuration.Binder.dll.refresh b/Bin/Microsoft.Extensions.Configuration.Binder.dll.refresh index 7685c4f8a..10b084e6a 100644 Binary files a/Bin/Microsoft.Extensions.Configuration.Binder.dll.refresh and b/Bin/Microsoft.Extensions.Configuration.Binder.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Configuration.dll.refresh b/Bin/Microsoft.Extensions.Configuration.dll.refresh index fc07ce8ca..b4f3176f4 100644 Binary files a/Bin/Microsoft.Extensions.Configuration.dll.refresh and b/Bin/Microsoft.Extensions.Configuration.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll index db316add4..d69b5ea1a 100644 Binary files a/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll and b/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll.refresh b/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll.refresh index fc50476ed..56770f969 100644 Binary files a/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll.refresh and b/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.xml b/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.xml index 3ad88c789..4a84b3a8a 100644 --- a/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.xml +++ b/Bin/Microsoft.Extensions.DependencyInjection.Abstractions.xml @@ -1,1054 +1,752 @@ - + - - Microsoft.Extensions.DependencyInjection.Abstractions - - - - - Extension methods for adding and removing services to an . - - - - - Adds the specified to the . - - The . - The to add. - A reference to the current instance of . - - - - Adds a sequence of to the . - - The . - The s to add. - A reference to the current instance of . - - - - Adds the specified to the if the - service type hasn't already been registered. - - The . - The to add. - - - - Adds the specified to the if the - service type hasn't already been registered. - - The . - The s to add. - - - - Adds the specified as a service - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - - - - Adds the specified as a service - with the implementation - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - The implementation type of the service. - - - - Adds the specified as a service - using the factory specified in - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - The factory that creates the service. - - - - Adds the specified as a service - to the if the service type hasn't already been registered. - - The type of the service to add. - The . - - - - Adds the specified as a service - implementation type specified in - to the if the service type hasn't already been registered. - - The type of the service to add. - The type of the implementation to use. - The . - - - - Adds the specified as a service - using the factory specified in - to the if the service type hasn't already been registered. - - The type of the service to add. - The . - The factory that creates the service. - - - - Adds the specified as a service - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - - - - Adds the specified as a service - with the implementation - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - The implementation type of the service. - - - - Adds the specified as a service - using the factory specified in - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - The factory that creates the service. - - - - Adds the specified as a service - to the if the service type hasn't already been registered. - - The type of the service to add. - The . - - - - Adds the specified as a service - implementation type specified in - to the if the service type hasn't already been registered. - - The type of the service to add. - The type of the implementation to use. - The . - - - - Adds the specified as a service - using the factory specified in - to the if the service type hasn't already been registered. - - The type of the service to add. - The . - The factory that creates the service. - - - - Adds the specified as a service - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - - - - Adds the specified as a service - with the implementation - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - The implementation type of the service. - - - - Adds the specified as a service - using the factory specified in - to the if the service type hasn't already been registered. - - The . - The type of the service to register. - The factory that creates the service. - - - - Adds the specified as a service - to the if the service type hasn't already been registered. - - The type of the service to add. - The . - - - - Adds the specified as a service - implementation type specified in - to the if the service type hasn't already been registered. - - The type of the service to add. - The type of the implementation to use. - The . - - - - Adds the specified as a service - with an instance specified in - to the if the service type hasn't already been registered. - - The type of the service to add. - The . - The instance of the service to add. - - - - Adds the specified as a service - using the factory specified in - to the if the service type hasn't already been registered. - - The type of the service to add. - The . - The factory that creates the service. - - - - Adds a if an existing descriptor with the same - and an implementation that does not already exist - in . - - The . - The . - - Use when registering a service implementation of a - service type that - supports multiple registrations of the same service type. Using - is not idempotent and can add - duplicate - instances if called twice. Using - will prevent registration - of multiple implementation types. - - - - - Adds the specified s if an existing descriptor with the same - and an implementation that does not already exist - in . - - The . - The s. - - Use when registering a service - implementation of a service type that - supports multiple registrations of the same service type. Using - is not idempotent and can add - duplicate - instances if called twice. Using - will prevent registration - of multiple implementation types. - - - - - Removes the first service in with the same service type - as and adds to the collection. - - The . - The to replace with. - The for chaining. - - - - Removes all services of type in . - - The . - The for chaining. - - - - Removes all services of type in . - - The . - The service type to remove. - The for chaining. - - - - Specifies the contract for a collection of service descriptors. - - - - - Provides an extension point for creating a container specific builder and an . - - - - - Creates a container builder from an . - - The collection of services - A container builder that can be used to create an . - - - - Creates an from the container builder. - - The container builder - An - - - - The method ends the scope lifetime. Once Dispose - is called, any scoped services that have been resolved from - will be - disposed. - - - - - The used to resolve dependencies from the scope. - - - - - A factory for creating instances of , which is used to create - services within a scope. - - - - - Create an which - contains an used to resolve dependencies from a - newly created scope. - - - An controlling the - lifetime of the scope. Once this is disposed, any scoped services that have been resolved - from the - will also be disposed. - - - - - Optional contract used by - to resolve services if supported by . - - - - - Gets service of type from the implementing - this interface. - - An object that specifies the type of service object to get. - A service object of type . - Throws an exception if the cannot create the object. - - - - Extension methods for adding services to an . - - - - - Adds a transient service of the type specified in with an - implementation of the type specified in to the - specified . - - The to add the service to. - The type of the service to register. - The implementation type of the service. - A reference to this instance after the operation has completed. - - - - - Adds a transient service of the type specified in with a - factory specified in to the - specified . - - The to add the service to. - The type of the service to register. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a transient service of the type specified in with an - implementation type specified in to the - specified . - - The type of the service to add. - The type of the implementation to use. - The to add the service to. - A reference to this instance after the operation has completed. - - - - - Adds a transient service of the type specified in to the - specified . - - The to add the service to. - The type of the service to register and the implementation to use. - A reference to this instance after the operation has completed. - - - - - Adds a transient service of the type specified in to the - specified . - - The type of the service to add. - The to add the service to. - A reference to this instance after the operation has completed. - - - - - Adds a transient service of the type specified in with a - factory specified in to the - specified . - - The type of the service to add. - The to add the service to. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a transient service of the type specified in with an - implementation type specified in using the - factory specified in to the - specified . - - The type of the service to add. - The type of the implementation to use. - The to add the service to. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a scoped service of the type specified in with an - implementation of the type specified in to the - specified . - - The to add the service to. - The type of the service to register. - The implementation type of the service. - A reference to this instance after the operation has completed. - - - - - Adds a scoped service of the type specified in with a - factory specified in to the - specified . - - The to add the service to. - The type of the service to register. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a scoped service of the type specified in with an - implementation type specified in to the - specified . - - The type of the service to add. - The type of the implementation to use. - The to add the service to. - A reference to this instance after the operation has completed. - - - - - Adds a scoped service of the type specified in to the - specified . - - The to add the service to. - The type of the service to register and the implementation to use. - A reference to this instance after the operation has completed. - - - - - Adds a scoped service of the type specified in to the - specified . - - The type of the service to add. - The to add the service to. - A reference to this instance after the operation has completed. - - - - - Adds a scoped service of the type specified in with a - factory specified in to the - specified . - - The type of the service to add. - The to add the service to. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a scoped service of the type specified in with an - implementation type specified in using the - factory specified in to the - specified . - - The type of the service to add. - The type of the implementation to use. - The to add the service to. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in with an - implementation of the type specified in to the - specified . - - The to add the service to. - The type of the service to register. - The implementation type of the service. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in with a - factory specified in to the - specified . - - The to add the service to. - The type of the service to register. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in with an - implementation type specified in to the - specified . - - The type of the service to add. - The type of the implementation to use. - The to add the service to. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in to the - specified . - - The to add the service to. - The type of the service to register and the implementation to use. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in to the - specified . - - The type of the service to add. - The to add the service to. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in with a - factory specified in to the - specified . - - The type of the service to add. - The to add the service to. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in with an - implementation type specified in using the - factory specified in to the - specified . - - The type of the service to add. - The type of the implementation to use. - The to add the service to. - The factory that creates the service. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in with an - instance specified in to the - specified . - - The to add the service to. - The type of the service to register. - The instance of the service. - A reference to this instance after the operation has completed. - - - - - Adds a singleton service of the type specified in with an - instance specified in to the - specified . - - The to add the service to. - The instance of the service. - A reference to this instance after the operation has completed. - - - - - Describes a service with its service type, implementation, and lifetime. - - - - - Initializes a new instance of with the specified . - - The of the service. - The implementing the service. - The of the service. - - - - Initializes a new instance of with the specified - as a . - - The of the service. - The instance implementing the service. - - - - Initializes a new instance of with the specified . - - The of the service. - A factory used for creating service instances. - The of the service. - - - - - - - - - - - - - - - - - - - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - The type of the implementation. - A new instance of . - - - - Creates an instance of with the specified - and - and the lifetime. - - The type of the service. - The type of the implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - , - and the lifetime. - - The type of the service. - The type of the implementation. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - The type of the implementation. - A new instance of . - - - - Creates an instance of with the specified - and - and the lifetime. - - The type of the service. - The type of the implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - , - and the lifetime. - - The type of the service. - The type of the implementation. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - The type of the implementation. - A new instance of . - - - - Creates an instance of with the specified - and - and the lifetime. - - The type of the service. - The type of the implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - , - and the lifetime. - - The type of the service. - The type of the implementation. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - A factory to create new instances of the service implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - The instance of the implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and the lifetime. - - The type of the service. - The instance of the implementation. - A new instance of . - - - - Creates an instance of with the specified - , , - and . - - The type of the service. - The type of the implementation. - The lifetime of the service. - A new instance of . - - - - Creates an instance of with the specified - , , - and . - - The type of the service. - A factory to create new instances of the service implementation. - The lifetime of the service. - A new instance of . - - - - Specifies the lifetime of a service in an . - - - - - Specifies that a single instance of the service will be created. - - - - - Specifies that a new instance of the service will be created for each scope. - - - In ASP.NET Core applications a scope is created around each server request. - - - - - Specifies that a new instance of the service will be created every time it is requested. - - - - - Extension methods for getting services from an . - - - - - Get service of type from the . - - The type of service object to get. - The to retrieve the service object from. - A service object of type or null if there is no such service. - - - - Get service of type from the . - - The to retrieve the service object from. - An object that specifies the type of service object to get. - A service object of type . - There is no service of type . - - - - Get service of type from the . - - The type of service object to get. - The to retrieve the service object from. - A service object of type . - There is no service of type . - - - - Get an enumeration of services of type from the . - - The type of service object to get. - The to retrieve the services from. - An enumeration of services of type . - - - - Get an enumeration of services of type from the . - - The to retrieve the services from. - An object that specifies the type of service object to get. - An enumeration of services of type . - - - - Creates a new that can be used to resolve scoped services. - - The to create the scope from. - A that can be used to resolve scoped services. - - - - Helper code for the various activator services. - - - - - Instantiate a type with constructor arguments provided directly and/or from an . - - The service provider used to resolve dependencies - The type to activate - Constructor arguments not provided by the . - An activated object of type instanceType - - - - Create a delegate that will instantiate a type with constructor arguments provided directly - and/or from an . - - The type to activate - - The types of objects, in order, that will be passed to the returned function as its second parameter - - - A factory that will instantiate instanceType using an + + Microsoft.Extensions.DependencyInjection.Abstractions + + + + Helper code for the various activator services. + + + Create a delegate that will instantiate a type with constructor arguments provided directly + and/or from an . + The type to activate + + The types of objects, in order, that will be passed to the returned function as its second parameter + + A factory that will instantiate instanceType using an and an argument array containing objects matching the types defined in argumentTypes - - - - - Instantiate a type with constructor arguments provided directly and/or from an . - - The type to activate - The service provider used to resolve dependencies - Constructor arguments not provided by the . - An activated object of type T - - - - Retrieve an instance of the given type from the service provider. If one is not found then instantiate it directly. - - The type of the service - The service provider used to resolve dependencies - The resolved service or created instance - - - - Retrieve an instance of the given type from the service provider. If one is not found then instantiate it directly. - - The service provider - The type of the service - The resolved service or created instance - - - - Marks the constructor to be used when activating type using . - - - - - The result of . - - The to get service arguments from. - Additional constructor arguments. - The instantiated type. - - - Multiple constructors accepting all given argument types have been found in type '{0}'. There should only be one applicable constructor. - - - Multiple constructors accepting all given argument types have been found in type '{0}'. There should only be one applicable constructor. - - - Unable to locate implementation '{0}' for service '{1}'. - - - Unable to locate implementation '{0}' for service '{1}'. - - - Unable to resolve service for type '{0}' while attempting to activate '{1}'. - - - Unable to resolve service for type '{0}' while attempting to activate '{1}'. - - - A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor. - - - A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor. - - - No service for type '{0}' has been registered. - - - No service for type '{0}' has been registered. - - - Implementation type cannot be '{0}' because it is indistinguishable from other services registered for '{1}'. - - - Implementation type cannot be '{0}' because it is indistinguishable from other services registered for '{1}'. - - - + . + + + Instantiate a type with constructor arguments provided directly and/or from an . + The service provider used to resolve dependencies + The type to activate + Constructor arguments not provided by the . + An activated object of type instanceType + + + Instantiate a type with constructor arguments provided directly and/or from an . + The service provider used to resolve dependencies + Constructor arguments not provided by the . + The type to activate + An activated object of type T + + + Retrieve an instance of the given type from the service provider. If one is not found then instantiate it directly. + The service provider + The type of the service + The resolved service or created instance + + + Retrieve an instance of the given type from the service provider. If one is not found then instantiate it directly. + The service provider used to resolve dependencies + The type of the service + The resolved service or created instance + + + Marks the constructor to be used when activating type using . + + + + Extension methods for adding and removing services to an . + + + Adds the specified to the . + The . + The to add. + A reference to the current instance of . + + + Adds a sequence of to the . + The . + The s to add. + A reference to the current instance of . + + + Removes all services of type in . + The . + The service type to remove. + The for chaining. + + + Removes all services of type in . + The . + + The for chaining. + + + Removes the first service in with the same service type + as and adds to the collection. + The . + The to replace with. + The for chaining. + + + Adds the specified to the if the + service type hasn't already been registered. + The . + The to add. + + + Adds the specified to the if the + service type hasn't already been registered. + The . + The s to add. + + + Adds a if an existing descriptor with the same + and an implementation that does not already exist in . + The . + The . + + + Adds the specified s if an existing descriptor with the same + and an implementation that does not already exist + in . + The . + The s. + + + Adds the specified as a service + to the if the service type hasn't already been registered. + The . + The type of the service to register. + + + Adds the specified as a service + using the factory specified in + to the if the service type hasn't already been registered. + The . + The type of the service to register. + The factory that creates the service. + + + Adds the specified as a service + with the implementation + to the if the service type hasn't already been registered. + The . + The type of the service to register. + The implementation type of the service. + + + Adds the specified as a service + to the if the service type hasn't already been registered. + The . + The type of the service to add. + + + Adds the specified as a service + using the factory specified in + to the if the service type hasn't already been registered. + The . + The factory that creates the service. + The type of the service to add. + + + Adds the specified as a service + implementation type specified in + to the if the service type hasn't already been registered. + The . + The type of the service to add. + The type of the implementation to use. + + + Adds the specified as a service + to the if the service type hasn't already been registered. + The . + The type of the service to register. + + + Adds the specified as a service + using the factory specified in + to the if the service type hasn't already been registered. + The . + The type of the service to register. + The factory that creates the service. + + + Adds the specified as a service + with the implementation + to the if the service type hasn't already been registered. + The . + The type of the service to register. + The implementation type of the service. + + + Adds the specified as a service + to the if the service type hasn't already been registered. + The . + The type of the service to add. + + + Adds the specified as a service + with an instance specified in + to the if the service type hasn't already been registered. + The . + The instance of the service to add. + The type of the service to add. + + + Adds the specified as a service + using the factory specified in + to the if the service type hasn't already been registered. + The . + The factory that creates the service. + The type of the service to add. + + + Adds the specified as a service + implementation type specified in + to the if the service type hasn't already been registered. + The . + The type of the service to add. + The type of the implementation to use. + + + Adds the specified as a service + to the if the service type hasn't already been registered. + The . + The type of the service to register. + + + Adds the specified as a service + using the factory specified in + to the if the service type hasn't already been registered. + The . + The type of the service to register. + The factory that creates the service. + + + Adds the specified as a service + with the implementation + to the if the service type hasn't already been registered. + The . + The type of the service to register. + The implementation type of the service. + + + Adds the specified as a service + to the if the service type hasn't already been registered. + The . + The type of the service to add. + + + Adds the specified as a service + using the factory specified in + to the if the service type hasn't already been registered. + The . + The factory that creates the service. + The type of the service to add. + + + Adds the specified as a service + implementation type specified in + to the if the service type hasn't already been registered. + The . + The type of the service to add. + The type of the implementation to use. + + + Specifies the contract for a collection of service descriptors. + + + Provides an extension point for creating a container specific builder and an . + + + + Creates a container builder from an . + The collection of services + A container builder that can be used to create an . + + + Creates an from the container builder. + The container builder + An + + + The method ends the scope lifetime. Once Dispose + is called, any scoped services that have been resolved from + will be + disposed. + + + The used to resolve dependencies from the scope. + + + A factory for creating instances of , which is used to create + services within a scope. + + + Create an which + contains an used to resolve dependencies from a + newly created scope. + + An controlling the + lifetime of the scope. Once this is disposed, any scoped services that have been resolved + from the + will also be disposed. + . + + + Optional contract used by + to resolve services if supported by . + + + Gets service of type from the implementing + this interface. + An object that specifies the type of service object to get. + A service object of type . + Throws an exception if the cannot create the object. + + + The result of . + The to get service arguments from. + Additional constructor arguments. + The instantiated type. + + + Extension methods for adding services to an . + + + Adds a scoped service of the type specified in to the + specified . + The to add the service to. + The type of the service to register and the implementation to use. + A reference to this instance after the operation has completed. + + + Adds a scoped service of the type specified in with a + factory specified in to the + specified . + The to add the service to. + The type of the service to register. + The factory that creates the service. + A reference to this instance after the operation has completed. + + + Adds a scoped service of the type specified in with an + implementation of the type specified in to the + specified . + The to add the service to. + The type of the service to register. + The implementation type of the service. + A reference to this instance after the operation has completed. + + + Adds a scoped service of the type specified in to the + specified . + The to add the service to. + The type of the service to add. + A reference to this instance after the operation has completed. + + + Adds a scoped service of the type specified in with a + factory specified in to the + specified . + The to add the service to. + The factory that creates the service. + The type of the service to add. + A reference to this instance after the operation has completed. + + + Adds a scoped service of the type specified in with an + implementation type specified in to the + specified . + The to add the service to. + The type of the service to add. + The type of the implementation to use. + A reference to this instance after the operation has completed. + + + Adds a scoped service of the type specified in with an + implementation type specified in using the + factory specified in to the + specified . + The to add the service to. + The factory that creates the service. + The type of the service to add. + The type of the implementation to use. + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in to the + specified . + The to add the service to. + The type of the service to register and the implementation to use. + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in with a + factory specified in to the + specified . + The to add the service to. + The type of the service to register. + The factory that creates the service. + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in with an + instance specified in to the + specified . + The to add the service to. + The type of the service to register. + The instance of the service. + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in with an + implementation of the type specified in to the + specified . + The to add the service to. + The type of the service to register. + The implementation type of the service. + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in to the + specified . + The to add the service to. + The type of the service to add. + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in with an + instance specified in to the + specified . + The to add the service to. + The instance of the service. + + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in with a + factory specified in to the + specified . + The to add the service to. + The factory that creates the service. + The type of the service to add. + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in with an + implementation type specified in to the + specified . + The to add the service to. + The type of the service to add. + The type of the implementation to use. + A reference to this instance after the operation has completed. + + + Adds a singleton service of the type specified in with an + implementation type specified in using the + factory specified in to the + specified . + The to add the service to. + The factory that creates the service. + The type of the service to add. + The type of the implementation to use. + A reference to this instance after the operation has completed. + + + Adds a transient service of the type specified in to the + specified . + The to add the service to. + The type of the service to register and the implementation to use. + A reference to this instance after the operation has completed. + + + Adds a transient service of the type specified in with a + factory specified in to the + specified . + The to add the service to. + The type of the service to register. + The factory that creates the service. + A reference to this instance after the operation has completed. + + + Adds a transient service of the type specified in with an + implementation of the type specified in to the + specified . + The to add the service to. + The type of the service to register. + The implementation type of the service. + A reference to this instance after the operation has completed. + + + Adds a transient service of the type specified in to the + specified . + The to add the service to. + The type of the service to add. + A reference to this instance after the operation has completed. + + + Adds a transient service of the type specified in with a + factory specified in to the + specified . + The to add the service to. + The factory that creates the service. + The type of the service to add. + A reference to this instance after the operation has completed. + + + Adds a transient service of the type specified in with an + implementation type specified in to the + specified . + The to add the service to. + The type of the service to add. + The type of the implementation to use. + A reference to this instance after the operation has completed. + + + Adds a transient service of the type specified in with an + implementation type specified in using the + factory specified in to the + specified . + The to add the service to. + The factory that creates the service. + The type of the service to add. + The type of the implementation to use. + A reference to this instance after the operation has completed. + + + Describes a service with its service type, implementation, and lifetime. + + + Initializes a new instance of with the specified . + The of the service. + A factory used for creating service instances. + The of the service. + + + Initializes a new instance of with the specified + as a . + The of the service. + The instance implementing the service. + + + Initializes a new instance of with the specified . + The of the service. + The implementing the service. + The of the service. + + + Creates an instance of with the specified + , , + and . + The type of the service. + A factory to create new instances of the service implementation. + The lifetime of the service. + A new instance of . + + + Creates an instance of with the specified + , , + and . + The type of the service. + The type of the implementation. + The lifetime of the service. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + The type of the service. + A factory to create new instances of the service implementation. + A new instance of . + + + Creates an instance of with the specified + and + and the lifetime. + The type of the service. + The type of the implementation. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + A factory to create new instances of the service implementation. + The type of the service. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + The type of the service. + The type of the implementation. + A new instance of . + + + Creates an instance of with the specified + , , + , + and the lifetime. + A factory to create new instances of the service implementation. + The type of the service. + The type of the implementation. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + The type of the service. + A factory to create new instances of the service implementation. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + The type of the service. + The instance of the implementation. + A new instance of . + + + Creates an instance of with the specified + and + and the lifetime. + The type of the service. + The type of the implementation. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + The instance of the implementation. + The type of the service. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + A factory to create new instances of the service implementation. + The type of the service. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + The type of the service. + The type of the implementation. + A new instance of . + + + Creates an instance of with the specified + , , + , + and the lifetime. + A factory to create new instances of the service implementation. + The type of the service. + The type of the implementation. + A new instance of . + + + + Creates an instance of with the specified + , , + and the lifetime. + The type of the service. + A factory to create new instances of the service implementation. + A new instance of . + + + Creates an instance of with the specified + and + and the lifetime. + The type of the service. + The type of the implementation. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + A factory to create new instances of the service implementation. + The type of the service. + A new instance of . + + + Creates an instance of with the specified + , , + and the lifetime. + The type of the service. + The type of the implementation. + A new instance of . + + + Creates an instance of with the specified + , , + , + and the lifetime. + A factory to create new instances of the service implementation. + The type of the service. + The type of the implementation. + A new instance of . + + + + + + + + Specifies the lifetime of a service in an . + + + Specifies that a new instance of the service will be created for each scope. + + + Specifies that a single instance of the service will be created. + + + Specifies that a new instance of the service will be created every time it is requested. + + + Extension methods for getting services from an . + + + Creates a new that can be used to resolve scoped services. + The to create the scope from. + A that can be used to resolve scoped services. + + + Get service of type from the . + The to retrieve the service object from. + An object that specifies the type of service object to get. + There is no service of type . + A service object of type . + + + Get service of type from the . + The to retrieve the service object from. + The type of service object to get. + There is no service of type . + A service object of type . + + + Get service of type from the . + The to retrieve the service object from. + The type of service object to get. + A service object of type or null if there is no such service. + + + Get an enumeration of services of type from the . + The to retrieve the services from. + An object that specifies the type of service object to get. + An enumeration of services of type . + + + Get an enumeration of services of type from the . + The to retrieve the services from. + The type of service object to get. + An enumeration of services of type . + + + \ No newline at end of file diff --git a/Bin/Microsoft.Extensions.DependencyInjection.dll b/Bin/Microsoft.Extensions.DependencyInjection.dll index 337463427..ee55c1874 100644 Binary files a/Bin/Microsoft.Extensions.DependencyInjection.dll and b/Bin/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/Bin/Microsoft.Extensions.DependencyInjection.dll.refresh b/Bin/Microsoft.Extensions.DependencyInjection.dll.refresh index 13cc264a4..a6205efe3 100644 Binary files a/Bin/Microsoft.Extensions.DependencyInjection.dll.refresh and b/Bin/Microsoft.Extensions.DependencyInjection.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.DependencyInjection.xml b/Bin/Microsoft.Extensions.DependencyInjection.xml index 547cc2bfc..d659711c3 100644 --- a/Bin/Microsoft.Extensions.DependencyInjection.xml +++ b/Bin/Microsoft.Extensions.DependencyInjection.xml @@ -1,251 +1,140 @@ - + - - Microsoft.Extensions.DependencyInjection - - - - - Default implementation of . - - - - - Initializes a new instance of the class - with default options. - - - - - - Initializes a new instance of the class - with the specified . - - The options to use for this instance. - - - - - - - - - - Default implementation of . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Extension methods for building a from an . - - - - - Creates a containing services from the provided . - - The containing service descriptors. - The . - - - - Creates a containing services from the provided - optionally enabling scope validation. - - The containing service descriptors. - - true to perform check verifying that scoped services never gets resolved from root provider; otherwise false. - - The . - - - - Creates a containing services from the provided - optionally enabling scope validation. - - The containing service descriptors. - - Configures various service provider behaviors. - - The . - - - - Type of service being cached - - - - - Reverse index of the service when resolved in IEnumerable<Type> where default instance gets slot 0. - For example for service collection - IService Impl1 - IService Impl2 - IService Impl3 - We would get the following cache keys: - Impl1 2 - Impl2 1 - Impl3 0 - - - - - Summary description for IServiceCallSite - - - - - The default IServiceProvider. - - - - - Gets the service object of the specified type. - - The type of the service to get. - The service that was produced. - - - - - - - - - - Options for configuring various behaviors of the default implementation. - - - - - true to perform check verifying that scoped services never gets resolved from root provider; otherwise false. Defaults to false. - - - - - true to perform check verifying that all services can be created during BuildServiceProvider call; otherwise false. Defaults to false. - NOTE: this check doesn't verify open generics services. - - - - Unable to activate type '{0}'. The following constructors are ambiguous: - - - Unable to activate type '{0}'. The following constructors are ambiguous: - - - Unable to resolve service for type '{0}' while attempting to activate '{1}'. - - - Unable to resolve service for type '{0}' while attempting to activate '{1}'. - - - A circular dependency was detected for the service of type '{0}'. - - - A circular dependency was detected for the service of type '{0}'. - - - No constructor for type '{0}' can be instantiated using services from the service container and default values. - - - No constructor for type '{0}' can be instantiated using services from the service container and default values. - - - Open generic service type '{0}' requires registering an open generic implementation type. - - - Open generic service type '{0}' requires registering an open generic implementation type. - - - Cannot instantiate implementation type '{0}' for service type '{1}'. - - - Cannot instantiate implementation type '{0}' for service type '{1}'. - - - A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor. - - - A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor. - - - Cannot consume {2} service '{0}' from {3} '{1}'. - - - Cannot consume {2} service '{0}' from {3} '{1}'. - - - Cannot resolve '{0}' from root provider because it requires {2} service '{1}'. - - - Cannot resolve '{0}' from root provider because it requires {2} service '{1}'. - - - Cannot resolve {1} service '{0}' from root provider. - - - Cannot resolve {1} service '{0}' from root provider. - - - Constant value of type '{0}' can't be converted to service type '{1}' - - - Constant value of type '{0}' can't be converted to service type '{1}' - - - Implementation type '{0}' can't be converted to service type '{1}' - - - Implementation type '{0}' can't be converted to service type '{1}' - - - '{0}' type only implements IAsyncDisposable. Use DisposeAsync to dispose the container. - - - '{0}' type only implements IAsyncDisposable. Use DisposeAsync to dispose the container. - - - - Pretty print a type name. - - The . - true to print a fully qualified name. - true to include generic parameter names. - true to include generic parameters. - Character to use as a delimiter in nested type names - The pretty printed type name. - - - + + Microsoft.Extensions.DependencyInjection + + + + Default implementation of . + + + Initializes a new instance of the class + with default options. + + + Initializes a new instance of the class + with the specified . + The options to use for this instance. + + + Creates a container builder from an . + + A container builder that can be used to create an . + + + Creates an from the container builder. + + An . + + + Default implementation of . + + + + Removes all items from the . + + + Determines whether the contains a specific value. + + + if is found in the ; otherwise, . + + + Copies the elements of the to an , starting at a particular index. + + + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Determines the index of a specific item in the . + + The index of if found in the list; otherwise, -1. + + + Inserts an item to the at the specified index. + + + + + Removes the first occurrence of a specific object from the . + + + if was successfully removed from the ; otherwise, . This method also returns if is not found in the original . + + + Removes the item at the specified index. + + + + Adds an item to the . + The object to add to the . + + + Returns an enumerator that iterates through a collection. + An object that can be used to iterate through the collection. + + + Gets the number of elements contained in the . + + + Gets a value indicating whether the is read-only. + + + Gets or sets the element at the specified index. + + + + Extension methods for building a from an . + + + Creates a containing services from the provided . + The containing service descriptors. + The . + + + Creates a containing services from the provided optionally enabling service-creation and scope validation. + The containing service descriptors. + Configures various service provider behaviors including service-creation and scope validation. + The . + + + Creates a containing services from the provided + optionally enabling scope validation. + The containing service descriptors. + + to perform check verifying that scoped services never gets resolved from root provider; otherwise, . + The . + + + The default IServiceProvider. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously. + A task that represents the asynchronous dispose operation. + + + Gets the service object of the specified type. + The type of the service to get. + The service that was produced. + + + Options for configuring various behaviors of the default implementation. + + + + + to perform check verifying that all services can be created during call; otherwise, . Defaults to . + NOTE: this check doesn't verify open generics services. + + + + to perform check verifying that scoped services never gets resolved from root provider; otherwise, . Defaults to . + + + \ No newline at end of file diff --git a/Bin/Microsoft.Extensions.Logging.Abstractions.dll b/Bin/Microsoft.Extensions.Logging.Abstractions.dll index ab140e033..943e203ab 100644 Binary files a/Bin/Microsoft.Extensions.Logging.Abstractions.dll and b/Bin/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/Bin/Microsoft.Extensions.Logging.Abstractions.dll.refresh b/Bin/Microsoft.Extensions.Logging.Abstractions.dll.refresh index ded6a5d13..2aa20738b 100644 Binary files a/Bin/Microsoft.Extensions.Logging.Abstractions.dll.refresh and b/Bin/Microsoft.Extensions.Logging.Abstractions.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Logging.Abstractions.xml b/Bin/Microsoft.Extensions.Logging.Abstractions.xml index ba60dc826..c2054460b 100644 --- a/Bin/Microsoft.Extensions.Logging.Abstractions.xml +++ b/Bin/Microsoft.Extensions.Logging.Abstractions.xml @@ -1,838 +1,657 @@ - + - - Microsoft.Extensions.Logging.Abstractions - - - - - Identifies a logging event. The primary identifier is the "Id" property, with the "Name" property providing a short description of this type of event. - - - - - Implicitly creates an EventId from the given . - - The to convert to an EventId. - - - - Checks if two specified instances have the same value. They are equal if they have the same Id. - - The first . - The second . - true if the objects are equal. - - - - Checks if two specified instances have different values. - - The first . - The second . - true if the objects are not equal. - - - - Initializes an instance of the struct. - - The numeric identifier for this event. - The name of this event. - - - - Gets the numeric identifier for this event. - - - - - Gets the name of this event. - - - - - - - - Indicates whether the current object is equal to another object of the same type. Two events are equal if they have the same id. - - An object to compare with this object. - true if the current object is equal to the other parameter; otherwise, false. - - - - - - - - - - LogValues to enable formatting options supported by . - This also enables using {NamedformatItem} in the format string. - - - - - Represents a storage of common scope data. - - - - - Executes callback for each currently active scope objects in order of creation. - All callbacks are guaranteed to be called inline from this method. - - The callback to be executed for every scope object - The state object to be passed into the callback - The type of state to accept. - - - - Adds scope object to the list - - The scope object - The token that removes scope on dispose. - - - - Represents a type used to perform logging. - - Aggregates most logging patterns to a single method. - - - - Writes a log entry. - - Entry will be written on this level. - Id of the event. - The entry to be written. Can be also an object. - The exception related to this entry. - Function to create a message of the and . - The type of the object to be written. - - - - Checks if the given is enabled. - - level to be checked. - true if enabled. - - - - Begins a logical operation scope. - - The identifier for the scope. - The type of the state to begin scope for. - An that ends the logical operation scope on dispose. - - - - Represents a type used to configure the logging system and create instances of from - the registered s. - - - - - Creates a new instance. - - The category name for messages produced by the logger. - The . - - - - Adds an to the logging system. - - The . - - - - Represents a type that can create instances of . - - - - - Creates a new instance. - - The category name for messages produced by the logger. - The instance of that was created. - - - - A generic interface for logging where the category name is derived from the specified - type name. - Generally used to enable activation of a named from dependency injection. - - The type who's name is used for the logger category name. - - - - Represents a that is able to consume external scope information. - - - - - Sets external scope information source for logger provider. - - The provider of scope data. - - - - ILogger extension methods for common scenarios. - - - - - Formats and writes a debug log message. - - The to write to. - The event id associated with the log. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogDebug(0, exception, "Error while processing request from {Address}", address) - - - - Formats and writes a debug log message. - - The to write to. - The event id associated with the log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogDebug(0, "Processing request from {Address}", address) - - - - Formats and writes a debug log message. - - The to write to. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogDebug(exception, "Error while processing request from {Address}", address) - - - - Formats and writes a debug log message. - - The to write to. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogDebug("Processing request from {Address}", address) - - - - Formats and writes a trace log message. - - The to write to. - The event id associated with the log. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogTrace(0, exception, "Error while processing request from {Address}", address) - - - - Formats and writes a trace log message. - - The to write to. - The event id associated with the log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogTrace(0, "Processing request from {Address}", address) - - - - Formats and writes a trace log message. - - The to write to. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogTrace(exception, "Error while processing request from {Address}", address) - - - - Formats and writes a trace log message. - - The to write to. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogTrace("Processing request from {Address}", address) - - - - Formats and writes an informational log message. - - The to write to. - The event id associated with the log. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogInformation(0, exception, "Error while processing request from {Address}", address) - - - - Formats and writes an informational log message. - - The to write to. - The event id associated with the log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogInformation(0, "Processing request from {Address}", address) - - - - Formats and writes an informational log message. - - The to write to. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogInformation(exception, "Error while processing request from {Address}", address) - - - - Formats and writes an informational log message. - - The to write to. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogInformation("Processing request from {Address}", address) - - - - Formats and writes a warning log message. - - The to write to. - The event id associated with the log. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogWarning(0, exception, "Error while processing request from {Address}", address) - - - - Formats and writes a warning log message. - - The to write to. - The event id associated with the log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogWarning(0, "Processing request from {Address}", address) - - - - Formats and writes a warning log message. - - The to write to. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogWarning(exception, "Error while processing request from {Address}", address) - - - - Formats and writes a warning log message. - - The to write to. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogWarning("Processing request from {Address}", address) - - - - Formats and writes an error log message. - - The to write to. - The event id associated with the log. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogError(0, exception, "Error while processing request from {Address}", address) - - - - Formats and writes an error log message. - - The to write to. - The event id associated with the log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogError(0, "Processing request from {Address}", address) - - - - Formats and writes an error log message. - - The to write to. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogError(exception, "Error while processing request from {Address}", address) - - - - Formats and writes an error log message. - - The to write to. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogError("Processing request from {Address}", address) - - - - Formats and writes a critical log message. - - The to write to. - The event id associated with the log. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogCritical(0, exception, "Error while processing request from {Address}", address) - - - - Formats and writes a critical log message. - - The to write to. - The event id associated with the log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogCritical(0, "Processing request from {Address}", address) - - - - Formats and writes a critical log message. - - The to write to. - The exception to log. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogCritical(exception, "Error while processing request from {Address}", address) - - - - Formats and writes a critical log message. - - The to write to. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - logger.LogCritical("Processing request from {Address}", address) - - - - Formats and writes a log message at the specified log level. - - The to write to. - Entry will be written on this level. - Format string of the log message. - An object array that contains zero or more objects to format. - - - - Formats and writes a log message at the specified log level. - - The to write to. - Entry will be written on this level. - The event id associated with the log. - Format string of the log message. - An object array that contains zero or more objects to format. - - - - Formats and writes a log message at the specified log level. - - The to write to. - Entry will be written on this level. - The exception to log. - Format string of the log message. - An object array that contains zero or more objects to format. - - - - Formats and writes a log message at the specified log level. - - The to write to. - Entry will be written on this level. - The event id associated with the log. - The exception to log. - Format string of the log message. - An object array that contains zero or more objects to format. - - - - Formats the message and creates a scope. - - The to create the scope in. - Format string of the log message in message template format. Example: "User {User} logged in from {Address}" - An object array that contains zero or more objects to format. - A disposable scope object. Can be null. - - using(logger.BeginScope("Processing request from {Address}", address)) - { - } - - - - - Default implementation of - - - - - Creates a new . - - - - - - - - - - - ILoggerFactory extension methods for common scenarios. - - - - - Creates a new instance using the full name of the given type. - - The factory. - The type. - The that was created. - - - - Creates a new instance using the full name of the given . - - The factory. - The type. - The that was created. - - - - Creates delegates which can be later cached to log messages in a performant way. - - - - - Creates a delegate which can be invoked to create a log scope. - - The named format string - A delegate which when invoked creates a log scope. - - - - Creates a delegate which can be invoked to create a log scope. - - The type of the first parameter passed to the named format string. - The named format string - A delegate which when invoked creates a log scope. - - - - Creates a delegate which can be invoked to create a log scope. - - The type of the first parameter passed to the named format string. - The type of the second parameter passed to the named format string. - The named format string - A delegate which when invoked creates a log scope. - - - - Creates a delegate which can be invoked to create a log scope. - - The type of the first parameter passed to the named format string. - The type of the second parameter passed to the named format string. - The type of the third parameter passed to the named format string. - The named format string - A delegate which when invoked creates a log scope. - - - - Creates a delegate which can be invoked for logging a message. - - The - The event id - The named format string - A delegate which when invoked creates a log message. - - - - Creates a delegate which can be invoked for logging a message. - - The type of the first parameter passed to the named format string. - The - The event id - The named format string - A delegate which when invoked creates a log message. - - - - Creates a delegate which can be invoked for logging a message. - - The type of the first parameter passed to the named format string. - The type of the second parameter passed to the named format string. - The - The event id - The named format string - A delegate which when invoked creates a log message. - - - - Creates a delegate which can be invoked for logging a message. - - The type of the first parameter passed to the named format string. - The type of the second parameter passed to the named format string. - The type of the third parameter passed to the named format string. - The - The event id - The named format string - A delegate which when invoked creates a log message. - - - - Creates a delegate which can be invoked for logging a message. - - The type of the first parameter passed to the named format string. - The type of the second parameter passed to the named format string. - The type of the third parameter passed to the named format string. - The type of the fourth parameter passed to the named format string. - The - The event id - The named format string - A delegate which when invoked creates a log message. - - - - Creates a delegate which can be invoked for logging a message. - - The type of the first parameter passed to the named format string. - The type of the second parameter passed to the named format string. - The type of the third parameter passed to the named format string. - The type of the fourth parameter passed to the named format string. - The type of the fifth parameter passed to the named format string. - The - The event id - The named format string - A delegate which when invoked creates a log message. - - - - Creates a delegate which can be invoked for logging a message. - - The type of the first parameter passed to the named format string. - The type of the second parameter passed to the named format string. - The type of the third parameter passed to the named format string. - The type of the fourth parameter passed to the named format string. - The type of the fifth parameter passed to the named format string. - The type of the sixth parameter passed to the named format string. - The - The event id - The named format string - A delegate which when invoked creates a log message. - - - - Delegates to a new instance using the full name of the given type, created by the - provided . - - The type. - - - - Creates a new . - - The factory. - - - - - - - - - - - - - Defines logging severity levels. - - - - - Logs that contain the most detailed messages. These messages may contain sensitive application data. - These messages are disabled by default and should never be enabled in a production environment. - - - - - Logs that are used for interactive investigation during development. These logs should primarily contain - information useful for debugging and have no long-term value. - - - - - Logs that track the general flow of the application. These logs should have long-term value. - - - - - Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the - application execution to stop. - - - - - Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a - failure in the current activity, not an application-wide failure. - - - - - Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires - immediate attention. - - - - - Not used for writing log messages. Specifies that a logging category should not write any messages. - - - - - Formatter to convert the named format items like {NamedformatItem} to format. - - - - - Minimalistic logger that does nothing. - - - - - Returns the shared instance of . - - - - - - - - - - - - - - An used to create instance of - that logs nothing. - - - - - Creates a new instance. - - - - - Returns the shared instance of . - - - - - - This returns a instance which logs nothing. - - - - - - This method ignores the parameter and does nothing. - - - - - - - - Provider for the . - - - - - Returns an instance of . - - - - - - - - - - - Minimalistic logger that does nothing. - - - - - Returns an instance of . - - An instance of . - - - - - - - - This method ignores the parameters and does nothing. - - - - - - - The format string '{0}' does not have the expected number of named parameters. Expected {1} parameter(s) but found {2} parameter(s). - - - The format string '{0}' does not have the expected number of named parameters. Expected {1} parameter(s) but found {2} parameter(s). - - - - Scope provider that does nothing. - - - - - Returns a cached instance of . - - - - - - - - - - - An empty scope without any logic - - - - - - - - Pretty print a type name. - - The . - true to print a fully qualified name. - true to include generic parameter names. - true to include generic parameters. - Character to use as a delimiter in nested type names - The pretty printed type name. - - - + + Microsoft.Extensions.Logging.Abstractions + + + + + + + + + + + + + + + + + + + + + Minimalistic logger that does nothing. + + + Begins a logical operation scope. + + + A disposable object that ends the logical operation scope on dispose. + + + Checks if the given is enabled. + + + if enabled; otherwise. + + + Writes a log entry. + + + + + + + + + Returns the shared instance of . + + + Minimalistic logger that does nothing. + + + + Returns an instance of . + + + + Begins a logical operation scope. + + + A disposable object that ends the logical operation scope on dispose. + + + Checks if the given is enabled. + + + if enabled; otherwise. + + + Writes a log entry. + + + + + + + + + An used to create instance of + that logs nothing. + + + Returns the shared instance of . + + + Creates a new instance. + + + Adds an to the logging system. + + + + Creates a new instance. + + A new instance. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Provider for the . + + + Creates a new instance. + + The instance of that was created. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Returns an instance of . + + + Identifies a logging event. The primary identifier is the "Id" property, with the "Name" property providing a short description of this type of event. + + + Initializes an instance of the struct. + The numeric identifier for this event. + The name of this event. + + + Indicates whether the current object is equal to another object of the same type. Two events are equal if they have the same id. + An object to compare with this object. + + if the current object is equal to the other parameter; otherwise, . + + + + + + + Checks if two specified instances have the same value. They are equal if they have the same Id. + The first . + The second . + + if the objects are equal. + + + Implicitly creates an EventId from the given . + The to convert to an EventId. + + + Checks if two specified instances have different values. + The first . + The second . + + if the objects are not equal. + + + + Gets the numeric identifier for this event. + + + Gets the name of this event. + + + Represents a storage of common scope data. + + + Executes callback for each currently active scope objects in order of creation. + All callbacks are guaranteed to be called inline from this method. + The callback to be executed for every scope object + The state object to be passed into the callback + The type of state to accept. + + + Adds scope object to the list. + The scope object + The token that removes scope on dispose. + + + Represents a type used to perform logging. + + + Begins a logical operation scope. + The identifier for the scope. + The type of the state to begin scope for. + A disposable object that ends the logical operation scope on dispose. + + + Checks if the given is enabled. + level to be checked. + + if enabled; otherwise. + + + Writes a log entry. + Entry will be written on this level. + Id of the event. + The entry to be written. Can be also an object. + The exception related to this entry. + Function to create a message of the and . + The type of the object to be written. + + + A generic interface for logging where the category name is derived from the specified + type name. + Generally used to enable activation of a named from dependency injection. + The type who's name is used for the logger category name. + + + Represents a type used to configure the logging system and create instances of from + the registered s. + + + Adds an to the logging system. + The . + + + Creates a new instance. + The category name for messages produced by the logger. + A new instance. + + + Represents a type that can create instances of . + + + Creates a new instance. + The category name for messages produced by the logger. + The instance of that was created. + + + Represents a that is able to consume external scope information. + + + Sets external scope information source for logger provider. + The provider of scope data. + + + Delegates to a new instance using the full name of the given type, created by the + provided . + The type. + + + Creates a new . + The factory. + + + Begins a logical operation scope. + + + A disposable object that ends the logical operation scope on dispose. + + + Checks if the given is enabled. + + + if enabled; otherwise. + + + Writes a log entry. + + + + + + + + + ILogger extension methods for common scenarios. + + + Formats the message and creates a scope. + The to create the scope in. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + A disposable scope object. Can be null. + + + Formats and writes a log message at the specified log level. + The to write to. + Entry will be written on this level. + The event id associated with the log. + The exception to log. + Format string of the log message. + An object array that contains zero or more objects to format. + + + Formats and writes a log message at the specified log level. + The to write to. + Entry will be written on this level. + The event id associated with the log. + Format string of the log message. + An object array that contains zero or more objects to format. + + + Formats and writes a log message at the specified log level. + The to write to. + Entry will be written on this level. + The exception to log. + Format string of the log message. + An object array that contains zero or more objects to format. + + + Formats and writes a log message at the specified log level. + The to write to. + Entry will be written on this level. + Format string of the log message. + An object array that contains zero or more objects to format. + + + Formats and writes a critical log message. + The to write to. + The event id associated with the log. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a critical log message. + The to write to. + The event id associated with the log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a critical log message. + The to write to. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a critical log message. + The to write to. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a debug log message. + The to write to. + The event id associated with the log. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a debug log message. + The to write to. + The event id associated with the log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a debug log message. + The to write to. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a debug log message. + The to write to. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes an error log message. + The to write to. + The event id associated with the log. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes an error log message. + The to write to. + The event id associated with the log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes an error log message. + The to write to. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes an error log message. + The to write to. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes an informational log message. + The to write to. + The event id associated with the log. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes an informational log message. + The to write to. + The event id associated with the log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes an informational log message. + The to write to. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes an informational log message. + The to write to. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a trace log message. + The to write to. + The event id associated with the log. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a trace log message. + The to write to. + The event id associated with the log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a trace log message. + The to write to. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a trace log message. + The to write to. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a warning log message. + The to write to. + The event id associated with the log. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a warning log message. + The to write to. + The event id associated with the log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a warning log message. + The to write to. + The exception to log. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Formats and writes a warning log message. + The to write to. + Format string of the log message in message template format. Example: "User {User} logged in from {Address}" + An object array that contains zero or more objects to format. + + + Default implementation of + + + Creates a new . + + + Executes callback for each currently active scope objects in order of creation. + All callbacks are guaranteed to be called inline from this method. + + + + + + Adds scope object to the list. + + The token that removes scope on dispose. + + + ILoggerFactory extension methods for common scenarios. + + + Creates a new instance using the full name of the given . + The factory. + The type. + + + Creates a new instance using the full name of the given type. + The factory. + The type. + The that was created. + + + Creates delegates which can be later cached to log messages in a performant way. + + + Creates a delegate which can be invoked for logging a message. + The + The event id + The named format string + A delegate which when invoked creates a log message. + + + Creates a delegate which can be invoked for logging a message. + The + The event id + The named format string + The type of the first parameter passed to the named format string. + A delegate which when invoked creates a log message. + + + Creates a delegate which can be invoked for logging a message. + The + The event id + The named format string + The type of the first parameter passed to the named format string. + The type of the second parameter passed to the named format string. + A delegate which when invoked creates a log message. + + + Creates a delegate which can be invoked for logging a message. + The + The event id + The named format string + The type of the first parameter passed to the named format string. + The type of the second parameter passed to the named format string. + The type of the third parameter passed to the named format string. + A delegate which when invoked creates a log message. + + + Creates a delegate which can be invoked for logging a message. + The + The event id + The named format string + The type of the first parameter passed to the named format string. + The type of the second parameter passed to the named format string. + The type of the third parameter passed to the named format string. + The type of the fourth parameter passed to the named format string. + A delegate which when invoked creates a log message. + + + Creates a delegate which can be invoked for logging a message. + The + The event id + The named format string + The type of the first parameter passed to the named format string. + The type of the second parameter passed to the named format string. + The type of the third parameter passed to the named format string. + The type of the fourth parameter passed to the named format string. + The type of the fifth parameter passed to the named format string. + A delegate which when invoked creates a log message. + + + Creates a delegate which can be invoked for logging a message. + The + The event id + The named format string + The type of the first parameter passed to the named format string. + The type of the second parameter passed to the named format string. + The type of the third parameter passed to the named format string. + The type of the fourth parameter passed to the named format string. + The type of the fifth parameter passed to the named format string. + The type of the sixth parameter passed to the named format string. + A delegate which when invoked creates a log message. + + + Creates a delegate which can be invoked to create a log scope. + The named format string + A delegate which when invoked creates a log scope. + + + Creates a delegate which can be invoked to create a log scope. + The named format string + The type of the first parameter passed to the named format string. + A delegate which when invoked creates a log scope. + + + Creates a delegate which can be invoked to create a log scope. + The named format string + The type of the first parameter passed to the named format string. + The type of the second parameter passed to the named format string. + A delegate which when invoked creates a log scope. + + + Creates a delegate which can be invoked to create a log scope. + The named format string + The type of the first parameter passed to the named format string. + The type of the second parameter passed to the named format string. + The type of the third parameter passed to the named format string. + A delegate which when invoked creates a log scope. + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines logging severity levels. + + + Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires + immediate attention. + + + Logs that are used for interactive investigation during development. These logs should primarily contain + information useful for debugging and have no long-term value. + + + Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a + failure in the current activity, not an application-wide failure. + + + Logs that track the general flow of the application. These logs should have long-term value. + + + Not used for writing log messages. Specifies that a logging category should not write any messages. + + + Logs that contain the most detailed messages. These messages may contain sensitive application data. + These messages are disabled by default and should never be enabled in a production environment. + + + Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the + application execution to stop. + + + \ No newline at end of file diff --git a/Bin/Microsoft.Extensions.Logging.dll b/Bin/Microsoft.Extensions.Logging.dll index 01a800707..611afff45 100644 Binary files a/Bin/Microsoft.Extensions.Logging.dll and b/Bin/Microsoft.Extensions.Logging.dll differ diff --git a/Bin/Microsoft.Extensions.Logging.dll.refresh b/Bin/Microsoft.Extensions.Logging.dll.refresh index 33dd44698..a024924f8 100644 Binary files a/Bin/Microsoft.Extensions.Logging.dll.refresh and b/Bin/Microsoft.Extensions.Logging.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Logging.xml b/Bin/Microsoft.Extensions.Logging.xml index 868a042d8..db70f157c 100644 --- a/Bin/Microsoft.Extensions.Logging.xml +++ b/Bin/Microsoft.Extensions.Logging.xml @@ -1,392 +1,287 @@ - + - - Microsoft.Extensions.Logging - - - - - Extension methods for setting up logging services in an . - - - - - Adds a log filter to the factory. - - The to add the filter to. - The filter to be added. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The filter to be added. - The so that additional calls can be chained. - - - - Adds a log filter for the given . - - The to add the filter to. - The filter to be added. - The which this filter will be added for. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The filter to be added. - The so that additional calls can be chained. - - - - Adds a log filter for the given . - - The to add the filter to. - The filter to be added. - The which this filter will be added for. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The category to filter. - The level to filter. - The so that additional calls can be chained. - - - - Adds a log filter for the given . - - The to add the filter to. - The category to filter. - The level to filter. - The which this filter will be added for. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The category to filter. - The filter function to apply. - The so that additional calls can be chained. - - - - Adds a log filter for the given . - - The to add the filter to. - The category to filter. - The filter function to apply. - The which this filter will be added for. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The filter function to apply. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The filter function to apply. - The so that additional calls can be chained. - - - - Adds a log filter for the given . - - The to add the filter to. - The filter function to apply. - The which this filter will be added for. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The filter function to apply. - The so that additional calls can be chained. - - - - Adds a log filter for the given . - - The to add the filter to. - The filter function to apply. - The which this filter will be added for. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The category to filter. - The level to filter. - The so that additional calls can be chained. - - - - Adds a log filter for the given . - - The to add the filter to. - The category to filter. - The level to filter. - The which this filter will be added for. - The so that additional calls can be chained. - - - - Adds a log filter to the factory. - - The to add the filter to. - The category to filter. - The filter function to apply. - The so that additional calls can be chained. - - - - Adds a log filter for the given . - - The to add the filter to. - The category to filter. - The filter function to apply. - The which this filter will be added for. - The so that additional calls can be chained. - - - - An interface for configuring logging providers. - - - - - Gets the where Logging services are configured. - - - - - Produces instances of classes based on the given providers. - - - - - Creates a new instance. - - - - - Creates a new instance. - - The providers to use in producing instances. - - - - Creates a new instance. - - The providers to use in producing instances. - The filter options to use. - - - - Creates a new instance. - - The providers to use in producing instances. - The filter option to use. - - - - Creates new instance of configured using provided delegate. - - A delegate to configure the . - The that was created. - - - - Creates an with the given . - - The category name for messages produced by the logger. - The that was created. - - - - Adds the given provider to those used in creating instances. - - The to add. - - - - Check if the factory has been disposed. - - True when as been called - - - - - - - The options for a LoggerFilter. - - - - - Creates a new instance. - - - - - Gets or sets value indicating whether logging scopes are being captured. Defaults to true - - - - - Gets or sets the minimum level of log messages if none of the rules match. - - - - - Gets the collection of used for filtering log messages. - - - - - Defines a rule used to filter log messages - - - - - Creates a new instance. - - The provider name to use in this filter rule. - The category name to use in this filter rule. - The to use in this filter rule. - The filter to apply. - - - - Gets the logger provider type or alias this rule applies to. - - - - - Gets the logger category this rule applies to. - - - - - Gets the minimum of messages. - - - - - Gets the filter delegate that would be applied to messages that passed the . - - - - - - - - Extension methods for setting up logging services in an . - - - - - Sets a minimum requirement for log messages to be logged. - - The to set the minimum level on. - The to set as the minimum. - The so that additional calls can be chained. - - - - Adds the given to the - - The to add to the . - The to add to the . - The so that additional calls can be chained. - - - - Removes all s from . - - The to remove s from. - The so that additional calls can be chained. - - - - Defines alias for implementation to be used in filtering rules. - - - - - Creates a new instance. - - The alias to set. - - - - The alias of the provider. - - - - - Scope provider that does nothing. - - - - - Returns a cached instance of . - - - - - - - - - - - An empty scope without any logic - - - - - - - - Extension methods for setting up logging services in an . - - - - - Adds logging services to the specified . - - The to add services to. - The so that additional calls can be chained. - - - - Adds logging services to the specified . - - The to add services to. - The configuration delegate. - The so that additional calls can be chained. - - - + + Microsoft.Extensions.Logging + + + + Extension methods for setting up logging services in an . + + + Adds logging services to the specified . + The to add services to. + The so that additional calls can be chained. + + + Adds logging services to the specified . + The to add services to. + The configuration delegate. + The so that additional calls can be chained. + + + + + + + + + + Extension methods for setting up logging services in an . + + + Adds a log filter to the factory. + The to add the filter to. + The filter to be added. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The filter to be added. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The filter to be added. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The category to filter. + The level to filter. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The category to filter. + The filter function to apply. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The filter function to apply. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The filter function to apply. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The filter function to apply. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The category to filter. + The level to filter. + The so that additional calls can be chained. + + + Adds a log filter to the factory. + The to add the filter to. + The category to filter. + The filter function to apply. + The so that additional calls can be chained. + + + Adds a log filter for the given . + The to add the filter to. + The filter to be added. + The which this filter will be added for. + The so that additional calls can be chained. + + + Adds a log filter for the given . + The to add the filter to. + The filter to be added. + The which this filter will be added for. + The so that additional calls can be chained. + + + Adds a log filter for the given . + The to add the filter to. + The category to filter. + The level to filter. + The which this filter will be added for. + The so that additional calls can be chained. + + + Adds a log filter for the given . + The to add the filter to. + The category to filter. + The filter function to apply. + The which this filter will be added for. + The so that additional calls can be chained. + + + Adds a log filter for the given . + The to add the filter to. + The filter function to apply. + The which this filter will be added for. + The so that additional calls can be chained. + + + Adds a log filter for the given . + The to add the filter to. + The filter function to apply. + The which this filter will be added for. + The so that additional calls can be chained. + + + Adds a log filter for the given . + The to add the filter to. + The category to filter. + The level to filter. + The which this filter will be added for. + The so that additional calls can be chained. + + + Adds a log filter for the given . + The to add the filter to. + The category to filter. + The filter function to apply. + The which this filter will be added for. + The so that additional calls can be chained. + + + An interface for configuring logging providers. + + + Gets the where Logging services are configured. + + + Produces instances of classes based on the given providers. + + + Creates a new instance. + + + Creates a new instance. + The providers to use in producing instances. + + + Creates a new instance. + The providers to use in producing instances. + The filter options to use. + + + Creates a new instance. + The providers to use in producing instances. + The filter option to use. + + + + + + + + Adds the given provider to those used in creating instances. + The to add. + + + Check if the factory has been disposed. + + when as been called + + + Creates new instance of configured using provided delegate. + A delegate to configure the . + The that was created. + + + Creates an with the given . + The category name for messages produced by the logger. + The that was created. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + + The options for a LoggerFilter. + + + Creates a new instance. + + + Gets or sets value indicating whether logging scopes are being captured. Defaults to + + + Gets or sets the minimum level of log messages if none of the rules match. + + + Gets the collection of used for filtering log messages. + + + Defines a rule used to filter log messages. + + + Creates a new instance. + The provider name to use in this filter rule. + The category name to use in this filter rule. + The to use in this filter rule. + The filter to apply. + + + + Gets the logger category this rule applies to. + + + Gets the filter delegate that would be applied to messages that passed the . + + + Gets the minimum of messages. + + + Gets the logger provider type or alias this rule applies to. + + + Provides extension methods for setting up logging services in an . + + + Configures logger filter options from an instance of . + The logging builder to configure logger filter options for. + The filter options to add. + The logging builder with filter options configured. + + + Adds the given to the so that calls can be chained. + The logging builder to add the to. + The logger provider to add to the . + A logging builder that you can chain additional calls to. + + + Removes all logger providers from . + The logging builder to remove logging providers from. + The logging builder with logger providers removed. + + + + Sets a minimum requirement for log messages to be logged. + The logging builder to set the minimum level on. + One of the enumeration values to set as the minimum logging severity level. + The logging builder with minimum log level set. + + + Defines alias for implementation to be used in filtering rules. + + + Creates a new instance. + The alias to set. + + + The alias of the provider. + + + \ No newline at end of file diff --git a/Bin/Microsoft.Extensions.Options.dll b/Bin/Microsoft.Extensions.Options.dll index bdad2abba..9470a4676 100644 Binary files a/Bin/Microsoft.Extensions.Options.dll and b/Bin/Microsoft.Extensions.Options.dll differ diff --git a/Bin/Microsoft.Extensions.Options.dll.refresh b/Bin/Microsoft.Extensions.Options.dll.refresh index 12e55441f..0076e4755 100644 Binary files a/Bin/Microsoft.Extensions.Options.dll.refresh and b/Bin/Microsoft.Extensions.Options.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Options.xml b/Bin/Microsoft.Extensions.Options.xml index fc1234e6b..e0295cbe2 100644 --- a/Bin/Microsoft.Extensions.Options.xml +++ b/Bin/Microsoft.Extensions.Options.xml @@ -1,1820 +1,1254 @@ - + - - Microsoft.Extensions.Options - - - - - Implementation of . - - Options type being configured. - - - - Constructor. - - The name of the options. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - Invokes the registered configure if the matches. - - The name of the options instance being configured. - The options instance to configure. - - - - Invoked to configure a instance with the . - - The options instance to configure. - - - - Implementation of . - - Options type being configured. - Dependency type. - - - - Constructor. - - The name of the options. - A dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The dependency. - - - - - Invokes the registered configure if the matches. - - The name of the options instance being configured. - The options instance to configure. - - - - Invoked to configure a instance with the . - - The options instance to configure. - - - - Implementation of . - - Options type being configured. - First dependency type. - Second dependency type. - - - - Constructor. - - The name of the options. - A dependency. - A second dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The first dependency. - - - - - The second dependency. - - - - - Invokes the registered configure if the matches. - - The name of the options instance being configured. - The options instance to configure. - - - - Invoked to configure a instance with the . - - The options instance to configure. - - - - Implementation of . - - Options type being configured. - First dependency type. - Second dependency type. - Third dependency type. - - - - Constructor. - - The name of the options. - A dependency. - A second dependency. - A third dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - Invokes the registered configure if the matches. - - The name of the options instance being configured. - The options instance to configure. - - - - Invoked to configure a instance with the . - - The options instance to configure. - - - - Implementation of . - - Options type being configured. - First dependency type. - Second dependency type. - Third dependency type. - Fourth dependency type. - - - - Constructor. - - The name of the options. - A dependency. - A second dependency. - A third dependency. - A fourth dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - The fourth dependency. - - - - - Invokes the registered configure if the matches. - - The name of the options instance being configured. - The options instance to configure. - - - - Invoked to configure a instance with the . - - The options instance to configure. - - - - Implementation of . - - Options type being configured. - First dependency type. - Second dependency type. - Third dependency type. - Fourth dependency type. - Fifth dependency type. - - - - Constructor. - - The name of the options. - A dependency. - A second dependency. - A third dependency. - A fourth dependency. - A fifth dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - The fourth dependency. - - - - - The fifth dependency. - - - - - Invokes the registered configure if the matches. - - The name of the options instance being configured. - The options instance to configure. - - - - Invoked to configure a instance with the . - - The options instance to configure. - - - - Implementation of . - - Options type being configured. - - - - Constructor. - - The action to register. - - - - The configuration action. - - - - - Invokes the registered configure . - - The options instance to configure. - - - - Represents something that configures the type. - - - - - - Invoked to configure a instance. - - The name of the options instance being configured. - The options instance to configure. - - - - Represents something that configures the type. - Note: These are run before all . - - - - - - Invoked to configure a instance. - - The options instance to configure. - - - - Used to retrieve configured instances. - - The type of options being requested. - - - - The default configured instance - - - - - Used to fetch used for tracking options changes. - - Options type. - - - - Returns a which can be used to register a change notification callback. - - Change token. - - - - The name of the option instance being changed. - - - - - Used to create instances. - - The type of options being requested. - - - - Returns a configured instance with the given name. - - - - - Used for notifications when instances change. - - The options type. - - - - Returns the current instance with the . - - - - - Returns a configured instance with the given name. - - - - - Registers a listener to be called whenever a named changes. - - The action to be invoked when has changed. - An which should be disposed to stop listening for changes. - - - - Used by to cache instances. - - The type of options being requested. - - - - Gets a named options instance, or adds a new instance created with . - - The name of the options instance. - The func used to create the new instance. - The options instance. - - - - Tries to adds a new option to the cache, will return false if the name already exists. - - The name of the options instance. - The options instance. - Whether anything was added. - - - - Try to remove an options instance. - - The name of the options instance. - Whether anything was removed. - - - - Clears all options instances from the cache. - - - - - Used to access the value of for the lifetime of a request. - - Options type. - - - - Returns a configured instance with the given name. - - - - - Represents something that configures the type. - Note: These are run after all . - - Options type being configured. - - - - Invoked to configure a instance. - - The name of the options instance being configured. - The options instance to configured. - - - - Interface used to validate options. - - The options type to validate. - - - - Validates a specific named options instance (or all when name is null). - - The name of the options instance being validated. - The options instance. - The result. - - - - Helper class. - - - - - The default name used for options instances: "". - - - - - Creates a wrapper around an instance of to return itself as an . - - Options type. - Options object. - Wrapped options object. - - - - Used to configure instances. - - The type of options being requested. - - - - The default name of the instance. - - - - - The for the options being configured. - - - - - Constructor. - - The for the options being configured. - The default name of the instance, if null is used. - - - - Registers an action used to configure a particular type of options. - Note: These are run before all . - - The action used to configure the options. - The current . - - - - Registers an action used to configure a particular type of options. - Note: These are run before all . - - A dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to configure a particular type of options. - Note: These are run before all . - - The first dependency used by the action. - The second dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to configure a particular type of options. - Note: These are run before all . - - The first dependency used by the action. - The second dependency used by the action. - The third dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to configure a particular type of options. - Note: These are run before all . - - The first dependency used by the action. - The second dependency used by the action. - The third dependency used by the action. - The fourth dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to configure a particular type of options. - Note: These are run before all . - - The first dependency used by the action. - The second dependency used by the action. - The third dependency used by the action. - The fourth dependency used by the action. - The fifth dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to configure a particular type of options. - Note: These are run after all . - - The action used to configure the options. - - - - Registers an action used to post configure a particular type of options. - Note: These are run after all . - - The dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to post configure a particular type of options. - Note: These are run after all . - - The first dependency used by the action. - The second dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to post configure a particular type of options. - Note: These are run after all . - - The first dependency used by the action. - The second dependency used by the action. - The third dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to post configure a particular type of options. - Note: These are run after all . - - The first dependency used by the action. - The second dependency used by the action. - The third dependency used by the action. - The fourth dependency used by the action. - The action used to configure the options. - The current . - - - - Registers an action used to post configure a particular type of options. - Note: These are run after all . - - The first dependency used by the action. - The second dependency used by the action. - The third dependency used by the action. - The fourth dependency used by the action. - The fifth dependency used by the action. - The action used to configure the options. - The current . - - - - Register a validation action for an options type using a default failure message. - - The validation function. - The current . - - - - Register a validation action for an options type. - - The validation function. - The failure message to use when validation fails. - The current . - - - - Register a validation action for an options type using a default failure message. - - The dependency used by the validation function. - The validation function. - The current . - - - - Register a validation action for an options type. - - The dependency used by the validation function. - The validation function. - The failure message to use when validation fails. - The current . - - - - Register a validation action for an options type using a default failure message. - - The first dependency used by the validation function. - The second dependency used by the validation function. - The validation function. - The current . - - - - Register a validation action for an options type. - - The first dependency used by the validation function. - The second dependency used by the validation function. - The validation function. - The failure message to use when validation fails. - The current . - - - - Register a validation action for an options type using a default failure message. - - The first dependency used by the validation function. - The second dependency used by the validation function. - The third dependency used by the validation function. - The validation function. - The current . - - - - Register a validation action for an options type. - - The first dependency used by the validation function. - The second dependency used by the validation function. - The third dependency used by the validation function. - The validation function. - The failure message to use when validation fails. - The current . - - - - Register a validation action for an options type using a default failure message. - - The first dependency used by the validation function. - The second dependency used by the validation function. - The third dependency used by the validation function. - The fourth dependency used by the validation function. - The validation function. - The current . - - - - Register a validation action for an options type. - - The first dependency used by the validation function. - The second dependency used by the validation function. - The third dependency used by the validation function. - The fourth dependency used by the validation function. - The validation function. - The failure message to use when validation fails. - The current . - - - - Register a validation action for an options type using a default failure message. - - The first dependency used by the validation function. - The second dependency used by the validation function. - The third dependency used by the validation function. - The fourth dependency used by the validation function. - The fifth dependency used by the validation function. - The validation function. - The current . - - - - Register a validation action for an options type. - - The first dependency used by the validation function. - The second dependency used by the validation function. - The third dependency used by the validation function. - The fourth dependency used by the validation function. - The fifth dependency used by the validation function. - The validation function. - The failure message to use when validation fails. - The current . - - - - Used to cache instances. - - The type of options being requested. - - - - Clears all options instances from the cache. - - - - - Gets a named options instance, or adds a new instance created with . - - The name of the options instance. - The func used to create the new instance. - The options instance. - - - - Tries to adds a new option to the cache, will return false if the name already exists. - - The name of the options instance. - The options instance. - Whether anything was added. - - - - Try to remove an options instance. - - The name of the options instance. - Whether anything was removed. - - - - Implementation of . - - The type of options being requested. - - - - Initializes a new instance with the specified options configurations. - - The configuration actions to run. - The initialization actions to run. - - - - Initializes a new instance with the specified options configurations. - - The configuration actions to run. - The initialization actions to run. - The validations to run. - - - - Returns a configured instance with the given . - - - - - Implementation of and . - - Options type. - - - - Initializes a new instance with the specified options configurations. - - The factory to use to create options. - - - - The default configured instance, equivalent to Get(Options.DefaultName). - - - - - Returns a configured instance with the given . - - - - - Implementation of . - - Options type. - - - - Constructor. - - The factory to use to create options. - The sources used to listen for changes to the options instance. - The cache used to store options. - - - - The present value of the options. - - - - - Returns a configured instance with the given . - - - - - Registers a listener to be called whenever changes. - - The action to be invoked when has changed. - An which should be disposed to stop listening for changes. - - - - Removes all change registration subscriptions. - - - - - Extension methods for . - - - - - Registers a listener to be called whenever changes. - - The IOptionsMonitor. - The action to be invoked when has changed. - An which should be disposed to stop listening for changes. - - - - Thrown when options validation fails. - - - - - Constructor. - - The name of the options instance that failed. - The options type that failed. - The validation failure messages. - - - - The name of the options instance that failed. - - - - - The type of the options that failed. - - - - - The validation failures. - - - - - The message is a semicolon separated list of the . - - - - - wrapper that returns the options instance. - - Options type. - - - - Intializes the wrapper with the options instance to return. - - The options instance to return. - - - - The options instance. - - - - - Implementation of . - - Options type being configured. - - - - Creates a new instance of . - - The name of the options. - The action to register. - - - - The options name. - - - - - The initialization action. - - - - - Invokes the registered initialization if the matches. - - The name of the action to invoke. - The options to use in initialization. - - - - Implementation of . - - Options type being configured. - Dependency type. - - - - Constructor. - - The name of the options. - A dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The dependency. - - - - - Invokes the registered initialization if the matches. - - The name of the options instance being configured. - The options instance to configured. - - - - Invoked to configure a instance using the . - - The options instance to configured. - - - - Implementation of . - - Options type being configured. - First dependency type. - Second dependency type. - - - - Constructor. - - The name of the options. - A dependency. - A second dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The first dependency. - - - - - The second dependency. - - - - - Invokes the registered initialization if the matches. - - The name of the options instance being configured. - The options instance to configured. - - - - Invoked to configure a instance using the . - - The options instance to configured. - - - - Implementation of . - - Options type being configured. - First dependency type. - Second dependency type. - Third dependency type. - - - - Constructor. - - The name of the options. - A dependency. - A second dependency. - A third dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - Invokes the registered initialization if the matches. - - The name of the options instance being configured. - The options instance to configured. - - - - Invoked to configure a instance using the . - - The options instance to configured. - - - - Implementation of . - - Options type being configured. - First dependency type. - Second dependency type. - Third dependency type. - Fourth dependency type. - - - - Constructor. - - The name of the options. - A dependency. - A second dependency. - A third dependency. - A fourth dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - The fourth dependency. - - - - - Invokes the registered initialization if the matches. - - The name of the options instance being configured. - The options instance to configured. - - - - Invoked to configure a instance using the . - - The options instance to configured. - - - - Implementation of . - - Options type being configured. - First dependency type. - Second dependency type. - Third dependency type. - Fourth dependency type. - Fifth dependency type. - - - - Constructor. - - The name of the options. - A dependency. - A second dependency. - A third dependency. - A fourth dependency. - A fifth dependency. - The action to register. - - - - The options name. - - - - - The configuration action. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - The fourth dependency. - - - - - The fifth dependency. - - - - - Invokes the registered initialization if the matches. - - The name of the options instance being configured. - The options instance to configured. - - - - Invoked to configure a instance using the . - - The options instance to configured. - - - - Implementation of - - The options type to validate. - - - - Constructor. - - Options name. - Validation function. - Validation failure message. - - - - The options name. - - - - - The validation function. - - - - - The error to return when validation fails. - - - - - Validates a specific named options instance (or all when is null). - - The name of the options instance being validated. - The options instance. - The result. - - - - Implementation of - - The options type to validate. - Dependency type. - - - - Constructor. - - Options name. - The dependency. - Validation function. - Validation failure message. - - - - The options name. - - - - - The validation function. - - - - - The error to return when validation fails. - - - - - The dependency. - - - - - Validates a specific named options instance (or all when is null). - - The name of the options instance being validated. - The options instance. - The result. - - - - Implementation of - - The options type to validate. - First dependency type. - Second dependency type. - - - - Constructor. - - Options name. - The first dependency. - The second dependency. - Validation function. - Validation failure message. - - - - The options name. - - - - - The validation function. - - - - - The error to return when validation fails. - - - - - The first dependency. - - - - - The second dependency. - - - - - Validates a specific named options instance (or all when is null). - - The name of the options instance being validated. - The options instance. - The result. - - - - Implementation of - - The options type to validate. - First dependency type. - Second dependency type. - Third dependency type. - - - - Constructor. - - Options name. - The first dependency. - The second dependency. - The third dependency. - Validation function. - Validation failure message. - - - - The options name. - - - - - The validation function. - - - - - The error to return when validation fails. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - Validates a specific named options instance (or all when is null). - - The name of the options instance being validated. - The options instance. - The result. - - - - Implementation of - - The options type to validate. - First dependency type. - Second dependency type. - Third dependency type. - Fourth dependency type. - - - - Constructor. - - Options name. - The first dependency. - The second dependency. - The third dependency. - The fourth dependency. - Validation function. - Validation failure message. - - - - The options name. - - - - - The validation function. - - - - - The error to return when validation fails. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - The fourth dependency. - - - - - Validates a specific named options instance (or all when is null). - - The name of the options instance being validated. - The options instance. - The result. - - - - Implementation of - - The options type to validate. - First dependency type. - Second dependency type. - Third dependency type. - Fourth dependency type. - Fifth dependency type. - - - - Constructor. - - Options name. - The first dependency. - The second dependency. - The third dependency. - The fourth dependency. - The fifth dependency. - Validation function. - Validation failure message. - - - - The options name. - - - - - The validation function. - - - - - The error to return when validation fails. - - - - - The first dependency. - - - - - The second dependency. - - - - - The third dependency. - - - - - The fourth dependency. - - - - - The fifth dependency. - - - - - Validates a specific named options instance (or all when is null). - - The name of the options instance being validated. - The options instance. - The result. - - - - Represents the result of an options validation. - - - - - Result when validation was skipped due to name not matching. - - - - - Validation was successful. - - - - - True if validation was successful. - - - - - True if validation was not run. - - - - - True if validation failed. - - - - - Used to describe why validation failed. - - - - - Full list of failures (can be multiple). - - - - - Returns a failure result. - - The reason for the failure. - The failure result. - - - - Returns a failure result. - - The reasons for the failure. - The failure result. - - - Cannot create instance of type '{0}' because it is either abstract or an interface. - - - Cannot create instance of type '{0}' because it is either abstract or an interface. - - - Failed to convert '{0}' to type '{1}'. - - - Failed to convert '{0}' to type '{1}'. - - - Failed to create instance of type '{0}'. - - - Failed to create instance of type '{0}'. - - - Cannot create instance of type '{0}' because it is missing a public parameterless constructor. - - - Cannot create instance of type '{0}' because it is missing a public parameterless constructor. - - - No IConfigureOptions<> or IPostConfigureOptions<> implementations were found. - - - No IConfigureOptions<> or IPostConfigureOptions<> implementations were found, did you mean to call Configure<> or PostConfigure<>? - - - - Extension methods for adding options services to the DI container. - - - - - Adds services required for using options. - - The to add the services to. - The so that additional calls can be chained. - - - - Registers an action used to configure a particular type of options. - Note: These are run before all . - - The options type to be configured. - The to add the services to. - The action used to configure the options. - The so that additional calls can be chained. - - - - Registers an action used to configure a particular type of options. - Note: These are run before all . - - The options type to be configured. - The to add the services to. - The name of the options instance. - The action used to configure the options. - The so that additional calls can be chained. - - - - Registers an action used to configure all instances of a particular type of options. - - The options type to be configured. - The to add the services to. - The action used to configure the options. - The so that additional calls can be chained. - - - - Registers an action used to initialize a particular type of options. - Note: These are run after all . - - The options type to be configured. - The to add the services to. - The action used to configure the options. - The so that additional calls can be chained. - - - - Registers an action used to configure a particular type of options. - Note: These are run after all . - - The options type to be configure. - The to add the services to. - The name of the options instance. - The action used to configure the options. - The so that additional calls can be chained. - - - - Registers an action used to post configure all instances of a particular type of options. - Note: These are run after all . - - The options type to be configured. - The to add the services to. - The action used to configure the options. - The so that additional calls can be chained. - - - - Registers a type that will have all of its I[Post]ConfigureOptions registered. - - The type that will configure options. - The to add the services to. - The so that additional calls can be chained. - - - - Registers a type that will have all of its I[Post]ConfigureOptions registered. - - The to add the services to. - The type that will configure options. - The so that additional calls can be chained. - - - - Registers an object that will have all of its I[Post]ConfigureOptions registered. - - The to add the services to. - The instance that will configure options. - The so that additional calls can be chained. - - - - Gets an options builder that forwards Configure calls for the same to the underlying service collection. - - The options type to be configured. - The to add the services to. - The so that configure calls can be chained in it. - - - - Gets an options builder that forwards Configure calls for the same named to the underlying service collection. - - The options type to be configured. - The to add the services to. - The name of the options instance. - The so that configure calls can be chained in it. - - - + + Microsoft.Extensions.Options + + + + Extension methods for adding options services to the DI container. + + + Adds services required for using options. + The to add the services to. + The so that additional calls can be chained. + + + Gets an options builder that forwards Configure calls for the same named to the underlying service collection. + The to add the services to. + The options type to be configured. + The so that configure calls can be chained in it. + + + Gets an options builder that forwards Configure calls for the same named to the underlying service collection. + The to add the services to. + The name of the options instance. + The options type to be configured. + The so that Configure calls can be chained in it. + + + Registers an action used to configure a particular type of options. These are run before . + The to add the services to. + The action used to configure the options. + The options type to be configured. + The so that additional calls can be chained. + + + Registers an action used to configure a particular type of options. These are run before . + The to add the services to. + The name of the options instance. + The action used to configure the options. + The options type to be configured. + The so that additional calls can be chained. + + + Registers an action used to configure all instances of a particular type of options. + The to add the services to. + The action used to configure the options. + The options type to be configured. + The so that additional calls can be chained. + + + Registers an object that will have all of its I[Post]ConfigureOptions registered. + The to add the services to. + The instance that will configure options. + The so that additional calls can be chained. + + + Registers a type that will have all of its I[Post]ConfigureOptions registered. + The to add the services to. + The type that will configure options. + The so that additional calls can be chained. + + + Registers a type that will have all of its I[Post]ConfigureOptions registered. + The to add the services to. + The type that will configure options. + The so that additional calls can be chained. + + + Registers an action used to initialize a particular type of options. These are run after . + The to add the services to. + The action used to configure the options. + The options type to be configured. + The so that additional calls can be chained. + + + Registers an action used to configure a particular type of options. These are run after . + The to add the services to. + The name of the options instance. + The action used to configure the options. + The options type to be configure. + The so that additional calls can be chained. + + + Registers an action used to post configure all instances of a particular type of options. These are run after . + The to add the services to. + The action used to configure the options. + The options type to be configured. + The so that additional calls can be chained. + + + Implementation of . + Options type being configured. + + + Constructor. + The name of the options. + The action to register. + + + Invoked to configure a instance with the . + The options instance to configure. + + + Invokes the registered configure if the matches. + The name of the options instance being configured. + The options instance to configure. + + + The configuration action. + + + The options name. + + + Implementation of . + Options type being configured. + Dependency type. + + + Constructor. + The name of the options. + A dependency. + The action to register. + + + Invoked to configure a instance with the . + The options instance to configure. + + + Invokes the registered configure if the matches. + The name of the options instance being configured. + The options instance to configure. + + + The configuration action. + + + The dependency. + + + The options name. + + + Implementation of . + Options type being configured. + First dependency type. + Second dependency type. + + + Constructor. + The name of the options. + A dependency. + A second dependency. + The action to register. + + + Invoked to configure a instance with the . + The options instance to configure. + + + Invokes the registered configure if the matches. + The name of the options instance being configured. + The options instance to configure. + + + The configuration action. + + + The first dependency. + + + The second dependency. + + + The options name. + + + Implementation of . + Options type being configured. + First dependency type. + Second dependency type. + Third dependency type. + + + Constructor. + The name of the options. + A dependency. + A second dependency. + A third dependency. + The action to register. + + + Invoked to configure a instance with the . + The options instance to configure. + + + Invokes the registered configure if the matches. + The name of the options instance being configured. + The options instance to configure. + + + The configuration action. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The options name. + + + Implementation of . + Options type being configured. + First dependency type. + Second dependency type. + Third dependency type. + Fourth dependency type. + + + Constructor. + The name of the options. + A dependency. + A second dependency. + A third dependency. + A fourth dependency. + The action to register. + + + Invoked to configure a instance with the . + The options instance to configure. + + + Invokes the registered configure if the matches. + The name of the options instance being configured. + The options instance to configure. + + + The configuration action. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The fourth dependency. + + + The options name. + + + Implementation of . + Options type being configured. + First dependency type. + Second dependency type. + Third dependency type. + Fourth dependency type. + Fifth dependency type. + + + Constructor. + The name of the options. + A dependency. + A second dependency. + A third dependency. + A fourth dependency. + A fifth dependency. + The action to register. + + + Invoked to configure a instance with the . + The options instance to configure. + + + Invokes the registered configure if the matches. + The name of the options instance being configured. + The options instance to configure. + + + The configuration action. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The fourth dependency. + + + The fifth dependency. + + + The options name. + + + Implementation of . + Options type being configured. + + + Constructor. + The action to register. + + + Invokes the registered configure . + The options instance to configure. + + + The configuration action. + + + Represents something that configures the type. + + + + Invoked to configure a instance. + The name of the options instance being configured. + The options instance to configure. + + + Represents something that configures the type. + Note: These are run before all . + + + + Invoked to configure a instance. + The options instance to configure. + + + Used to retrieve configured instances. + The type of options being requested. + + + Gets the default configured instance. + + + Used to fetch used for tracking options changes. + Options type. + + + Returns a which can be used to register a change notification callback. + Change token. + + + The name of the option instance being changed. + + + Used to create instances. + The type of options being requested. + + + Returns a configured instance with the given name. + + + + Used for notifications when instances change. + The options type. + + + Returns a configured instance with the given name. + + + + Registers a listener to be called whenever a named changes. + The action to be invoked when has changed. + An which should be disposed to stop listening for changes. + + + Returns the current instance with the . + + + Used by to cache instances. + The type of options being requested. + + + Clears all options instances from the cache. + + + Gets a named options instance, or adds a new instance created with . + The name of the options instance. + The func used to create the new instance. + The options instance. + + + Tries to adds a new option to the cache, will return false if the name already exists. + The name of the options instance. + The options instance. + Whether anything was added. + + + Try to remove an options instance. + The name of the options instance. + Whether anything was removed. + + + Used to access the value of for the lifetime of a request. + Options type. + + + Returns a configured instance with the given name. + + + + Represents something that configures the type. + Note: These are run after all . + Options type being configured. + + + Invoked to configure a instance. + The name of the options instance being configured. + The options instance to configured. + + + Interface used to validate options. + The options type to validate. + + + Validates a specific named options instance (or all when name is null). + The name of the options instance being validated. + The options instance. + The result. + + + Helper class. + + + The default name used for options instances: "". + + + Creates a wrapper around an instance of to return itself as an . + Options object. + Options type. + Wrapped options object. + + + Used to configure instances. + The type of options being requested. + + + Constructor. + The for the options being configured. + The default name of the instance, if null is used. + + + Registers an action used to configure a particular type of options. These are run before all . + The action used to configure the options. + The current . + + + Registers an action used to configure a particular type of options. These are run before all . + The action used to configure the options. + A dependency used by the action. + The current . + + + Registers an action used to configure a particular type of options. These are run before all . + The action used to configure the options. + The first dependency used by the action. + The second dependency used by the action. + The current . + + + Registers an action used to configure a particular type of options. These are run before all . + The action used to configure the options. + The first dependency used by the action. + The second dependency used by the action. + The third dependency used by the action. + The current . + + + Registers an action used to configure a particular type of options. These are run before all . + The action used to configure the options. + The first dependency used by the action. + The second dependency used by the action. + The third dependency used by the action. + The fourth dependency used by the action. + The current . + + + Registers an action used to configure a particular type of options. These are run before all . + The action used to configure the options. + The first dependency used by the action. + The second dependency used by the action. + The third dependency used by the action. + The fourth dependency used by the action. + The fifth dependency used by the action. + The current . + + + Registers an action used to configure a particular type of options. These are run after all . + The action used to configure the options. + + + Registers an action used to post configure a particular type of options. These are run after all . + The action used to configure the options. + The dependency used by the action. + The current . + + + Registers an action used to post configure a particular type of options. These are run after all . + The action used to configure the options. + The first dependency used by the action. + The second dependency used by the action. + The current . + + + Registers an action used to post configure a particular type of options. These are run after all . + The action used to configure the options. + The first dependency used by the action. + The second dependency used by the action. + The third dependency used by the action. + The current . + + + Registers an action used to post configure a particular type of options. These are run after all . + The action used to configure the options. + The first dependency used by the action. + The second dependency used by the action. + The third dependency used by the action. + The fourth dependency used by the action. + The current . + + + Registers an action used to post configure a particular type of options. These are run after all . + The action used to configure the options. + The first dependency used by the action. + The second dependency used by the action. + The third dependency used by the action. + The fourth dependency used by the action. + The fifth dependency used by the action. + The current . + + + Register a validation action for an options type using a default failure message. + The validation function. + The current . + + + Register a validation action for an options type. + The validation function. + The failure message to use when validation fails. + The current . + + + Register a validation action for an options type using a default failure message. + The validation function. + The dependency used by the validation function. + The current . + + + Register a validation action for an options type. + The validation function. + The failure message to use when validation fails. + The dependency used by the validation function. + The current . + + + Register a validation action for an options type using a default failure message. + The validation function. + The first dependency used by the validation function. + The second dependency used by the validation function. + The current . + + + Register a validation action for an options type. + The validation function. + The failure message to use when validation fails. + The first dependency used by the validation function. + The second dependency used by the validation function. + The current . + + + Register a validation action for an options type using a default failure message. + The validation function. + The first dependency used by the validation function. + The second dependency used by the validation function. + The third dependency used by the validation function. + The current . + + + Register a validation action for an options type. + The validation function. + The failure message to use when validation fails. + The first dependency used by the validation function. + The second dependency used by the validation function. + The third dependency used by the validation function. + The current . + + + Register a validation action for an options type using a default failure message. + The validation function. + The first dependency used by the validation function. + The second dependency used by the validation function. + The third dependency used by the validation function. + The fourth dependency used by the validation function. + The current . + + + Register a validation action for an options type. + The validation function. + The failure message to use when validation fails. + The first dependency used by the validation function. + The second dependency used by the validation function. + The third dependency used by the validation function. + The fourth dependency used by the validation function. + The current . + + + Register a validation action for an options type using a default failure message. + The validation function. + The first dependency used by the validation function. + The second dependency used by the validation function. + The third dependency used by the validation function. + The fourth dependency used by the validation function. + The fifth dependency used by the validation function. + The current . + + + Register a validation action for an options type. + The validation function. + The failure message to use when validation fails. + The first dependency used by the validation function. + The second dependency used by the validation function. + The third dependency used by the validation function. + The fourth dependency used by the validation function. + The fifth dependency used by the validation function. + The current . + + + The default name of the instance. + + + The for the options being configured. + + + Used to cache instances. + The type of options being requested. + + + + Clears all options instances from the cache. + + + Gets a named options instance, or adds a new instance created with . + The name of the options instance. + The func used to create the new instance. + The options instance. + + + Tries to adds a new option to the cache, will return false if the name already exists. + The name of the options instance. + The options instance. + Whether anything was added. + + + Try to remove an options instance. + The name of the options instance. + Whether anything was removed. + + + Implementation of . + The type of options being requested. + + + Initializes a new instance with the specified options configurations. + The configuration actions to run. + The initialization actions to run. + + + Initializes a new instance with the specified options configurations. + The configuration actions to run. + The initialization actions to run. + The validations to run. + + + Returns a configured instance with the given . + + + + + + + Implementation of and . + Options type. + + + Initializes a new instance with the specified options configurations. + The factory to use to create options. + + + Returns a configured instance with the given . + + + + The default configured instance, equivalent to Get(Options.DefaultName). + + + Implementation of . + Options type. + + + Constructor. + The factory to use to create options. + The sources used to listen for changes to the options instance. + The cache used to store options. + + + Removes all change registration subscriptions. + + + Returns a configured instance with the given . + + + + Registers a listener to be called whenever changes. + The action to be invoked when has changed. + An which should be disposed to stop listening for changes. + + + The present value of the options. + + + Extension methods for . + + + Registers a listener to be called whenever changes. + The IOptionsMonitor. + The action to be invoked when has changed. + + An which should be disposed to stop listening for changes. + + + Thrown when options validation fails. + + + Constructor. + The name of the options instance that failed. + The options type that failed. + The validation failure messages. + + + The validation failures. + + + The message is a semicolon separated list of the . + + + The name of the options instance that failed. + + + The type of the options that failed. + + + + wrapper that returns the options instance. + Options type. + + + Intializes the wrapper with the options instance to return. + The options instance to return. + + + The options instance. + + + Implementation of . + Options type being configured. + + + Creates a new instance of . + The name of the options. + The action to register. + + + Invokes the registered initialization if the matches. + The name of the action to invoke. + The options to use in initialization. + + + The initialization action. + + + The options name. + + + Implementation of . + Options type being configured. + Dependency type. + + + Constructor. + The name of the options. + A dependency. + The action to register. + + + Invoked to configure a instance using the . + The options instance to configured. + + + Invokes the registered initialization if the matches. + The name of the options instance being configured. + The options instance to configured. + + + The configuration action. + + + The dependency. + + + The options name. + + + Implementation of . + Options type being configured. + First dependency type. + Second dependency type. + + + Constructor. + The name of the options. + A dependency. + A second dependency. + The action to register. + + + Invoked to configure a instance using the . + The options instance to configured. + + + Invokes the registered initialization if the matches. + The name of the options instance being configured. + The options instance to configured. + + + The configuration action. + + + The first dependency. + + + The second dependency. + + + The options name. + + + Implementation of . + Options type being configured. + First dependency type. + Second dependency type. + Third dependency type. + + + Constructor. + The name of the options. + A dependency. + A second dependency. + A third dependency. + The action to register. + + + Invoked to configure a instance using the . + The options instance to configured. + + + Invokes the registered initialization if the matches. + The name of the options instance being configured. + The options instance to configured. + + + The configuration action. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The options name. + + + Implementation of . + Options type being configured. + First dependency type. + Second dependency type. + Third dependency type. + Fourth dependency type. + + + Constructor. + The name of the options. + A dependency. + A second dependency. + A third dependency. + A fourth dependency. + The action to register. + + + Invoked to configure a instance using the . + The options instance to configured. + + + Invokes the registered initialization if the matches. + The name of the options instance being configured. + The options instance to configured. + + + The configuration action. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The fourth dependency. + + + The options name. + + + Implementation of . + Options type being configured. + First dependency type. + Second dependency type. + Third dependency type. + Fourth dependency type. + Fifth dependency type. + + + Constructor. + The name of the options. + A dependency. + A second dependency. + A third dependency. + A fourth dependency. + A fifth dependency. + The action to register. + + + Invoked to configure a instance using the . + The options instance to configured. + + + Invokes the registered initialization if the matches. + The name of the options instance being configured. + The options instance to configured. + + + The configuration action. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The fourth dependency. + + + The fifth dependency. + + + The options name. + + + Implementation of + The options type to validate. + + + Constructor. + Options name. + Validation function. + Validation failure message. + + + Validates a specific named options instance (or all when is null). + The name of the options instance being validated. + The options instance. + The result. + + + The error to return when validation fails. + + + The options name. + + + The validation function. + + + Implementation of + The options type to validate. + Dependency type. + + + Constructor. + Options name. + The dependency. + Validation function. + Validation failure message. + + + Validates a specific named options instance (or all when is null). + The name of the options instance being validated. + The options instance. + The result. + + + The dependency. + + + The error to return when validation fails. + + + The options name. + + + The validation function. + + + Implementation of + The options type to validate. + First dependency type. + Second dependency type. + + + Constructor. + Options name. + The first dependency. + The second dependency. + Validation function. + Validation failure message. + + + Validates a specific named options instance (or all when is null). + The name of the options instance being validated. + The options instance. + The result. + + + The first dependency. + + + The second dependency. + + + The error to return when validation fails. + + + The options name. + + + The validation function. + + + Implementation of + The options type to validate. + First dependency type. + Second dependency type. + Third dependency type. + + + Constructor. + Options name. + The first dependency. + The second dependency. + The third dependency. + Validation function. + Validation failure message. + + + Validates a specific named options instance (or all when is null). + The name of the options instance being validated. + The options instance. + The result. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The error to return when validation fails. + + + The options name. + + + The validation function. + + + Implementation of + The options type to validate. + First dependency type. + Second dependency type. + Third dependency type. + Fourth dependency type. + + + Constructor. + Options name. + The first dependency. + The second dependency. + The third dependency. + The fourth dependency. + Validation function. + Validation failure message. + + + Validates a specific named options instance (or all when is null). + The name of the options instance being validated. + The options instance. + The result. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The fourth dependency. + + + The error to return when validation fails. + + + The options name. + + + The validation function. + + + Implementation of + The options type to validate. + First dependency type. + Second dependency type. + Third dependency type. + Fourth dependency type. + Fifth dependency type. + + + Constructor. + Options name. + The first dependency. + The second dependency. + The third dependency. + The fourth dependency. + The fifth dependency. + Validation function. + Validation failure message. + + + Validates a specific named options instance (or all when is null). + The name of the options instance being validated. + The options instance. + The result. + + + The first dependency. + + + The second dependency. + + + The third dependency. + + + The fourth dependency. + + + The fifth dependency. + + + The error to return when validation fails. + + + The options name. + + + The validation function. + + + Represents the result of an options validation. + + + Result when validation was skipped due to name not matching. + + + Validation was successful. + + + + Returns a failure result. + The reasons for the failure. + The failure result. + + + Returns a failure result. + The reason for the failure. + The failure result. + + + True if validation failed. + + + Used to describe why validation failed. + + + Full list of failures (can be multiple). + + + True if validation was not run. + + + True if validation was successful. + + + \ No newline at end of file diff --git a/Bin/Microsoft.Extensions.Primitives.dll b/Bin/Microsoft.Extensions.Primitives.dll index afb345ccd..604a57fab 100644 Binary files a/Bin/Microsoft.Extensions.Primitives.dll and b/Bin/Microsoft.Extensions.Primitives.dll differ diff --git a/Bin/Microsoft.Extensions.Primitives.dll.refresh b/Bin/Microsoft.Extensions.Primitives.dll.refresh index dfc1297b3..ca7bf2698 100644 Binary files a/Bin/Microsoft.Extensions.Primitives.dll.refresh and b/Bin/Microsoft.Extensions.Primitives.dll.refresh differ diff --git a/Bin/Microsoft.Extensions.Primitives.xml b/Bin/Microsoft.Extensions.Primitives.xml index b9fe61177..f29304810 100644 --- a/Bin/Microsoft.Extensions.Primitives.xml +++ b/Bin/Microsoft.Extensions.Primitives.xml @@ -1,524 +1,756 @@ - + - - Microsoft.Extensions.Primitives - - - - - A implementation using . - - - - - Initializes a new instance of . - - The . - - - - - - - - - - - - - Propagates notifications that a change has occurred. - - - - - Registers the action to be called whenever the token produced changes. - - Produces the change token. - Action called when the token changes. - - - - - Registers the action to be called whenever the token produced changes. - - Produces the change token. - Action called when the token changes. - state for the consumer. - - - - - An which represents one or more instances. - - - - - Creates a new instance of . - - The list of to compose. - - - - Returns the list of which compose the current . - - - - - - - - - - - - - - Add the given to the . - - The to add to. - The to add. - The original . - - - - Propagates notifications that a change has occurred. - - - - - Gets a value that indicates if a change has occurred. - - - - - Indicates if this token will pro-actively raise callbacks. If false, the token consumer must - poll to detect changes. - - - - - Registers for a callback that will be invoked when the entry has changed. - MUST be set before the callback is invoked. - - The to invoke. - State to be passed into the callback. - An that is used to unregister the callback. - - - - An optimized representation of a substring. - - - - - A for . - - - - - Initializes an instance of the struct. - - - The original . The includes the whole . - - - - - Initializes an instance of the struct. - - The original used as buffer. - The offset of the segment within the . - The length of the segment. - - is null. - - - or is less than zero, or + - is greater than the number of characters in . - - - - - Gets the buffer for this . - - - - - Gets the offset within the buffer for this . - - - - - Gets the length of this . - - - - - Gets the value of this segment as a . - - - - - Gets whether this contains a valid value. - - - - - Gets the at a specified position in the current . - - The offset into the - The at a specified position. - - is greater than or equal to or less than zero. - - - - - Gets a from the current . - - The from this . - - - - Gets a from the current . - - The from this . - - - - Compares substrings of two specified objects using the specified rules, - and returns an integer that indicates their relative position in the sort order. - - The first to compare. - The second to compare. - One of the enumeration values that specifies the rules for the comparison. - + + Microsoft.Extensions.Primitives + + + + A implementation using . + + + Initializes a new instance of . + The . + + + Registers for a callback that will be invoked when the entry has changed. must be set before the callback is invoked. + The to invoke. + State to be passed into the callback. + An that is used to unregister the callback. + + + Indicates if this token will pro-actively raise callbacks. If , the token consumer must poll to detect changes. + + if the token will proactively raise callbacks; otherwise. + + + Gets a value that indicates if a change has occurred. + + if a change has occured; otherwise. + + + Propagates notifications that a change has occurred. + + + Registers the action to be called whenever the token produced changes. + Produces the change token. + Action called when the token changes. + + + + Registers the action to be called whenever the token produced changes. + Produces the change token. + Action called when the token changes. + state for the consumer. + The type of the state for the action. + + + + An which represents one or more instances. + + + Creates a new instance of . + The list of to compose. + + + Registers for a callback that will be invoked when the entry has changed. must be set before the callback is invoked. + The to invoke. + State to be passed into the callback. + An that is used to unregister the callback. + + + Indicates if this token will pro-actively raise callbacks. If , the token consumer must poll to detect changes. + + if the token will proactively raise callbacks; otherwise. + + + Returns the list of which compose the current . + The list of instances which compose the current . + + + Gets a value that indicates if a change has occurred. + + if a change has occured; otherwise. + + + + Add the given to the . + The to add to. + The to add. + The original . + + + Propagates notifications that a change has occurred. + + + Registers for a callback that will be invoked when the entry has changed. + MUST be set before the callback is invoked. + The to invoke. + State to be passed into the callback. + An that is used to unregister the callback. + + + Indicates if this token will pro-actively raise callbacks. If , the token consumer must + poll to detect changes. + + if the token will proactively raise callbacks; otherwise. + + + Gets a value that indicates if a change has occurred. + + if a change has occurred; otherwise. + + + An optimized representation of a substring. + + + A for . + + + Initializes an instance of the struct. + + The original . The includes the whole . + + + Initializes an instance of the struct. + The original used as buffer. + The offset of the segment within the . + The length of the segment. + + is . + + or is less than zero, or + + is greater than the number of characters in . + + + Gets a from the current . + The from this . + + + Gets a from the current . + The from this . + + + Compares substrings of two specified objects using the specified rules, + and returns an integer that indicates their relative position in the sort order. + The first to compare. + The second to compare. + One of the enumeration values that specifies the rules for the comparison. + A 32-bit signed integer indicating the lexical relationship between the two comparands. - The value is negative if is less than , 0 if the two comparands are equal, - and positive if is greater than . - - - - - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the other parameter; otherwise, false. - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - One of the enumeration values that specifies the rules to use in the comparison. - true if the current object is equal to the other parameter; otherwise, false. - - - - Determines whether two specified objects have the same value. A parameter specifies the culture, case, and - sort rules used in the comparison. - - The first to compare. - The second to compare. - One of the enumeration values that specifies the rules for the comparison. - true if the objects are equal; otherwise, false. - - - - Checks if the specified is equal to the current . - - The to compare with the current . - true if the specified is equal to the current ; otherwise, false. - - - - Checks if the specified is equal to the current . - - The to compare with the current . - One of the enumeration values that specifies the rules to use in the comparison. - true if the specified is equal to the current ; otherwise, false. - - is null. - - - - - - - - Checks if two specified have the same value. - - The first to compare, or null. - The second to compare, or null. - true if the value of is the same as the value of ; otherwise, false. - - - - Checks if two specified have different values. - - The first to compare, or null. - The second to compare, or null. - true if the value of is different from the value of ; otherwise, false. - - - - Creates a new from the given . - - The to convert to a - - - - Creates a see from the given . - - The to convert to a . - - - - Creates a see from the given . - - The to convert to a . - - - - Checks if the beginning of this matches the specified when compared using the specified . - - The to compare. - One of the enumeration values that specifies the rules to use in the comparison. - true if matches the beginning of this ; otherwise, false. - - is null. - - - - - Checks if the end of this matches the specified when compared using the specified . - - The to compare. - One of the enumeration values that specifies the rules to use in the comparison. - true if matches the end of this ; otherwise, false. - - is null. - - - - - Retrieves a substring from this . - The substring starts at the position specified by and has the remaining length. - - The zero-based starting character position of a substring in this . - A that is equivalent to the substring of remaining length that begins at - in this - - is greater than or equal to or less than zero. - - - - - Retrieves a substring from this . - The substring starts at the position specified by and has the specified . - - The zero-based starting character position of a substring in this . - The number of characters in the substring. - A that is equivalent to the substring of length that begins at - in this - - or is less than zero, or + is - greater than . - - - - - Retrieves a that represents a substring from this . - The starts at the position specified by . - - The zero-based starting character position of a substring in this . - A that begins at in this - whose length is the remainder. - - is greater than or equal to or less than zero. - - - - - Retrieves a that represents a substring from this . - The starts at the position specified by and has the specified . - - The zero-based starting character position of a substring in this . - The number of characters in the substring. - A that is equivalent to the substring of length that begins at in this - - or is less than zero, or + is - greater than . - - - - - Gets the zero-based index of the first occurrence of the character in this . - The search starts at and examines a specified number of character positions. - - The Unicode character to seek. - The zero-based index position at which the search starts. - The number of characters to examine. - The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. - - or is less than zero, or + is - greater than . - - - - - Gets the zero-based index of the first occurrence of the character in this . - The search starts at . - - The Unicode character to seek. - The zero-based index position at which the search starts. - The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. - - is greater than or equal to or less than zero. - - - - - Gets the zero-based index of the first occurrence of the character in this . - - The Unicode character to seek. - The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. - - - - Reports the zero-based index of the first occurrence in this instance of any character in a specified array + The value is negative if is less than , 0 if the two comparands are equal, + and positive if is greater than . + . + + + Checks if the end of this matches the specified when compared using the specified . + The to compare. + One of the enumeration values that specifies the rules to use in the comparison. + + is . + + if matches the end of this ; otherwise, . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + + if the current object is equal to the other parameter; otherwise, . + + + Determines whether two specified objects have the same value. A parameter specifies the culture, case, and + sort rules used in the comparison. + The first to compare. + The second to compare. + One of the enumeration values that specifies the rules for the comparison. + + if the objects are equal; otherwise, . + + + Indicates whether the current object is equal to another object of the same type. + An object to compare with this object. + One of the enumeration values that specifies the rules to use in the comparison. + + if the current object is equal to the other parameter; otherwise, . + + + + + + Checks if the specified is equal to the current . + The to compare with the current . + + if the specified is equal to the current ; otherwise, . + + + Checks if the specified is equal to the current . + The to compare with the current . + One of the enumeration values that specifies the rules to use in the comparison. + + is . + + if the specified is equal to the current ; otherwise, . + + + + Gets the zero-based index of the first occurrence of the character in this . + The Unicode character to seek. + The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. + + + Gets the zero-based index of the first occurrence of the character in this . + The search starts at . + The Unicode character to seek. + The zero-based index position at which the search starts. + + is greater than or equal to or less than zero. + The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. + + + Gets the zero-based index of the first occurrence of the character in this . + The search starts at and examines a specified number of character positions. + The Unicode character to seek. + The zero-based index position at which the search starts. + The number of characters to examine. + + or is less than zero, or + is + greater than . + The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. + + + Reports the zero-based index of the first occurrence in this instance of any character in a specified array + of Unicode characters. + A Unicode character array containing one or more characters to seek. + The zero-based index position of the first occurrence in this instance where any character in + was found; -1 if no character in was found. + + + Reports the zero-based index of the first occurrence in this instance of any character in a specified array + of Unicode characters. The search starts at a specified character position. + A Unicode character array containing one or more characters to seek. + The search starting position. + + is greater than or equal to or less than zero. + The zero-based index position of the first occurrence in this instance where any character in + was found; -1 if no character in was found. + + + Reports the zero-based index of the first occurrence in this instance of any character in a specified array of Unicode characters. The search starts at a specified character position and examines a specified number - of character positions. - - A Unicode character array containing one or more characters to seek. - The search starting position. - The number of character positions to examine. - The zero-based index position of the first occurrence in this instance where any character in - was found; -1 if no character in was found. - - is null. - - - or is less than zero, or + is - greater than . - - - - - Reports the zero-based index of the first occurrence in this instance of any character in a specified array - of Unicode characters. The search starts at a specified character position. - - A Unicode character array containing one or more characters to seek. - The search starting position. - The zero-based index position of the first occurrence in this instance where any character in - was found; -1 if no character in was found. - - is greater than or equal to or less than zero. - - - - - Reports the zero-based index of the first occurrence in this instance of any character in a specified array - of Unicode characters. - - A Unicode character array containing one or more characters to seek. - The zero-based index position of the first occurrence in this instance where any character in - was found; -1 if no character in was found. - - - - Reports the zero-based index position of the last occurrence of a specified Unicode character within this instance. - - The Unicode character to seek. - The zero-based index position of value if that character is found, or -1 if it is not. - - - - Removes all leading and trailing whitespaces. - - The trimmed . - - - - Removes all leading whitespaces. - - The trimmed . - - - - Removes all trailing whitespaces. - - The trimmed . - - - - Splits a string into s that are based on the characters in an array. - - A character array that delimits the substrings in this string, an empty array that + of character positions. + A Unicode character array containing one or more characters to seek. + The search starting position. + The number of character positions to examine. + + is . + + or is less than zero, or + is + greater than . + The zero-based index position of the first occurrence in this instance where any character in + was found; -1 if no character in was found. + + + Indicates whether the specified is null or an Empty string. + The to test. + + + + Reports the zero-based index position of the last occurrence of a specified Unicode character within this instance. + The Unicode character to seek. + The zero-based index position of value if that character is found, or -1 if it is not. + + + Checks if two specified have the same value. + The first to compare, or . + The second to compare, or . + + if the value of is the same as the value of ; otherwise, . + + + Creates a see from the given . + The to convert to a . + + + Creates a see from the given . + The to convert to a . + + + Creates a new from the given . + The to convert to a + + + Checks if two specified have different values. + The first to compare, or . + The second to compare, or . + + if the value of is different from the value of ; otherwise, . + + + Splits a string into s that are based on the characters in an array. + A character array that delimits the substrings in this string, an empty array that contains no delimiters, or null. - An whose elements contain the s from this instance - that are delimited by one or more characters in . - - - - Indicates whether the specified is null or an Empty string. - - The to test. - - - - - Returns the represented by this or String.Empty if the does not contain a value. - - The represented by this or String.Empty if the does not contain a value. - - - - Tokenizes a into s. - - - - - Initializes a new instance of . - - The to tokenize. - The characters to tokenize by. - - - - Initializes a new instance of . - - The to tokenize. - The characters to tokenize by. - - - - Represents zero/null, one, or many strings in an efficient way. - - - - Offset and length are out of bounds for the string or length is greater than the number of characters from index to the end of the string. - - - Offset and length are out of bounds for this StringSegment or length is greater than the number of characters to the end of this StringSegment. - - - Cannot change capacity after write started. - - - Not enough capacity to write '{0}' characters, only '{1}' left. - - - Not enough capacity to write '{0}' characters, only '{1}' left. - - - Entire reserved capacity was not used. Capacity: '{0}', written '{1}'. - - - Entire reserved capacity was not used. Capacity: '{0}', written '{1}'. - - - + An whose elements contain the s from this instance + that are delimited by one or more characters in . + + + Checks if the beginning of this matches the specified when compared using the specified . + The to compare. + One of the enumeration values that specifies the rules to use in the comparison. + + is . + + if matches the beginning of this ; otherwise, . + + + Retrieves a that represents a substring from this . + The starts at the position specified by . + The zero-based starting character position of a substring in this . + + is greater than or equal to or less than zero. + A that begins at in this + whose length is the remainder. + + + Retrieves a that represents a substring from this . + The starts at the position specified by and has the specified . + The zero-based starting character position of a substring in this . + The number of characters in the substring. + + or is less than zero, or + is + greater than . + A that is equivalent to the substring of length that begins at in this + + + Retrieves a substring from this . + The substring starts at the position specified by and has the remaining length. + The zero-based starting character position of a substring in this . + + is greater than or equal to or less than zero. + A that is equivalent to the substring of remaining length that begins at + in this + + + Retrieves a substring from this . + The substring starts at the position specified by and has the specified . + The zero-based starting character position of a substring in this . + The number of characters in the substring. + + or is less than zero, or + is + greater than . + A that is equivalent to the substring of length that begins at + in this + + + Returns the represented by this or if the does not contain a value. + The represented by this or if the does not contain a value. + + + Removes all leading and trailing whitespaces. + The trimmed . + + + Removes all trailing whitespaces. + The trimmed . + + + Removes all leading whitespaces. + The trimmed . + + + Gets the buffer for this . + The buffer for this . + + + Gets whether this contains a valid value. + + if the contains a valid value; otherwise. + + + Gets the at a specified position in the current . + The offset into the + + is greater than or equal to or less than zero. + The at a specified position. + + + Gets the length of this . + The length of this . + + + Gets the offset within the buffer for this . + The offset within the buffer for this . + + + Gets the value of this segment as a . + The value of this segment as a . + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + The first object to compare. + The second object to compare. + A signed integer that indicates the relative values of and . + + + Determines whether the specified objects are equal. + The first object of type to compare. + The second object of type to compare. + + if the specified objects are equal; otherwise, . + + + Returns a hash code for the specified object. + The for which a hash code is to be returned. + A hash code for the specified object. + + + + + Tokenizes a into s. + + + Initializes a new instance of . + The to tokenize. + The characters to tokenize by. + + + Initializes a new instance of . + The to tokenize. + The characters to tokenize by. + + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through a collection. + An object that can be used to iterate through the collection. + + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Represents zero/null, one, or many strings in an efficient way. + + + A readonly instance of the struct whose value is an empty string array. + + + Initializes a new instance of the structure using the specified string. + A string value or . + + + Initializes a new instance of the structure using the specified array of strings. + A string array. + + + Concatenates two specified instances of . + The first to concatenate. + The second to concatenate. + The concatenation of and . + + + Concatenates specified instance of with specified . + The to concatenate. + The string to concatenate. + The concatenation of and . + + + Concatenates specified instance of with specified . + The string to concatenate. + The to concatenate. + The concatenation of and . + + + Determines whether this instance and another specified object have the same values. + The string to compare to this instance. + + if the value of is the same as the value of this instance; otherwise, . + + + Determines whether two specified objects have the same values in the same order. + The first to compare. + The second to compare. + + if the value of is the same as the value of ; otherwise, . + + + Determines whether the specified and objects have the same values. + The to compare. + The to compare. + + if the value of is the same as the value of ; otherwise, . If is , the method returns . + + + Determines whether the specified and string array objects have the same values. + The to compare. + The string array to compare. + + if the value of is the same as the value of ; otherwise, . + + + Determines whether this instance and a specified object have the same value. + An object to compare with this object. + + if the current object is equal to ; otherwise, . + + + Determines whether this instance and a specified string have the same value. + The string to compare to this instance. + + if the value of is the same as this instance; otherwise, . If is , returns . + + + Determines whether the specified and objects have the same values. + The string to compare. + The to compare. + + if the value of is the same as the value of ; otherwise, . If is , the method returns . + + + Determines whether this instance and a specified string array have the same values. + The string array to compare to this instance. + + if the value of is the same as this instance; otherwise, . + + + Determines whether the specified string array and objects have the same values. + The string array to compare. + The to compare. + + if the value of is the same as the value of ; otherwise, . + + + Retrieves an object that can iterate through the individual strings in this . + An enumerator that can be used to iterate through the . + + + + Indicates whether the specified contains no string values. + The to test. + + if value contains a single string or empty array; otherwise, . + + + Determines whether two specified have the same values. + The first to compare. + The second to compare. + + if the value of is the same as the value of ; otherwise, . + + + Determines whether the specified and , which must be a , , or array of , have the same value. + The to compare. + The to compare. + + if the object is equal to the ; otherwise, . + + + + + + + + + + + Determines whether the specified , which must be a , , or array of , and specified , have the same value. + The to compare. + The to compare. + + if the object is equal to the ; otherwise, . + + + + + + + + + + + Defines an implicit conversion of a given to a string, with multiple values joined as a comma separated string. + A to implicitly convert. + Returns where has been initialized from an empty string array or is . Otherwise, it returns the implicit conversion of to a string. + + + Defines an implicit conversion of a given to a string array. + A to implicitly convert. + + + Defines an implicit conversion of a given string to a . + A string to implicitly convert. + + + Defines an implicit conversion of a given string array to a . + A string array to implicitly convert. + + + Determines whether two specified have different values. + The first to compare. + The second to compare. + + if the value of is different to the value of ; otherwise, . + + + Determines whether the specified and , which must be a , , or array of , have different values. + The to compare. + The to compare. + + if the object is equal to the ; otherwise, . + + + Determines whether the specified and objects have different values. + The to compare. + The to compare. + + if the value of is different to the value of ; otherwise, . + + + Determines whether the specified and string array have different values. + The to compare. + The string array to compare. + + if the value of is different to the value of ; otherwise, . + + + Determines whether the specified and object have the same values. + The to compare. + The to compare. + + if the object is equal to the ; otherwise, . + + + Determines whether the specified and objects have different values. + The string to compare. + The to compare. + + if the value of is different to the value of ; otherwise, . + + + Determines whether the specified string array and have different values. + The string array to compare. + The to compare. + + if the value of is different to the value of ; otherwise, . + + + Adds an item to the collection. + The object to add to the collection. + + + Removes all items from the collection. + + + Determines whether a string is in the . + The string to locate in the . + + if is found in the ; otherwise, . + + + Copies the entire to a string array, starting at the specified index of the target array. + The one-dimensional that is the destination of the elements copied from. The must have zero-based indexing. + The zero-based index in the destination array at which copying begins. + + + Removes the first occurrence of a specific object from the collection. + The object to remove from the collection. + + if was successfully removed from the collection; otherwise, . This method also returns if is not found in the original collection. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Returns the zero-based index of the first occurrence of an item in the . + The string to locate in the . + the zero-based index of the first occurrence of within the , if found; otherwise, –1. + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + + + Removes the item at the specified index. + The zero-based index of the item to remove. + + + Returns an enumerator that iterates through a collection. + An object that can be used to iterate through the collection. + + + Creates a string array from the current object. + A string array represented by this instance. + + + Converts the value of the current object to its equivalent string representation, with multiple values joined as a comma separated string. + A string representation of the value of the current object. + + + Gets the number of string elements contained in this . + The number of string elements contained in this . + + + Gets the string at index. + The zero-based index of the element to get. + The string at the specified index. + + + Gets a value indicating whether the collection is read-only. + + if the collection is read-only; otherwise, . + + + Gets the at index. + The zero-based index of the element to get. + The string at the specified index. + + + Enumerates the string values of a . + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + \ No newline at end of file diff --git a/Bin/Microsoft.IdentityModel.JsonWebTokens.dll b/Bin/Microsoft.IdentityModel.JsonWebTokens.dll index 3706dc751..3211b6856 100644 Binary files a/Bin/Microsoft.IdentityModel.JsonWebTokens.dll and b/Bin/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Bin/Microsoft.IdentityModel.JsonWebTokens.dll.refresh b/Bin/Microsoft.IdentityModel.JsonWebTokens.dll.refresh new file mode 100644 index 000000000..ef7c4972b --- /dev/null +++ b/Bin/Microsoft.IdentityModel.JsonWebTokens.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.IdentityModel.JsonWebTokens.6.11.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll \ No newline at end of file diff --git a/Bin/Microsoft.IdentityModel.Logging.dll b/Bin/Microsoft.IdentityModel.Logging.dll index bd5ad3a26..ed1530366 100644 Binary files a/Bin/Microsoft.IdentityModel.Logging.dll and b/Bin/Microsoft.IdentityModel.Logging.dll differ diff --git a/Bin/Microsoft.IdentityModel.Logging.dll.refresh b/Bin/Microsoft.IdentityModel.Logging.dll.refresh new file mode 100644 index 000000000..4a54165fc --- /dev/null +++ b/Bin/Microsoft.IdentityModel.Logging.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.IdentityModel.Logging.6.11.0\lib\net472\Microsoft.IdentityModel.Logging.dll \ No newline at end of file diff --git a/Bin/Microsoft.IdentityModel.Tokens.dll b/Bin/Microsoft.IdentityModel.Tokens.dll index df612ddfe..941c9e961 100644 Binary files a/Bin/Microsoft.IdentityModel.Tokens.dll and b/Bin/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Bin/Microsoft.IdentityModel.Tokens.dll.refresh b/Bin/Microsoft.IdentityModel.Tokens.dll.refresh new file mode 100644 index 000000000..f0ccf0ae9 --- /dev/null +++ b/Bin/Microsoft.IdentityModel.Tokens.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.IdentityModel.Tokens.6.11.0\lib\net472\Microsoft.IdentityModel.Tokens.dll \ No newline at end of file diff --git a/Bin/Microsoft.IdentityModel.Tokens.xml b/Bin/Microsoft.IdentityModel.Tokens.xml index 5774f7166..509964abc 100644 --- a/Bin/Microsoft.IdentityModel.Tokens.xml +++ b/Bin/Microsoft.IdentityModel.Tokens.xml @@ -804,13 +804,6 @@ Creates an ECDsa object using the and . - - - Creates an ECDsa object using the and . - 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. - This method is supported only on Windows as other platforms don't support operations with . - - Returns the size of key in bytes @@ -837,6 +830,29 @@ True if operations using are supported on user's runtime platform, false otherwise. + + + Creates an ECDsa object using the and . + 'ECParameters' structure is available in .NET Framework 4.7+, .NET Standard 1.6+, and .NET Core 1.0+. + + + + + Returns the elliptic curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + + + + Tests if user application's runtime supports structure. + + True if structure is supported, false otherwise. + + + + Throws during runtime if user application's runtime doesn't support structure. + + Represents a ECDsa security key. @@ -1567,6 +1583,15 @@ the that holds the serialized object data. The contextual information about the source or destination. + + + When overridden in a derived class, sets the System.Runtime.Serialization.SerializationInfo + with information about the exception. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + thrown if is null. + Throw this exception when a received Security Token has expiration time in the past. @@ -2663,6 +2688,14 @@ a if is null. + + + Converts a into a + + an to convert. + a + if is null. + Constants for JsonWebKey Elliptical Curve Types diff --git a/Bin/Microsoft.Owin.Host.SystemWeb.dll.refresh b/Bin/Microsoft.Owin.Host.SystemWeb.dll.refresh index 24e891aba..48b7b97d7 100644 --- a/Bin/Microsoft.Owin.Host.SystemWeb.dll.refresh +++ b/Bin/Microsoft.Owin.Host.SystemWeb.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll \ No newline at end of file +..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll \ No newline at end of file diff --git a/Bin/Microsoft.Owin.Security.OAuth.dll.refresh b/Bin/Microsoft.Owin.Security.OAuth.dll.refresh index 8367f8120..acdf32bec 100644 --- a/Bin/Microsoft.Owin.Security.OAuth.dll.refresh +++ b/Bin/Microsoft.Owin.Security.OAuth.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.Owin.Security.OAuth.4.1.0\lib\net45\Microsoft.Owin.Security.OAuth.dll \ No newline at end of file +..\packages\Microsoft.Owin.Security.OAuth.4.1.0\lib\net45\Microsoft.Owin.Security.OAuth.dll \ No newline at end of file diff --git a/Bin/Microsoft.Owin.Security.dll.refresh b/Bin/Microsoft.Owin.Security.dll.refresh index ebc4a2f6a..711dbd43b 100644 Binary files a/Bin/Microsoft.Owin.Security.dll.refresh and b/Bin/Microsoft.Owin.Security.dll.refresh differ diff --git a/Bin/Microsoft.Owin.dll.refresh b/Bin/Microsoft.Owin.dll.refresh index 0c642ed25..c02d06dc0 100644 Binary files a/Bin/Microsoft.Owin.dll.refresh and b/Bin/Microsoft.Owin.dll.refresh differ diff --git a/Bin/Microsoft.ReportViewer.Common.dll b/Bin/Microsoft.ReportViewer.Common.dll index 06f7d6cf4..fe52fd9d4 100644 Binary files a/Bin/Microsoft.ReportViewer.Common.dll and b/Bin/Microsoft.ReportViewer.Common.dll differ diff --git a/Bin/Microsoft.ReportViewer.Common.dll.refresh b/Bin/Microsoft.ReportViewer.Common.dll.refresh index f65d83594..27d1e0807 100644 --- a/Bin/Microsoft.ReportViewer.Common.dll.refresh +++ b/Bin/Microsoft.ReportViewer.Common.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.ReportViewer.2015.Runtime.12.0.2.2402\lib\Microsoft.ReportViewer.Common.dll \ No newline at end of file +..\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.150.1537.0\lib\net40\Microsoft.ReportViewer.Common.dll \ No newline at end of file diff --git a/Bin/Microsoft.ReportViewer.DataVisualization.dll b/Bin/Microsoft.ReportViewer.DataVisualization.dll index 67e9bfbeb..5d65bb234 100644 Binary files a/Bin/Microsoft.ReportViewer.DataVisualization.dll and b/Bin/Microsoft.ReportViewer.DataVisualization.dll differ diff --git a/Bin/Microsoft.ReportViewer.DataVisualization.dll.refresh b/Bin/Microsoft.ReportViewer.DataVisualization.dll.refresh new file mode 100644 index 000000000..6b2e07bfd --- /dev/null +++ b/Bin/Microsoft.ReportViewer.DataVisualization.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.150.1537.0\lib\net40\Microsoft.ReportViewer.DataVisualization.dll \ No newline at end of file diff --git a/Bin/Microsoft.ReportViewer.Design.dll b/Bin/Microsoft.ReportViewer.Design.dll index a4f21d851..a57d922e9 100644 Binary files a/Bin/Microsoft.ReportViewer.Design.dll and b/Bin/Microsoft.ReportViewer.Design.dll differ diff --git a/Bin/Microsoft.ReportViewer.Design.dll.refresh b/Bin/Microsoft.ReportViewer.Design.dll.refresh index 5d3c3a60d..55e8fbe4f 100644 Binary files a/Bin/Microsoft.ReportViewer.Design.dll.refresh and b/Bin/Microsoft.ReportViewer.Design.dll.refresh differ diff --git a/Bin/Microsoft.ReportViewer.ProcessingObjectModel.DLL.refresh b/Bin/Microsoft.ReportViewer.ProcessingObjectModel.DLL.refresh index ba5726ab9..f3a1722eb 100644 --- a/Bin/Microsoft.ReportViewer.ProcessingObjectModel.DLL.refresh +++ b/Bin/Microsoft.ReportViewer.ProcessingObjectModel.DLL.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.ReportViewer.2015.Runtime.12.0.2.2402\lib\Microsoft.ReportViewer.ProcessingObjectModel.DLL \ No newline at end of file +..\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.150.1537.0\lib\net40\Microsoft.ReportViewer.ProcessingObjectModel.dll \ No newline at end of file diff --git a/Bin/Microsoft.ReportViewer.ProcessingObjectModel.dll b/Bin/Microsoft.ReportViewer.ProcessingObjectModel.dll index f1019637b..4ca8a19ba 100644 Binary files a/Bin/Microsoft.ReportViewer.ProcessingObjectModel.dll and b/Bin/Microsoft.ReportViewer.ProcessingObjectModel.dll differ diff --git a/Bin/Microsoft.ReportViewer.WebDesign.dll b/Bin/Microsoft.ReportViewer.WebDesign.dll index a3974280c..84e0cda54 100644 Binary files a/Bin/Microsoft.ReportViewer.WebDesign.dll and b/Bin/Microsoft.ReportViewer.WebDesign.dll differ diff --git a/Bin/Microsoft.ReportViewer.WebDesign.dll.refresh b/Bin/Microsoft.ReportViewer.WebDesign.dll.refresh index 8f52dc67c..bd0a4297e 100644 Binary files a/Bin/Microsoft.ReportViewer.WebDesign.dll.refresh and b/Bin/Microsoft.ReportViewer.WebDesign.dll.refresh differ diff --git a/Bin/Microsoft.ReportViewer.WebForms.DLL.refresh b/Bin/Microsoft.ReportViewer.WebForms.DLL.refresh index 84ff5c799..4aa22e826 100644 --- a/Bin/Microsoft.ReportViewer.WebForms.DLL.refresh +++ b/Bin/Microsoft.ReportViewer.WebForms.DLL.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.ReportViewer.2015.Runtime.12.0.2.2402\lib\Microsoft.ReportViewer.WebForms.DLL \ No newline at end of file +..\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.150.1537.0\lib\net40\Microsoft.ReportViewer.WebForms.dll \ No newline at end of file diff --git a/Bin/Microsoft.ReportViewer.WebForms.dll b/Bin/Microsoft.ReportViewer.WebForms.dll index b41b9b0a8..02196e68a 100644 Binary files a/Bin/Microsoft.ReportViewer.WebForms.dll and b/Bin/Microsoft.ReportViewer.WebForms.dll differ diff --git a/Bin/Microsoft.ReportViewer.WinForms.dll b/Bin/Microsoft.ReportViewer.WinForms.dll index 4bd879ac6..b5935735e 100644 Binary files a/Bin/Microsoft.ReportViewer.WinForms.dll and b/Bin/Microsoft.ReportViewer.WinForms.dll differ diff --git a/Bin/Microsoft.SqlServer.Types.dll b/Bin/Microsoft.SqlServer.Types.dll index d4dd78993..1ccde4ab4 100644 Binary files a/Bin/Microsoft.SqlServer.Types.dll and b/Bin/Microsoft.SqlServer.Types.dll differ diff --git a/Bin/Microsoft.SqlServer.Types.dll.refresh b/Bin/Microsoft.SqlServer.Types.dll.refresh index 70e0e613c..1e3b55bbf 100644 --- a/Bin/Microsoft.SqlServer.Types.dll.refresh +++ b/Bin/Microsoft.SqlServer.Types.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.SqlServer.Types.14.0.1016.290\lib\net40\Microsoft.SqlServer.Types.dll \ No newline at end of file +..\packages\Microsoft.SqlServer.Types.14.0.1016.290\lib\net40\Microsoft.SqlServer.Types.dll \ No newline at end of file diff --git a/Bin/Microsoft.Threading.Tasks.Extensions.Desktop.dll.refresh b/Bin/Microsoft.Threading.Tasks.Extensions.Desktop.dll.refresh index f6ac753bc..1b5ef6003 100644 Binary files a/Bin/Microsoft.Threading.Tasks.Extensions.Desktop.dll.refresh and b/Bin/Microsoft.Threading.Tasks.Extensions.Desktop.dll.refresh differ diff --git a/Bin/Microsoft.Threading.Tasks.Extensions.dll.refresh b/Bin/Microsoft.Threading.Tasks.Extensions.dll.refresh index b98a3119d..83d5f14df 100644 Binary files a/Bin/Microsoft.Threading.Tasks.Extensions.dll.refresh and b/Bin/Microsoft.Threading.Tasks.Extensions.dll.refresh differ diff --git a/Bin/Microsoft.Threading.Tasks.dll.refresh b/Bin/Microsoft.Threading.Tasks.dll.refresh index 9b20e6064..f32d755b8 100644 Binary files a/Bin/Microsoft.Threading.Tasks.dll.refresh and b/Bin/Microsoft.Threading.Tasks.dll.refresh differ diff --git a/Bin/Microsoft.Web.Infrastructure.dll.refresh b/Bin/Microsoft.Web.Infrastructure.dll.refresh index 0f05d5223..d2d10e56b 100644 --- a/Bin/Microsoft.Web.Infrastructure.dll.refresh +++ b/Bin/Microsoft.Web.Infrastructure.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll \ No newline at end of file +..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll \ No newline at end of file diff --git a/Bin/Microsoft.Web.XmlTransform.dll b/Bin/Microsoft.Web.XmlTransform.dll index 65769fa50..98c9d56ff 100644 Binary files a/Bin/Microsoft.Web.XmlTransform.dll and b/Bin/Microsoft.Web.XmlTransform.dll differ diff --git a/Bin/Microsoft.Web.XmlTransform.dll.refresh b/Bin/Microsoft.Web.XmlTransform.dll.refresh index b2ab5df52..64b0f1543 100644 --- a/Bin/Microsoft.Web.XmlTransform.dll.refresh +++ b/Bin/Microsoft.Web.XmlTransform.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.Web.Xdt.1.0.0\lib\net40\Microsoft.Web.XmlTransform.dll \ No newline at end of file +..\packages\Microsoft.Web.Xdt.2.1.1\lib\net40\Microsoft.Web.XmlTransform.dll \ No newline at end of file diff --git a/Bin/MoreLinq.dll.refresh b/Bin/MoreLinq.dll.refresh index 2c2b59e5e..246d956ef 100644 Binary files a/Bin/MoreLinq.dll.refresh and b/Bin/MoreLinq.dll.refresh differ diff --git a/Bin/Newtonsoft.Json.dll b/Bin/Newtonsoft.Json.dll index e4a63399d..7af125a24 100644 Binary files a/Bin/Newtonsoft.Json.dll and b/Bin/Newtonsoft.Json.dll differ diff --git a/Bin/Newtonsoft.Json.dll.refresh b/Bin/Newtonsoft.Json.dll.refresh index 7ea2fc3cc..691ec7f5e 100644 Binary files a/Bin/Newtonsoft.Json.dll.refresh and b/Bin/Newtonsoft.Json.dll.refresh differ diff --git a/Bin/Newtonsoft.Json.xml b/Bin/Newtonsoft.Json.xml index aa245c5e1..008e0ca23 100644 --- a/Bin/Newtonsoft.Json.xml +++ b/Bin/Newtonsoft.Json.xml @@ -2553,6 +2553,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -3012,7 +3014,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3328,7 +3330,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -7090,6 +7092,27 @@ The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -7985,6 +8008,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -8004,6 +8037,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Returns the responsible for binding operations performed on this object. diff --git a/Bin/NuGet.Core.dll b/Bin/NuGet.Core.dll index a0040d2a7..01ac73325 100644 Binary files a/Bin/NuGet.Core.dll and b/Bin/NuGet.Core.dll differ diff --git a/Bin/NuGet.Core.dll.refresh b/Bin/NuGet.Core.dll.refresh index 8b4724d5f..70f82bfe9 100644 --- a/Bin/NuGet.Core.dll.refresh +++ b/Bin/NuGet.Core.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\NuGet.Core.2.8.0\lib\net40-Client\NuGet.Core.dll \ No newline at end of file +..\packages\NuGet.Core.2.14.0\lib\net40-Client\NuGet.Core.dll \ No newline at end of file diff --git a/Bin/Owin.dll.refresh b/Bin/Owin.dll.refresh index 5781f891e..607601f50 100644 --- a/Bin/Owin.dll.refresh +++ b/Bin/Owin.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Owin.1.0\lib\net40\Owin.dll \ No newline at end of file +..\packages\Owin.1.0\lib\net40\Owin.dll \ No newline at end of file diff --git a/Bin/StackExchange.Redis.StrongName.dll.refresh b/Bin/StackExchange.Redis.StrongName.dll.refresh index 69e4a7844..fcd427412 100644 Binary files a/Bin/StackExchange.Redis.StrongName.dll.refresh and b/Bin/StackExchange.Redis.StrongName.dll.refresh differ diff --git a/Bin/System.Buffers.dll.refresh b/Bin/System.Buffers.dll.refresh index 9e47b925a..1871422d2 100644 --- a/Bin/System.Buffers.dll.refresh +++ b/Bin/System.Buffers.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll \ No newline at end of file +..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll \ No newline at end of file diff --git a/Bin/System.Collections.Immutable.dll.refresh b/Bin/System.Collections.Immutable.dll.refresh index fe7092133..22c1fa78e 100644 --- a/Bin/System.Collections.Immutable.dll.refresh +++ b/Bin/System.Collections.Immutable.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll \ No newline at end of file +..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll \ No newline at end of file diff --git a/Bin/System.ComponentModel.Annotations.dll.refresh b/Bin/System.ComponentModel.Annotations.dll.refresh index a5268168b..114f530ce 100644 --- a/Bin/System.ComponentModel.Annotations.dll.refresh +++ b/Bin/System.ComponentModel.Annotations.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll \ No newline at end of file +..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll \ No newline at end of file diff --git a/Bin/System.Data.SqlClient.dll.refresh b/Bin/System.Data.SqlClient.dll.refresh index 98c0c6373..67b20e256 100644 Binary files a/Bin/System.Data.SqlClient.dll.refresh and b/Bin/System.Data.SqlClient.dll.refresh differ diff --git a/Bin/System.Diagnostics.Debug.dll b/Bin/System.Diagnostics.Debug.dll new file mode 100644 index 000000000..b4b3aa5d9 Binary files /dev/null and b/Bin/System.Diagnostics.Debug.dll differ diff --git a/Bin/System.Diagnostics.DiagnosticSource.dll b/Bin/System.Diagnostics.DiagnosticSource.dll index e69fa32f6..8da941f2c 100644 Binary files a/Bin/System.Diagnostics.DiagnosticSource.dll and b/Bin/System.Diagnostics.DiagnosticSource.dll differ diff --git a/Bin/System.Diagnostics.DiagnosticSource.dll.refresh b/Bin/System.Diagnostics.DiagnosticSource.dll.refresh index 2ee9bbe23..3e3caedc4 100644 --- a/Bin/System.Diagnostics.DiagnosticSource.dll.refresh +++ b/Bin/System.Diagnostics.DiagnosticSource.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll \ No newline at end of file +..\packages\System.Diagnostics.DiagnosticSource.5.0.0\lib\net46\System.Diagnostics.DiagnosticSource.dll \ No newline at end of file diff --git a/Bin/System.Diagnostics.DiagnosticSource.xml b/Bin/System.Diagnostics.DiagnosticSource.xml index fe0a7d7c0..9edd0f184 100644 --- a/Bin/System.Diagnostics.DiagnosticSource.xml +++ b/Bin/System.Diagnostics.DiagnosticSource.xml @@ -11,10 +11,6 @@ Initializes a new instance of the class. The name of the operation. - - Gets the flags (defined by the W3C ID specification) associated with the activity. - the flags associated with the activity. - Updates the to have a new baggage item with the specified key and value. The baggage key. @@ -22,70 +18,48 @@ for convenient chaining. + + Adds the specified activity event to the events list. + The activity event to add. + + for convenient chaining. + + + Updates the activity to have a tag with an additional and . + The tag key name. + The tag value mapped to the input key. + + for convenient chaining. + - Updates the to have a new tag with the provided and . . + Updates the to have a new tag with the provided and . The tag key. The tag value. for convenient chaining. - - Gets a collection of key/value pairs that represents information that is passed to children of this . - An enumeration of string-string key-value pairs. + + Stops the activity if it is already started and notifies any event listeners. Nothing will happen otherwise. - - Gets or sets the current operation () for the current thread. This flows across async calls. - The current operation for the current thread. - - - Gets or sets the default ID format for the . - - - Gets the duration of the operation. - The delta between and the end time if the has ended ( or was called), or if the has not ended and was not called. - - - Gets or sets a valud that detrmines if the is always used to define the default ID format. - - to always use the ; otherwise, . + + When overriden by a derived type, this method releases any allocated resources. + + if the method is being called from the finalizer; if calling from user code. Returns the value of a key-value pair added to the activity with . The baggage key. The value of the key-value-pair item if it exists, or if it does not exist. - - Gets an identifier that is specific to a particular request. - The activity ID. + + Returns the object mapped to the specified property name. + The name associated to the object. + The object mapped to the property name, if one is found; otherwise, . - - Gets the format for the . - The format for the . - - - Gets the operation name. - The name of the operation. - - - Gets the parent that created this activity. - The parent of this , if it is from the same process, or if this instance has no parent (it is a root activity) or if the parent is from outside the process. - - - Gets the ID of this activity's parent. - The parent ID, if one exists, or if it does not. - - - Gets the parent's . - The parent's . - - - Gets a value that indicates whether the W3CIdFlags.Recorded flag is set. - - if the W3CIdFlags.Recorded flag is set; otherwise, . - - - Gets the root ID of this . - The root ID, or if the current instance has either a or an . + + Attaches any custom object to this activity. If the specified was previously associated with another object, the property will be updated to be associated with the new instead. It is recommended to use a unique property name to avoid conflicts with anyone using the same value. + The name to associate the value with. + The object to attach and map to the property name. Updates the to set its as the difference between and the specified stop time. @@ -119,21 +93,117 @@ for convenient chaining. - - Gets the SPAN part of the . - The ID for the SPAN part of , if the has the W3C format; otherwise, a zero . + + Adds or update the activity tag with the input key and value. + The tag key name. + The tag value mapped to the input key. + + for convenient chaining. Starts the activity. for convenient chaining. + + Stops the activity. + + + Gets the flags (defined by the W3C ID specification) associated with the activity. + the flags associated with the activity. + + + Gets a collection of key/value pairs that represents information that is passed to children of this . + An enumeration of string-string key-value pairs. + + + Gets the context of the activity. Context becomes valid only if the activity has been started. + The context of the activity, if the activity has been started; otherwise, returns the default context. + + + Gets or sets the current operation () for the current thread. This flows across async calls. + The current operation for the current thread. + + + Gets or sets the default ID format for the . + + + Gets or sets the display name of the activity. + A string that represents the activity display name. + + + Gets the duration of the operation. + The delta between and the end time if the has ended ( or was called), or if the has not ended and was not called. + + + Gets the list of all the activity events attached to this activity. + An enumeration of activity events attached to this activity. If the activity has no events, returns an empty enumeration. + + + Gets or sets a valud that detrmines if the is always used to define the default ID format. + + to always use the ; otherwise, . + + + Gets an identifier that is specific to a particular request. + The activity ID. + + + Gets the format for the . + The format for the . + + + Indicates if the this activity should be populated with all the propagation information, as well as all the other properties such as links, tags and events. + + if the activity should be populated; otherwise. + + + Gets the relationship between the activity, its parents, and its children in a trace. + One of the enumeration values that indicate relationship between the activity, its parents, and its children in a trace. + + + Gets the list of all the activity links attached to this activity. + An enumeration of activity links attached to this activity. If the activity has no links, returns an empty enumeration. + + + Gets the operation name. + The name of the operation. + + + Gets the parent that created this activity. + The parent of this , if it is from the same process, or if this instance has no parent (it is a root activity) or if the parent is from outside the process. + + + Gets the ID of this activity's parent. + The parent ID, if one exists, or if it does not. + + + Gets the parent's . + The parent's . + + + Gets a value that indicates whether the W3CIdFlags.Recorded flag is set. + + if the W3CIdFlags.Recorded flag is set; otherwise, . + + + Gets the root ID of this . + The root ID, or if the current instance has either a or an . + + + Get the activity source associated with this activity. + + + Gets the SPAN part of the . + The ID for the SPAN part of , if the has the W3C format; otherwise, a zero . + Gets the time when the operation started. The UTC time that the operation started. - - Stops the activity. + + Returns the list of tags representing information to log along with the activity. This information is not passed on to the children of this activity. + A key-value pair enumeration of tags and objects. Gets a collection of key/value pairs that represent information that will be logged along with the to the logging system. @@ -147,6 +217,146 @@ Gets the W3C header. The W3C header. + + A representation that conforms to the W3C TraceContext specification. It contains two identifiers: a TraceId and a SpanId, along with a set of common TraceFlags and system-specific TraceState values. + + + Construct a new activity context instance using the specified arguments. + A trace identifier. + A span identifier. + Contain details about the trace. + Carries system-specific configuration data. + Indicates if the context is propagated from a remote parent. + + + Indicates whether the current object is equal to another object of the same type. + The object to compare to this instance. + + if the current object is equal to the parameter; otherwise, . + + + Determines whether this instance and a specified object have the same value. + The object to compare to this instance. + + if the current object is equal to the parameter; otherwise, . + + + Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables. + A hash code for the current . + + + Determines whether two specified values are equal. + The first value to compare. + The second value to compare. + + if and are equal; otherwise, . + + + Determines whether two specified values are not equal. + The first value to compare. + The second value to compare. + + if and are not equal; otherwise, . + + + Parses a W3C trace context headers to an object. + The W3C trace parent header. + The trace state. + The trace parent is invalid. + The object created from the parsing operation. + + + Tries to parse the W3C trace context headers to an object. + The W3C trace parent header. + The W3C trace state. + When this method returns , the object created from the parsing operation. + + if the parsing was successful; otherwise. + + + Indicates if the activity context was propagated from a remote parent. + + if it was propagated from a remote parent; otherwise. + + + The Id of the request as known by the caller. + The Span Id in the context. + + + The flags defined by the W3C standard along with the ID for the activity. + The context tracing flags. + + + The trace identifier. + The tracing identifier in the context. + + + Holds the W3C 'tracestate' header. + A string representing the W3C 'tracestate' header. + + + Encapsulates all the information that is sent to the activity listener, to make decisions about the creation of the activity instance, as well as its state. + +The possible generic type parameters are or . + The type of the property. Should be either or . + + + Gets the activity kind which the activity will be created with. + One of the enumeration values that represent an activity kind. + + + Gets the enumeration of activity links that the activity will be created with. + An enumeration of activity links. + + + Gets the name to use as OperationName of the activity that will get created. + A string representing the activity name. + + + Gets the parent context or parent Id that the activity will get created with. + The parent of the activity, represented either as a or as an . + + + Gets the collection that is used to add more tags during the sampling process. The added tags are also added to the created Activity if it is decided that it should be created by the callbacks. + The Activity tags collection. + + + Gets the activity source that creates the activity. + An activity source object. + + + Gets the tags that the activity will be created with. + A key-value pair enumeration of tags associated with the activity. + + + Gets the trace Id to use in the Activity object if it is decided that it should be created by callbacks. + The trace Id. + + + Represents an event containing a name and a timestamp, as well as an optional list of tags. + + + Initializes a new activity event instance using the specified name and the current time as the event timestamp. + The event name. + + + Initializes a new activity event instance using the specified name, timestamp and tags. + The event name. + The event timestamp. Timestamp must only be used for the events that happened in the past, not at the moment of this call. + The event tags. + + + Gets the activity event name. + A string representing the activity event name. + + + Gets the collection of tags associated with the event. + A key-value pair enumeration containing the tags associated with the event. + + + Gets the activity event timestamp. + A datetime offset representing the activity event timestamp. + Specifies the format of the property. @@ -159,6 +369,172 @@ The W3C format. + + Describes the relationship between the activity, its parents and its children in a trace. + + + Outgoing request to the external component. + + + Output received from an external component. + + + Internal operation within an application, as opposed to operations with remote parents or children. This is the default value. + + + Output provided to external components. + + + Requests incoming from external component. + + + Activities may be linked to zero or more activity context instances that are causally related. + +Activity links can point to activity contexts inside a single trace or across different traces. + +Activity links can be used to represent batched operations where an activity was initiated by multiple initiating activities, each representing a single incoming item being processed in the batch. + + + Constructs a new activity link, which can be linked to an activity. + The trace activity context. + The key-value pair list of tags associated to the activity context. + + + Indicates whether the current activity link is equal to another activity link. + The activity link to compare. + + if the current activity link is equal to ; otherwise, . + + + Indicates whether the current activity link is equal to another object. + The object to compare. + + if the current activity link is equal to ; otherwise, . + + + Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables. + A hash code for the current . + + + Determines whether two specified values are equal. + The first value to compare. + The second value to compare. + + if and are equal; otherwise, . + + + Determines whether two specified values are not equal. + The first value to compare. + The second value to compare. + + if and are not equal; otherwise, . + + + Retrieves the activity context inside this activity link. + + + Retrieves the key-value pair enumeration of tags attached to the activity context. + An enumeration of tags attached to the activity context. + + + Allows listening to the start and stop activity events and gives the opportunity to decide creating an activity for sampling scenarios. + + + Construct a new activity listener object to start listeneing to the activity events. + + + Unregisters this activity listener object from listening to activity events. + + + Gets or sets the callback used to listen to the activity start event. + An activity callback instance used to listen to the activity start event. + + + Gets or sets the callback used to listen to the activity stop event. + An activity callback instance used to listen to the activity stop event. + + + Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed. + A sample activity instance. + + + Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed. + A sample activity instance. + + + Gets or sets the callback that allows deciding if activity object events that were created using the activity source object should be listened or not. + + to listen events; otherwise. + + + Enumeration values used by to indicate the amount of data to collect for the related . Requesting more data causes a greater performance overhead. + + + The activity object should be populated with all the propagation information and also all other properties such as Links, Tags, and Events. Using this value causes to return . + + + The activity object should be populated the same as the case. Additionally, Activity.Recorded is set to . For activities using the W3C trace ids, this sets a flag bit in the ID that will be propagated downstream requesting that the trace is recorded everywhere. + + + The activity object does not need to be created. + + + The activity object needs to be created. It will have a Name, a Source, an Id and Baggage. Other properties are unnecessary and will be ignored by this listener. + + + Provides APIs to create and start objects and to register objects to listen to the events. + + + Constructs an activity source object with the specified . + The name of the activity source object. + The version of the component publishing the tracing info. + + + Adds a listener to the activity starting and stopping events. + The activity listener object to use for listening to the activity events. + + + Disposes the activity source object, removes the current instance from the global list, and empties the listeners list. + + + Checks if there are any listeners for this activity source. + + if there is a listener registered for this activity source; otherwise, . + + + Creates a new activity if there are active listeners for it, using the specified name and activity kind. + The operation name of the activity. + The activity kind. + The created activity object, if it had active listeners, or if it has no event listeners. + + + Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent activity context, tags, optional activity link and optional start time. + The operation name of the activity. + The activity kind. + The parent object to initialize the created activity object with. + The optional tags list to initialize the created activity object with. + The optional list to initialize the created activity object with. + The optional start timestamp to set on the created activity object. + The created activity object, if it had active listeners, or if it has no event listeners. + + + Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent Id, tags, optional activity links and optional start time. + The operation name of the activity. + The activity kind. + The parent Id to initialize the created activity object with. + The optional tags list to initialize the created activity object with. + The optional list to initialize the created activity object with. + The optional start timestamp to set on the created activity object. + The created activity object, if it had active listeners, or if it has no event listeners. + + + Returns the activity source name. + A string that represents the activity source name. + + + Returns the activity source version. + A string that represents the activity source version. + Represents a formatted based on a W3C standard. @@ -169,18 +545,20 @@ Creates a new value from a read-only span of eight bytes. A read-only span of eight bytes. - The new span ID. does not contain eight bytes. + The new span ID. Creates a new value from a read-only span of 16 hexadecimal characters. A span that contains 16 hexadecimal characters. - The new span ID. does not contain 16 hexadecimal characters. + -or- + The characters in are not all lower-case hexadecimal characters or all zeros. + The new span ID. Creates a new value from a read-only span of UTF8-encoded bytes. @@ -223,12 +601,141 @@ The characters in are not all lower-case hexadecimal Returns a 16-character hexadecimal string that represents this span ID. - The 16-character hecxadecimal string representation of this span ID. + The 16-character hexadecimal string representation of this span ID. Returns a 16-character hexadecimal string that represents this span ID. The 16-character hexadecimal string representation of this span ID. + + ActivityTagsCollection is a collection class used to store tracing tags. + +This collection will be used with classes like and . + +This collection behaves as follows: +- The collection items will be ordered according to how they are added. +- Don't allow duplication of items with the same key. +- When using the indexer to store an item in the collection: + - If the item has a key that previously existed in the collection and the value is , the collection item matching the key will be removed from the collection. + - If the item has a key that previously existed in the collection and the value is not , the new item value will replace the old value stored in the collection. + - Otherwise, the item will be added to the collection. +- Add method will add a new item to the collection if an item doesn't already exist with the same key. Otherwise, it will throw an exception. + + + Create a new instance of the collection. + + + Create a new instance of the collection and store the input list items in the collection. + Initial list to store in the collection. + + + Adds an item to the collection + Key and value pair of the tag to add to the collection. + + already exists in the list. + + is . + + + Adds a tag with the provided key and value to the collection. This collection doesn't allow adding two tags with the same key. + The tag key. + The tag value. + + + Removes all items from the collection. + + + Determines whether the contains a specific value. + The object to locate in the . + + if is found in the ; otherwise, . + + + Determines whether the collection contains an element with the specified key. + The key to locate in the . + + if the collection contains tag with that key. otherwise. + + + Copies the elements of the collection to an array, starting at a particular array index. + The array that is the destination of the elements copied from collection. + The zero-based index in array at which copying begins. + + + Returns an enumerator that iterates through the collection. + An enumerator for the . + + + Removes the first occurrence of a specific item from the collection. + The tag key value pair to remove. + + if item was successfully removed from the collection; otherwise, . This method also returns if item is not found in the original collection. + + + Removes the tag with the specified key from the collection. + The tag key. + + if the item existed and removed. otherwise. + + + Returns an enumerator that iterates through the collection. + An enumerator that can be used to iterate through the collection. + + + Returns an enumerator that iterates through the collection. + An object that can be used to iterate through the collection. + + + Gets the value associated with the specified key. + The tag key. + The tag value. + When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized. + + + Gets the number of elements contained in the collection. + + + Gets a value indicating whether the collection is read-only. This always returns . + Always returns . + + + Gets or sets a specified collection item. + + When setting a value to this indexer property, the following behavior is observed: +- If the key previously existed in the collection and the value is , the collection item matching the key will get removed from the collection. +- If the key previously existed in the collection and the value is not , the value will replace the old value stored in the collection. +- Otherwise, a new item will get added to the collection. + The key of the value to get or set. + The object mapped to the key. + + + Get the list of the keys of all stored tags. + + + Get the list of the values of all stored tags. + + + Enumerates the elements of an . + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + Advances the enumerator to the next element of the collection. + + if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + + + Gets the element in the collection at the current position of the enumerator. + The element in the collection at the current position of the enumerator. + Specifies flags defined by the W3C standard that are associated with an activity. @@ -248,18 +755,20 @@ The characters in are not all lower-case hexadecimal Creates a new value from a read-only span of 16 bytes. A read-only span of 16 bytes. - The new trace ID. does not contain eight bytes. + The new trace ID. Creates a new value from a read-only span of 32 hexadecimal characters. A span that contains 32 hexadecimal characters. - The new trace ID. does not contain 16 hexadecimal characters. + -or- + The characters in are not all lower-case hexadecimal characters or all zeros. + The new trace ID. Creates a new value from a read-only span of UTF8-encoded bytes. @@ -306,7 +815,7 @@ The characters in are not all lower-case hexadecimal Returns a 32-character hexadecimal string that represents this trace ID. - The 32-character hecxadecimal string representation of this trace ID. + The 32-character hexadecimal string representation of this trace ID. Provides an implementation of the abstract class that represents a named place to which a source sends its information (events). @@ -315,9 +824,6 @@ The characters in are not all lower-case hexadecimal Creates a new . The name of this . - - Gets the collection of listeners for this . - Disposes the NotificationListeners. @@ -328,22 +834,18 @@ The characters in are not all lower-case hexadecimal Checks whether the is enabled. - + The name of the event to check. if notifications are enabled; otherwise, . - Checks if the DiagnosticListener is enabled. - - - + Checks if any subscriber to the diagnostic events is interested in receiving events with this name. Subscribers indicate their interest using a delegate provided in . + The name of the event to check. + The object that represents a context. + The object that represents a context. if it is enabled, otherwise. - - Gets the name of this . - The name of the . - Invokes the OnActivityExport method of all the subscribers. The activity affected by an external event. @@ -388,6 +890,13 @@ The characters in are not all lower-case hexadecimal The name of the event to log. An object that represents the payload for the event. + + Gets the collection of listeners for this . + + + Gets the name of this . + The name of the . + An abstract class that allows code to be instrumented for production-time logging of rich data payloads for consumption within the process that was instrumented. @@ -434,5 +943,11 @@ The characters in are not all lower-case hexadecimal The name of the event being written. An object that represents the value being passed as a payload for the event. This is often an anonymous type which contains several sub-values. + + A delegate that defines the signature of the callbacks used in the sampling process. + The Activity creation options used by callbacks to decide creating the Activity object or not. + The type of the requested parent to create the Activity object with. Should be either a string or an instance. + An object containing the sampling results, which indicate the amount of data to collect for the related . + \ No newline at end of file diff --git a/Bin/System.Drawing.Common.dll.refresh b/Bin/System.Drawing.Common.dll.refresh new file mode 100644 index 000000000..601fb6b35 --- /dev/null +++ b/Bin/System.Drawing.Common.dll.refresh @@ -0,0 +1 @@ +..\packages\System.Drawing.Common.5.0.2\lib\net461\System.Drawing.Common.dll \ No newline at end of file diff --git a/Bin/System.Globalization.dll b/Bin/System.Globalization.dll new file mode 100644 index 000000000..2fc110d0d Binary files /dev/null and b/Bin/System.Globalization.dll differ diff --git a/Bin/System.IO.FileSystem.Primitives.dll.refresh b/Bin/System.IO.FileSystem.Primitives.dll.refresh index 92490d347..bfe322679 100644 Binary files a/Bin/System.IO.FileSystem.Primitives.dll.refresh and b/Bin/System.IO.FileSystem.Primitives.dll.refresh differ diff --git a/Bin/System.IO.Packaging.dll.refresh b/Bin/System.IO.Packaging.dll.refresh index a8f3e533c..8d2ee180d 100644 Binary files a/Bin/System.IO.Packaging.dll.refresh and b/Bin/System.IO.Packaging.dll.refresh differ diff --git a/Bin/System.IdentityModel.Tokens.Jwt.dll b/Bin/System.IdentityModel.Tokens.Jwt.dll index d48bf0826..e19f7126d 100644 Binary files a/Bin/System.IdentityModel.Tokens.Jwt.dll and b/Bin/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/Bin/System.IdentityModel.Tokens.Jwt.dll.refresh b/Bin/System.IdentityModel.Tokens.Jwt.dll.refresh new file mode 100644 index 000000000..164b0c5ca --- /dev/null +++ b/Bin/System.IdentityModel.Tokens.Jwt.dll.refresh @@ -0,0 +1 @@ +..\packages\System.IdentityModel.Tokens.Jwt.6.11.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll \ No newline at end of file diff --git a/Bin/System.Memory.dll.refresh b/Bin/System.Memory.dll.refresh index 9dd2ab1f6..b80f9aaea 100644 --- a/Bin/System.Memory.dll.refresh +++ b/Bin/System.Memory.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll \ No newline at end of file +..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll \ No newline at end of file diff --git a/Bin/System.Net.Http.Formatting.dll.refresh b/Bin/System.Net.Http.Formatting.dll.refresh new file mode 100644 index 000000000..ed212e82a --- /dev/null +++ b/Bin/System.Net.Http.Formatting.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.AspNet.WebApi.Client.5.2.6\lib\net45\System.Net.Http.Formatting.dll \ No newline at end of file diff --git a/Bin/System.Numerics.Vectors.dll.refresh b/Bin/System.Numerics.Vectors.dll.refresh index 83102c12f..0d4de274a 100644 --- a/Bin/System.Numerics.Vectors.dll.refresh +++ b/Bin/System.Numerics.Vectors.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll \ No newline at end of file +..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll \ No newline at end of file diff --git a/Bin/System.Reflection.dll b/Bin/System.Reflection.dll new file mode 100644 index 000000000..41b02545f Binary files /dev/null and b/Bin/System.Reflection.dll differ diff --git a/Bin/System.Resources.ResourceManager.dll b/Bin/System.Resources.ResourceManager.dll new file mode 100644 index 000000000..ae7001799 Binary files /dev/null and b/Bin/System.Resources.ResourceManager.dll differ diff --git a/Bin/System.Runtime.CompilerServices.Unsafe.dll.refresh b/Bin/System.Runtime.CompilerServices.Unsafe.dll.refresh index 017b2a2b7..2c5b3b5fe 100644 Binary files a/Bin/System.Runtime.CompilerServices.Unsafe.dll.refresh and b/Bin/System.Runtime.CompilerServices.Unsafe.dll.refresh differ diff --git a/Bin/System.Runtime.Extensions.dll b/Bin/System.Runtime.Extensions.dll new file mode 100644 index 000000000..04323f961 Binary files /dev/null and b/Bin/System.Runtime.Extensions.dll differ diff --git a/Bin/System.Runtime.InteropServices.dll b/Bin/System.Runtime.InteropServices.dll new file mode 100644 index 000000000..8f1c513d7 Binary files /dev/null and b/Bin/System.Runtime.InteropServices.dll differ diff --git a/Bin/System.Runtime.dll b/Bin/System.Runtime.dll index 76d25c41e..ee5d68452 100644 Binary files a/Bin/System.Runtime.dll and b/Bin/System.Runtime.dll differ diff --git a/Bin/System.Text.Encodings.Web.dll.refresh b/Bin/System.Text.Encodings.Web.dll.refresh index 1d7c44d59..e62151f5d 100644 --- a/Bin/System.Text.Encodings.Web.dll.refresh +++ b/Bin/System.Text.Encodings.Web.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.Text.Encodings.Web.5.0.1\lib\net461\System.Text.Encodings.Web.dll \ No newline at end of file +..\packages\System.Text.Encodings.Web.5.0.1\lib\net461\System.Text.Encodings.Web.dll \ No newline at end of file diff --git a/Bin/System.Text.Json.dll.refresh b/Bin/System.Text.Json.dll.refresh index ac4c7142e..b7f3e3136 100644 --- a/Bin/System.Text.Json.dll.refresh +++ b/Bin/System.Text.Json.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.Text.Json.5.0.2\lib\net461\System.Text.Json.dll \ No newline at end of file +..\packages\System.Text.Json.5.0.2\lib\net461\System.Text.Json.dll \ No newline at end of file diff --git a/Bin/System.Threading.Tasks.Extensions.dll.refresh b/Bin/System.Threading.Tasks.Extensions.dll.refresh index 3bde29d1b..23f0d54fe 100644 --- a/Bin/System.Threading.Tasks.Extensions.dll.refresh +++ b/Bin/System.Threading.Tasks.Extensions.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll \ No newline at end of file +..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll \ No newline at end of file diff --git a/Bin/System.Threading.Tasks.dll b/Bin/System.Threading.Tasks.dll index 507bd3443..58bafa77e 100644 Binary files a/Bin/System.Threading.Tasks.dll and b/Bin/System.Threading.Tasks.dll differ diff --git a/Bin/System.ValueTuple.dll b/Bin/System.ValueTuple.dll index 1cadbf3ee..4ce28fdea 100644 Binary files a/Bin/System.ValueTuple.dll and b/Bin/System.ValueTuple.dll differ diff --git a/Bin/System.ValueTuple.dll.refresh b/Bin/System.ValueTuple.dll.refresh index fa313a698..1229cc4c7 100644 --- a/Bin/System.ValueTuple.dll.refresh +++ b/Bin/System.ValueTuple.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll \ No newline at end of file +..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll \ No newline at end of file diff --git a/Bin/System.ValueTuple.xml b/Bin/System.ValueTuple.xml index 6dcce66fd..1151832fc 100644 --- a/Bin/System.ValueTuple.xml +++ b/Bin/System.ValueTuple.xml @@ -4,1296 +4,5 @@ System.ValueTuple - - - Indicates that the use of on a member is meant to be treated as a tuple with element names. - - - - - Initializes a new instance of the class. - - - Specifies, in a pre-order depth-first traversal of a type's - construction, which occurrences are - meant to carry element names. - - - This constructor is meant to be used on types that contain an - instantiation of that contains - element names. For instance, if C is a generic type with - two type parameters, then a use of the constructed type C{, might be intended to - treat the first type argument as a tuple with element names and the - second as a tuple without element names. In which case, the - appropriate attribute specification should use a - transformNames value of { "name1", "name2", null, null, - null }. - - - - - Specifies, in a pre-order depth-first traversal of a type's - construction, which elements are - meant to carry element names. - - - - - Provides extension methods for instances to interop with C# tuples features (deconstruction syntax, converting from and to ). - - - - - Deconstruct a properly nested with 1 elements. - - - - - Deconstruct a properly nested with 2 elements. - - - - - Deconstruct a properly nested with 3 elements. - - - - - Deconstruct a properly nested with 4 elements. - - - - - Deconstruct a properly nested with 5 elements. - - - - - Deconstruct a properly nested with 6 elements. - - - - - Deconstruct a properly nested with 7 elements. - - - - - Deconstruct a properly nested with 8 elements. - - - - - Deconstruct a properly nested with 9 elements. - - - - - Deconstruct a properly nested with 10 elements. - - - - - Deconstruct a properly nested with 11 elements. - - - - - Deconstruct a properly nested with 12 elements. - - - - - Deconstruct a properly nested with 13 elements. - - - - - Deconstruct a properly nested with 14 elements. - - - - - Deconstruct a properly nested with 15 elements. - - - - - Deconstruct a properly nested with 16 elements. - - - - - Deconstruct a properly nested with 17 elements. - - - - - Deconstruct a properly nested with 18 elements. - - - - - Deconstruct a properly nested with 19 elements. - - - - - Deconstruct a properly nested with 20 elements. - - - - - Deconstruct a properly nested with 21 elements. - - - - - Make a properly nested from a properly nested with 1 element. - - - - - Make a properly nested from a properly nested with 2 elements. - - - - - Make a properly nested from a properly nested with 3 elements. - - - - - Make a properly nested from a properly nested with 4 elements. - - - - - Make a properly nested from a properly nested with 5 elements. - - - - - Make a properly nested from a properly nested with 6 elements. - - - - - Make a properly nested from a properly nested with 7 elements. - - - - - Make a properly nested from a properly nested with 8 elements. - - - - - Make a properly nested from a properly nested with 9 elements. - - - - - Make a properly nested from a properly nested with 10 elements. - - - - - Make a properly nested from a properly nested with 11 elements. - - - - - Make a properly nested from a properly nested with 12 elements. - - - - - Make a properly nested from a properly nested with 13 elements. - - - - - Make a properly nested from a properly nested with 14 elements. - - - - - Make a properly nested from a properly nested with 15 elements. - - - - - Make a properly nested from a properly nested with 16 elements. - - - - - Make a properly nested from a properly nested with 17 elements. - - - - - Make a properly nested from a properly nested with 18 elements. - - - - - Make a properly nested from a properly nested with 19 elements. - - - - - Make a properly nested from a properly nested with 20 elements. - - - - - Make a properly nested from a properly nested with 21 elements. - - - - - Make a properly nested from a properly nested with 1 element. - - - - - Make a properly nested from a properly nested with 2 elements. - - - - - Make a properly nested from a properly nested with 3 elements. - - - - - Make a properly nested from a properly nested with 4 elements. - - - - - Make a properly nested from a properly nested with 5 elements. - - - - - Make a properly nested from a properly nested with 6 elements. - - - - - Make a properly nested from a properly nested with 7 elements. - - - - - Make a properly nested from a properly nested with 8 elements. - - - - - Make a properly nested from a properly nested with 9 elements. - - - - - Make a properly nested from a properly nested with 10 elements. - - - - - Make a properly nested from a properly nested with 11 elements. - - - - - Make a properly nested from a properly nested with 12 elements. - - - - - Make a properly nested from a properly nested with 13 elements. - - - - - Make a properly nested from a properly nested with 14 elements. - - - - - Make a properly nested from a properly nested with 15 elements. - - - - - Make a properly nested from a properly nested with 16 elements. - - - - - Make a properly nested from a properly nested with 17 elements. - - - - - Make a properly nested from a properly nested with 18 elements. - - - - - Make a properly nested from a properly nested with 19 elements. - - - - - Make a properly nested from a properly nested with 20 elements. - - - - - Make a properly nested from a properly nested with 21 elements. - - - - - Helper so we can call some tuple methods recursively without knowing the underlying types. - - - - - The ValueTuple types (from arity 0 to 8) comprise the runtime implementation that underlies tuples in C# and struct tuples in F#. - Aside from created via language syntax, they are most easily created via the ValueTuple.Create factory methods. - The System.ValueTuple types differ from the System.Tuple types in that: - - they are structs rather than classes, - - they are mutable rather than readonly, and - - their members (such as Item1, Item2, etc) are fields rather than properties. - - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if is a . - - - Returns a value indicating whether this instance is equal to a specified value. - An instance to compare to this instance. - true if has the same value as this instance; otherwise, false. - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - Returns the hash code for this instance. - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (). - - - - Creates a new struct 0-tuple. - A 0-tuple. - - - Creates a new struct 1-tuple, or singleton. - The type of the first component of the tuple. - The value of the first component of the tuple. - A 1-tuple (singleton) whose value is (item1). - - - Creates a new struct 2-tuple, or pair. - The type of the first component of the tuple. - The type of the second component of the tuple. - The value of the first component of the tuple. - The value of the second component of the tuple. - A 2-tuple (pair) whose value is (item1, item2). - - - Creates a new struct 3-tuple, or triple. - The type of the first component of the tuple. - The type of the second component of the tuple. - The type of the third component of the tuple. - The value of the first component of the tuple. - The value of the second component of the tuple. - The value of the third component of the tuple. - A 3-tuple (triple) whose value is (item1, item2, item3). - - - Creates a new struct 4-tuple, or quadruple. - The type of the first component of the tuple. - The type of the second component of the tuple. - The type of the third component of the tuple. - The type of the fourth component of the tuple. - The value of the first component of the tuple. - The value of the second component of the tuple. - The value of the third component of the tuple. - The value of the fourth component of the tuple. - A 4-tuple (quadruple) whose value is (item1, item2, item3, item4). - - - Creates a new struct 5-tuple, or quintuple. - The type of the first component of the tuple. - The type of the second component of the tuple. - The type of the third component of the tuple. - The type of the fourth component of the tuple. - The type of the fifth component of the tuple. - The value of the first component of the tuple. - The value of the second component of the tuple. - The value of the third component of the tuple. - The value of the fourth component of the tuple. - The value of the fifth component of the tuple. - A 5-tuple (quintuple) whose value is (item1, item2, item3, item4, item5). - - - Creates a new struct 6-tuple, or sextuple. - The type of the first component of the tuple. - The type of the second component of the tuple. - The type of the third component of the tuple. - The type of the fourth component of the tuple. - The type of the fifth component of the tuple. - The type of the sixth component of the tuple. - The value of the first component of the tuple. - The value of the second component of the tuple. - The value of the third component of the tuple. - The value of the fourth component of the tuple. - The value of the fifth component of the tuple. - The value of the sixth component of the tuple. - A 6-tuple (sextuple) whose value is (item1, item2, item3, item4, item5, item6). - - - Creates a new struct 7-tuple, or septuple. - The type of the first component of the tuple. - The type of the second component of the tuple. - The type of the third component of the tuple. - The type of the fourth component of the tuple. - The type of the fifth component of the tuple. - The type of the sixth component of the tuple. - The type of the seventh component of the tuple. - The value of the first component of the tuple. - The value of the second component of the tuple. - The value of the third component of the tuple. - The value of the fourth component of the tuple. - The value of the fifth component of the tuple. - The value of the sixth component of the tuple. - The value of the seventh component of the tuple. - A 7-tuple (septuple) whose value is (item1, item2, item3, item4, item5, item6, item7). - - - Creates a new struct 8-tuple, or octuple. - The type of the first component of the tuple. - The type of the second component of the tuple. - The type of the third component of the tuple. - The type of the fourth component of the tuple. - The type of the fifth component of the tuple. - The type of the sixth component of the tuple. - The type of the seventh component of the tuple. - The type of the eighth component of the tuple. - The value of the first component of the tuple. - The value of the second component of the tuple. - The value of the third component of the tuple. - The value of the fourth component of the tuple. - The value of the fifth component of the tuple. - The value of the sixth component of the tuple. - The value of the seventh component of the tuple. - The value of the eighth component of the tuple. - An 8-tuple (octuple) whose value is (item1, item2, item3, item4, item5, item6, item7, item8). - - - Represents a 1-tuple, or singleton, as a value type. - The type of the tuple's only component. - - - - The current instance's first component. - - - - - Initializes a new instance of the value type. - - The value of the tuple's first component. - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if the current instance is equal to the specified object; otherwise, . - - The parameter is considered to be equal to the current instance under the following conditions: - - It is a value type. - Its components are of the same types as those of the current instance. - Its components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component. - - - - - - Returns a value that indicates whether the current - instance is equal to a specified . - - The tuple to compare with this instance. - if the current instance is equal to the specified tuple; otherwise, . - - The parameter is considered to be equal to the current instance if each of its field - is equal to that of the current instance, using the default comparer for that field's type. - - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - - Returns the hash code for the current instance. - - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (Item1), - where Item1 represents the value of . If the field is , - it is represented as . - - - - - Represents a 2-tuple, or pair, as a value type. - - The type of the tuple's first component. - The type of the tuple's second component. - - - - The current instance's first component. - - - - - The current instance's second component. - - - - - Initializes a new instance of the value type. - - The value of the tuple's first component. - The value of the tuple's second component. - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if the current instance is equal to the specified object; otherwise, . - - - The parameter is considered to be equal to the current instance under the following conditions: - - It is a value type. - Its components are of the same types as those of the current instance. - Its components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component. - - - - - - Returns a value that indicates whether the current instance is equal to a specified . - - The tuple to compare with this instance. - if the current instance is equal to the specified tuple; otherwise, . - - The parameter is considered to be equal to the current instance if each of its fields - are equal to that of the current instance, using the default comparer for that field's type. - - - - - Returns a value that indicates whether the current instance is equal to a specified object based on a specified comparison method. - - The object to compare with this instance. - An object that defines the method to use to evaluate whether the two objects are equal. - if the current instance is equal to the specified object; otherwise, . - - - This member is an explicit interface member implementation. It can be used only when the - instance is cast to an interface. - - The implementation is called only if other is not , - and if it can be successfully cast (in C#) or converted (in Visual Basic) to a - whose components are of the same types as those of the current instance. The IStructuralEquatable.Equals(Object, IEqualityComparer) method - first passes the values of the objects to be compared to the - implementation. If this method call returns , the method is - called again and passed the values of the two instances. - - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - - Returns the hash code for the current instance. - - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (Item1, Item2), - where Item1 and Item2 represent the values of the - and fields. If either field value is , - it is represented as . - - - - - Represents a 3-tuple, or triple, as a value type. - - The type of the tuple's first component. - The type of the tuple's second component. - The type of the tuple's third component. - - - - The current instance's first component. - - - - - The current instance's second component. - - - - - The current instance's third component. - - - - - Initializes a new instance of the value type. - - The value of the tuple's first component. - The value of the tuple's second component. - The value of the tuple's third component. - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if the current instance is equal to the specified object; otherwise, . - - The parameter is considered to be equal to the current instance under the following conditions: - - It is a value type. - Its components are of the same types as those of the current instance. - Its components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component. - - - - - - Returns a value that indicates whether the current - instance is equal to a specified . - - The tuple to compare with this instance. - if the current instance is equal to the specified tuple; otherwise, . - - The parameter is considered to be equal to the current instance if each of its fields - are equal to that of the current instance, using the default comparer for that field's type. - - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - - Returns the hash code for the current instance. - - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (Item1, Item2, Item3). - If any field value is , it is represented as . - - - - - Represents a 4-tuple, or quadruple, as a value type. - - The type of the tuple's first component. - The type of the tuple's second component. - The type of the tuple's third component. - The type of the tuple's fourth component. - - - - The current instance's first component. - - - - - The current instance's second component. - - - - - The current instance's third component. - - - - - The current instance's fourth component. - - - - - Initializes a new instance of the value type. - - The value of the tuple's first component. - The value of the tuple's second component. - The value of the tuple's third component. - The value of the tuple's fourth component. - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if the current instance is equal to the specified object; otherwise, . - - The parameter is considered to be equal to the current instance under the following conditions: - - It is a value type. - Its components are of the same types as those of the current instance. - Its components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component. - - - - - - Returns a value that indicates whether the current - instance is equal to a specified . - - The tuple to compare with this instance. - if the current instance is equal to the specified tuple; otherwise, . - - The parameter is considered to be equal to the current instance if each of its fields - are equal to that of the current instance, using the default comparer for that field's type. - - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - - Returns the hash code for the current instance. - - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (Item1, Item2, Item3, Item4). - If any field value is , it is represented as . - - - - - Represents a 5-tuple, or quintuple, as a value type. - - The type of the tuple's first component. - The type of the tuple's second component. - The type of the tuple's third component. - The type of the tuple's fourth component. - The type of the tuple's fifth component. - - - - The current instance's first component. - - - - - The current instance's second component. - - - - - The current instance's third component. - - - - - The current instance's fourth component. - - - - - The current instance's fifth component. - - - - - Initializes a new instance of the value type. - - The value of the tuple's first component. - The value of the tuple's second component. - The value of the tuple's third component. - The value of the tuple's fourth component. - The value of the tuple's fifth component. - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if the current instance is equal to the specified object; otherwise, . - - The parameter is considered to be equal to the current instance under the following conditions: - - It is a value type. - Its components are of the same types as those of the current instance. - Its components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component. - - - - - - Returns a value that indicates whether the current - instance is equal to a specified . - - The tuple to compare with this instance. - if the current instance is equal to the specified tuple; otherwise, . - - The parameter is considered to be equal to the current instance if each of its fields - are equal to that of the current instance, using the default comparer for that field's type. - - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - - Returns the hash code for the current instance. - - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (Item1, Item2, Item3, Item4, Item5). - If any field value is , it is represented as . - - - - - Represents a 6-tuple, or sixtuple, as a value type. - - The type of the tuple's first component. - The type of the tuple's second component. - The type of the tuple's third component. - The type of the tuple's fourth component. - The type of the tuple's fifth component. - The type of the tuple's sixth component. - - - - The current instance's first component. - - - - - The current instance's second component. - - - - - The current instance's third component. - - - - - The current instance's fourth component. - - - - - The current instance's fifth component. - - - - - The current instance's sixth component. - - - - - Initializes a new instance of the value type. - - The value of the tuple's first component. - The value of the tuple's second component. - The value of the tuple's third component. - The value of the tuple's fourth component. - The value of the tuple's fifth component. - The value of the tuple's sixth component. - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if the current instance is equal to the specified object; otherwise, . - - The parameter is considered to be equal to the current instance under the following conditions: - - It is a value type. - Its components are of the same types as those of the current instance. - Its components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component. - - - - - - Returns a value that indicates whether the current - instance is equal to a specified . - - The tuple to compare with this instance. - if the current instance is equal to the specified tuple; otherwise, . - - The parameter is considered to be equal to the current instance if each of its fields - are equal to that of the current instance, using the default comparer for that field's type. - - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - - Returns the hash code for the current instance. - - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (Item1, Item2, Item3, Item4, Item5, Item6). - If any field value is , it is represented as . - - - - - Represents a 7-tuple, or sentuple, as a value type. - - The type of the tuple's first component. - The type of the tuple's second component. - The type of the tuple's third component. - The type of the tuple's fourth component. - The type of the tuple's fifth component. - The type of the tuple's sixth component. - The type of the tuple's seventh component. - - - - The current instance's first component. - - - - - The current instance's second component. - - - - - The current instance's third component. - - - - - The current instance's fourth component. - - - - - The current instance's fifth component. - - - - - The current instance's sixth component. - - - - - The current instance's seventh component. - - - - - Initializes a new instance of the value type. - - The value of the tuple's first component. - The value of the tuple's second component. - The value of the tuple's third component. - The value of the tuple's fourth component. - The value of the tuple's fifth component. - The value of the tuple's sixth component. - The value of the tuple's seventh component. - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if the current instance is equal to the specified object; otherwise, . - - The parameter is considered to be equal to the current instance under the following conditions: - - It is a value type. - Its components are of the same types as those of the current instance. - Its components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component. - - - - - - Returns a value that indicates whether the current - instance is equal to a specified . - - The tuple to compare with this instance. - if the current instance is equal to the specified tuple; otherwise, . - - The parameter is considered to be equal to the current instance if each of its fields - are equal to that of the current instance, using the default comparer for that field's type. - - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - - Returns the hash code for the current instance. - - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (Item1, Item2, Item3, Item4, Item5, Item6, Item7). - If any field value is , it is represented as . - - - - - Represents an 8-tuple, or octuple, as a value type. - - The type of the tuple's first component. - The type of the tuple's second component. - The type of the tuple's third component. - The type of the tuple's fourth component. - The type of the tuple's fifth component. - The type of the tuple's sixth component. - The type of the tuple's seventh component. - The type of the tuple's eighth component. - - - - The current instance's first component. - - - - - The current instance's second component. - - - - - The current instance's third component. - - - - - The current instance's fourth component. - - - - - The current instance's fifth component. - - - - - The current instance's sixth component. - - - - - The current instance's seventh component. - - - - - The current instance's eighth component. - - - - - Initializes a new instance of the value type. - - The value of the tuple's first component. - The value of the tuple's second component. - The value of the tuple's third component. - The value of the tuple's fourth component. - The value of the tuple's fifth component. - The value of the tuple's sixth component. - The value of the tuple's seventh component. - The value of the tuple's eight component. - - - - Returns a value that indicates whether the current instance is equal to a specified object. - - The object to compare with this instance. - if the current instance is equal to the specified object; otherwise, . - - The parameter is considered to be equal to the current instance under the following conditions: - - It is a value type. - Its components are of the same types as those of the current instance. - Its components are equal to those of the current instance. Equality is determined by the default object equality comparer for each component. - - - - - - Returns a value that indicates whether the current - instance is equal to a specified . - - The tuple to compare with this instance. - if the current instance is equal to the specified tuple; otherwise, . - - The parameter is considered to be equal to the current instance if each of its fields - are equal to that of the current instance, using the default comparer for that field's type. - - - - Compares this instance to a specified instance and returns an indication of their relative values. - An instance to compare. - - A signed number indicating the relative values of this instance and . - Returns less than zero if this instance is less than , zero if this - instance is equal to , and greater than zero if this instance is greater - than . - - - - - Returns the hash code for the current instance. - - A 32-bit signed integer hash code. - - - - Returns a string that represents the value of this instance. - - The string representation of this instance. - - The string returned by this method takes the form (Item1, Item2, Item3, Item4, Item5, Item6, Item7, Rest). - If any field value is , it is represented as . - - diff --git a/Bin/System.Web.Http.WebHost.dll b/Bin/System.Web.Http.WebHost.dll index 0bfea884a..69952a1aa 100644 Binary files a/Bin/System.Web.Http.WebHost.dll and b/Bin/System.Web.Http.WebHost.dll differ diff --git a/Bin/System.Web.Http.WebHost.dll.refresh b/Bin/System.Web.Http.WebHost.dll.refresh new file mode 100644 index 000000000..f4a655428 --- /dev/null +++ b/Bin/System.Web.Http.WebHost.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.4\lib\net45\System.Web.Http.WebHost.dll \ No newline at end of file diff --git a/Bin/System.Web.Http.dll.refresh b/Bin/System.Web.Http.dll.refresh new file mode 100644 index 000000000..cd95f3fd9 --- /dev/null +++ b/Bin/System.Web.Http.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.AspNet.WebApi.Core.5.2.6\lib\net45\System.Web.Http.dll \ No newline at end of file diff --git a/Bin/System.Web.Optimization.dll.refresh b/Bin/System.Web.Optimization.dll.refresh index 7159da811..29caf8d30 100644 --- a/Bin/System.Web.Optimization.dll.refresh +++ b/Bin/System.Web.Optimization.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll \ No newline at end of file +..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll \ No newline at end of file diff --git a/Bin/WebGrease.dll.refresh b/Bin/WebGrease.dll.refresh index 3eda72e78..817f68c04 100644 --- a/Bin/WebGrease.dll.refresh +++ b/Bin/WebGrease.dll.refresh @@ -1 +1 @@ -C:\Users\Caudillo\source\repos\localhost_85\packages\WebGrease.1.6.0\lib\WebGrease.dll \ No newline at end of file +..\packages\WebGrease.1.6.0\lib\WebGrease.dll \ No newline at end of file diff --git a/Bin/de/Microsoft.ReportViewer.Common.resources.dll b/Bin/de/Microsoft.ReportViewer.Common.resources.dll index 4f2987a11..dd9c8ed5b 100644 Binary files a/Bin/de/Microsoft.ReportViewer.Common.resources.dll and b/Bin/de/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/de/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/de/Microsoft.ReportViewer.DataVisualization.resources.dll index 0aefdbc24..990d503d2 100644 Binary files a/Bin/de/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/de/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/de/Microsoft.ReportViewer.Design.resources.dll b/Bin/de/Microsoft.ReportViewer.Design.resources.dll index 3e9d10a67..313817ce9 100644 Binary files a/Bin/de/Microsoft.ReportViewer.Design.resources.dll and b/Bin/de/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/de/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/de/Microsoft.ReportViewer.WebDesign.resources.dll index 0083c3735..662e11c9d 100644 Binary files a/Bin/de/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/de/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/de/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/de/Microsoft.ReportViewer.WebForms.resources.dll index 212e2ef9f..68952abbd 100644 Binary files a/Bin/de/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/de/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/de/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/de/Microsoft.ReportViewer.WinForms.resources.dll index e2e0fbfb1..a30ecbf2b 100644 Binary files a/Bin/de/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/de/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/es/Microsoft.ReportViewer.Common.resources.dll b/Bin/es/Microsoft.ReportViewer.Common.resources.dll index 46148f3c9..1b42a78a3 100644 Binary files a/Bin/es/Microsoft.ReportViewer.Common.resources.dll and b/Bin/es/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/es/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/es/Microsoft.ReportViewer.DataVisualization.resources.dll index aae634a35..0b5bb4da4 100644 Binary files a/Bin/es/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/es/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/es/Microsoft.ReportViewer.Design.resources.dll b/Bin/es/Microsoft.ReportViewer.Design.resources.dll index 910ec178f..968817034 100644 Binary files a/Bin/es/Microsoft.ReportViewer.Design.resources.dll and b/Bin/es/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/es/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/es/Microsoft.ReportViewer.WebDesign.resources.dll index 3d6c17cff..12b73e755 100644 Binary files a/Bin/es/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/es/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/es/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/es/Microsoft.ReportViewer.WebForms.resources.dll index d06338dd4..797cbc032 100644 Binary files a/Bin/es/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/es/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/es/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/es/Microsoft.ReportViewer.WinForms.resources.dll index 279cf82c7..b1bdcaaea 100644 Binary files a/Bin/es/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/es/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/fr/Microsoft.ReportViewer.Common.resources.dll b/Bin/fr/Microsoft.ReportViewer.Common.resources.dll index e32566bb5..91049cb67 100644 Binary files a/Bin/fr/Microsoft.ReportViewer.Common.resources.dll and b/Bin/fr/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/fr/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/fr/Microsoft.ReportViewer.DataVisualization.resources.dll index f8cf9fbbd..dbad2e340 100644 Binary files a/Bin/fr/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/fr/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/fr/Microsoft.ReportViewer.Design.resources.dll b/Bin/fr/Microsoft.ReportViewer.Design.resources.dll index 179df9a3b..f7d07037d 100644 Binary files a/Bin/fr/Microsoft.ReportViewer.Design.resources.dll and b/Bin/fr/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/fr/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/fr/Microsoft.ReportViewer.WebDesign.resources.dll index b575f0213..591c43d61 100644 Binary files a/Bin/fr/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/fr/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/fr/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/fr/Microsoft.ReportViewer.WebForms.resources.dll index 71f96a916..25152ed26 100644 Binary files a/Bin/fr/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/fr/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/fr/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/fr/Microsoft.ReportViewer.WinForms.resources.dll index ccdc79039..1c3c300f8 100644 Binary files a/Bin/fr/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/fr/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/it/Microsoft.ReportViewer.Common.resources.dll b/Bin/it/Microsoft.ReportViewer.Common.resources.dll index dc3bf8d02..6c988969d 100644 Binary files a/Bin/it/Microsoft.ReportViewer.Common.resources.dll and b/Bin/it/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/it/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/it/Microsoft.ReportViewer.DataVisualization.resources.dll index c49a43ab4..0e90d96f1 100644 Binary files a/Bin/it/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/it/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/it/Microsoft.ReportViewer.Design.resources.dll b/Bin/it/Microsoft.ReportViewer.Design.resources.dll index b5c7937cf..5964d0c4d 100644 Binary files a/Bin/it/Microsoft.ReportViewer.Design.resources.dll and b/Bin/it/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/it/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/it/Microsoft.ReportViewer.WebDesign.resources.dll index 828d85608..d3df12757 100644 Binary files a/Bin/it/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/it/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/it/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/it/Microsoft.ReportViewer.WebForms.resources.dll index 19052e9d5..4458e3c91 100644 Binary files a/Bin/it/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/it/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/it/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/it/Microsoft.ReportViewer.WinForms.resources.dll index 4b5cf0673..e049170c1 100644 Binary files a/Bin/it/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/it/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/itext.barcodes.dll b/Bin/itext.barcodes.dll new file mode 100644 index 000000000..a53a5fc03 Binary files /dev/null and b/Bin/itext.barcodes.dll differ diff --git a/Bin/itext.barcodes.dll.refresh b/Bin/itext.barcodes.dll.refresh new file mode 100644 index 000000000..d90936fec --- /dev/null +++ b/Bin/itext.barcodes.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.barcodes.dll \ No newline at end of file diff --git a/Bin/itext.barcodes.xml b/Bin/itext.barcodes.xml new file mode 100644 index 000000000..9c9734b92 --- /dev/null +++ b/Bin/itext.barcodes.xml @@ -0,0 +1,2808 @@ + + + + itext.barcodes + + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + The bars to generate the code. + + + The stop bars. + + + The charset code change. + + + The charset code change. + + + The charset code change. + + + The code for UCC/EAN-128. + + + The start code. + + + The start code. + + + The start code. + + + Creates new Barcode128. + + Creates new Barcode128. + To generate the font the + + will be implicitly called. + If you want to use this barcode in PDF/A documents, please consider using + . + + The document to which the barcode will be added + + + Creates new Barcode128, which will use the provided font + The document to which the barcode will be added + The font to use + + + Removes the FNC1 codes in the text. + The text to clean + The cleaned text + + + Gets the human readable text of a sequence of AI. + the text + the human readable text + + + + Converts the human readable text to the characters needed to + create a barcode using the specified code set. + + the text to convert + + true if it is an UCC/EAN-128. In this case + the character FNC1 is added + + forced code set, or AUTO for optimized barcode. + the code ready to be fed to getBarsCode128Raw() + + + + Converts the human readable text to the characters needed to + create a barcode. + + + Converts the human readable text to the characters needed to + create a barcode. Some optimization is done to get the shortest code. + + the text to convert + + true if it is an UCC/EAN-128. In this case + the character FNC1 is added + + the code ready to be fed to getBarsCode128Raw() + + + Generates the bars. + + Generates the bars. The input has the actual barcodes, not + the human readable text. + + the barcode + the bars + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + The bars and text are written in the following colors: +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    barColortextColorResult
    nullnullbars and text painted with current fill color
    barColornullbars and text painted with barColor
    nulltextColorbars painted with current color
    text painted with textColor
    barColortextColorbars painted with barColor
    text painted with textColor
    +
    + the PdfCanvas where the barcode will be placed + the color of the bars. It can be null + the color of the text. It can be null + the dimensions the barcode occupies +
    + + Sets the code to generate. + + Sets the code to generate. If it's an UCC code and starts with '(' it will + be split by the AI. This code in UCC mode is valid: +
    + (01)00000090311314(10)ABC123(15)060916 +
    + the code to generate +
    + + + Returns true if the next numDigits + starting from index textIndex are numeric skipping any FNC1. + + the text to check + where to check from + the number of digits to check + the check result + + + Packs the digits for charset C also considering FNC1. + + Packs the digits for charset C also considering FNC1. It assumes that all the parameters + are valid. + + the text to pack + where to pack from + the number of digits to pack. It is always an even number + the packed digits, two digits per character + + + The minimum bar width. + + + + The bar multiplier for wide bars or the distance between + bars for Postnet and Planet. + + + + The text font. + The text font. null if no text. + + + + The size of the text or the height of the shorter bar + in Postnet. + + + + If positive, the text distance under the bars. + + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + + + The height of the bars. + + + The text alignment. + + + The optional checksum generation. + + + Shows the generated checksum in the the text. + + + + Show the start and stop character '*' in the text for + the barcode 39 or 'ABCD' for codabar. + + + + Generates extended barcode 39. + + + The code to generate. + + + Show the guard bars for barcode EAN. + + + The code type. + + + The ink spreading. + + + The alternate text to be used, if present. + + + Gets the minimum bar width. + the minimum bar width + + + Sets the minimum bar width. + the minimum bar width + + + Gets the bar multiplier for wide bars. + the bar multiplier for wide bars + + + Sets the bar multiplier for wide bars. + the bar multiplier for wide bars + + + Gets the text font. + Gets the text font. null if no text. + the text font. null if no text + + + Sets the text font. + the text font. Set to null to suppress any text + + + Sets the size of the text. + the size of the text + + + Gets the text baseline. + + Gets the text baseline. + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + the baseline. + + + Sets the text baseline. + + Sets the text baseline. + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + the baseline. + + + Gets the height of the bars. + the height of the bars + + + Sets the height of the bars. + the height of the bars + + + Gets the text alignment. + the text alignment + + + Sets the text alignment. + the text alignment + + + Gets the optional checksum generation. + the optional checksum generation + + + Setter for property generateChecksum. + New value of property generateChecksum. + + + Gets the property to show the generated checksum in the the text. + value of property checksumText + + + Sets the property to show the generated checksum in the the text. + new value of property checksumText + + + + Sets the property to show the start and stop character '*' in the text for + the barcode 39. + + value of property startStopText + + + + Gets the property to show the start and stop character '*' in the text for + the barcode 39. + + new value of property startStopText + + + Gets the property to generate extended barcode 39. + value of property extended. + + + Sets the property to generate extended barcode 39. + new value of property extended + + + Gets the code to generate. + the code to generate + + + Sets the code to generate. + the code to generate + + + Gets the property to show the guard bars for barcode EAN. + value of property guardBars + + + Sets the property to show the guard bars for barcode EAN. + new value of property guardBars + + + Gets the code type. + the code type + + + Sets the code type. + the code type + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + The bars and text are written in the following colors: +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    barColortextColorResult
    nullnullbars and text painted with current fill color
    barColornullbars and text painted with barColor
    nulltextColorbars painted with current color
    text painted with textColor
    barColortextColorbars painted with barColor
    text painted with textColor
    +
    + the PdfCanvas where the barcode will be placed + the color of the bars. It can be null + the color of the text. It can be null + the dimensions the barcode occupies +
    + + Gets the amount of ink spreading. + the ink spreading + + + Sets the amount of ink spreading. + + Sets the amount of ink spreading. This value will be subtracted + to the width of each bar. The actual value will depend on the ink + and the printing medium. + + the ink spreading + + + Gets the alternate text. + the alternate text + + + Sets the alternate text. + + Sets the alternate text. If present, this text will be used instead of the + text derived from the supplied code. + + the alternate text + + + Creates a PdfFormXObject with the barcode. + Creates a PdfFormXObject with the barcode. Default bar color and text color will be used. + The document + The XObject + + + + Creates a PdfFormXObject with the barcode. + The color of the bars. It can be null + The color of the text. It can be null + The document + the XObject + + + + Make the barcode occupy the specified width. + + Make the barcode occupy the specified width. + Usually this is achieved by adjusting bar widths. + + The width + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + + the PdfCanvas where the barcode will be placed + the foreground color. It can be null + the dimensions the barcode occupies + + + Creates a PdfFormXObject with the barcode. + + Creates a PdfFormXObject with the barcode. + Default foreground color will be used. + + The document + the XObject. + + + Creates a PdfFormXObject with the barcode. + The color of the pixels. It can be null + The document + the XObject. + + + The bars to generate the code. + + + + The index chars to BARS, symbol * use only start and stop characters, + the * character will not appear in the input data. + + + + The character combinations to make the code 39 extended. + + + Creates a new Barcode39. + + Creates a new Barcode39. + To generate the font the + + will be implicitly called. + If you want to use this barcode in PDF/A documents, please consider using + . + + The document to which the barcode will be added + + + Creates a new Barcode39. + The document to which the barcode will be added + The font to use + + + Creates the bars. + + the text to create the bars. This text does not include the start and + stop characters + + the bars + + + + Converts the extended text into a normal, escaped text, + ready to generate bars. + + the extended text + the escaped text + + + Calculates the checksum. + the text + the checksum + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + The bars and text are written in the following colors: +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    barColortextColorResult
    nullnullbars and text painted with current fill color
    barColornullbars and text painted with barColor
    nulltextColorbars painted with current color
    text painted with textColor
    barColortextColorbars painted with barColor
    text painted with textColor
    +
    + the PdfCanvas where the barcode will be placed + the color of the bars. It can be null + the color of the text. It can be null + the dimensions the barcode occupies +
    + + The index chars to BARS. + + + The bars to generate the code. + + + Creates a new BarcodeCodabar. + + Creates a new BarcodeCodabar. + To generate the font the + + will be implicitly called. + If you want to use this barcode in PDF/A documents, please consider using + . + + The document to which the barcode will be added + + + Creates a new BarcodeCodabar. + The document to which the barcode will be added + The font to use + + + Creates the bars. + the text to create the bars + the bars + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + The bars and text are written in the following colors: +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    barColortextColorResult
    nullnullbars and text painted with current fill color
    barColornullbars and text painted with barColor
    nulltextColorbars painted with current color
    text painted with textColor
    barColortextColorbars painted with barColor
    text painted with textColor
    +
    + the PdfCanvas where the barcode will be placed + the color of the bars. It can be null + the color of the text. It can be null + the dimensions the barcode occupies +
    + + No error. + + + The text is too big for the symbology capabilities. + + + The dimensions given for the symbol are illegal. + + + An error while parsing an extension. + + + The best encodation will be used. + + + ASCII encodation. + + + C40 encodation. + + + TEXT encodation. + + + Binary encodation. + + + X12 encodation. + + + EDIFACT encodation. + + + No encodation needed. + No encodation needed. The bytes provided are already encoded. + + + Allows extensions to be embedded at the start of the text. + + + Doesn't generate the image but returns all the other information. + + + Creates an instance of this class. + + + Creates a PdfFormXObject with the barcode with given module width and module height. + The color of the pixels. It can be null + The side (width and height) of the pixels. + The document + the XObject. + + + Gets the barcode size + The height of the module + The width of the module + The size of the barcode + + + Creates a barcode. + Creates a barcode. The String is interpreted with the ISO-8859-1 encoding + the text + + the status of the generation. It can be one of this values: + DM_NO_ERROR - no error.
    + DM_ERROR_TEXT_TOO_BIG - the text is too big for the symbology capabilities.
    + DM_ERROR_INVALID_SQUARE - the dimensions given for the symbol are illegal.
    + DM_ERROR_EXTENSION - an error was while parsing an extension. +
    +
    + + Creates a barcode. + the text + the offset to the start of the text + the text size + + the status of the generation. It can be one of this values: + DM_NO_ERROR - no error.
    + DM_ERROR_TEXT_TOO_BIG - the text is too big for the symbology capabilities.
    + DM_ERROR_INVALID_SQUARE - the dimensions given for the symbol are illegal.
    + DM_ERROR_EXTENSION - an error was while parsing an extension. +
    +
    + + Gets the height of the barcode. + + Gets the height of the barcode. Will contain the real height used after a successful call + to generate(). This height doesn't include the whitespace border, if any. + + the height of the barcode + + + Sets the height of the barcode. + + Sets the height of the barcode. If the height is zero it will be calculated. + This height doesn't include the whitespace border, if any. + The allowed dimensions are (width, height): + 10, 10
    + 12, 12
    + 18, 8
    + 14, 14
    + 32, 8
    + 16, 16
    + 26, 12
    + 18, 18
    + 20, 20
    + 36, 12
    + 22, 22
    + 36, 16
    + 24, 24
    + 26, 26
    + 48, 16
    + 32, 32
    + 36, 36
    + 40, 40
    + 44, 44
    + 48, 48
    + 52, 52
    + 64, 64
    + 72, 72
    + 80, 80
    + 88, 88
    + 96, 96
    + 104, 104
    + 120, 120
    + 132, 132
    + 144, 144
    +
    + the height of the barcode +
    + + Gets the width of the barcode. + + Gets the width of the barcode. Will contain the real width used after a successful call + to generate(). This width doesn't include the whitespace border, if any. + + the width of the barcode + + + Sets the width of the barcode. + + Sets the width of the barcode. If the width is zero it will be calculated. + This width doesn't include the whitespace border, if any. + The allowed dimensions are (width, height): + 10, 10
    + 12, 12
    + 18, 8
    + 14, 14
    + 32, 8
    + 16, 16
    + 26, 12
    + 18, 18
    + 20, 20
    + 36, 12
    + 22, 22
    + 36, 16
    + 24, 24
    + 26, 26
    + 48, 16
    + 32, 32
    + 36, 36
    + 40, 40
    + 44, 44
    + 48, 48
    + 52, 52
    + 64, 64
    + 72, 72
    + 80, 80
    + 88, 88
    + 96, 96
    + 104, 104
    + 120, 120
    + 132, 132
    + 144, 144
    +
    + the width of the barcode +
    + + Gets the whitespace border around the barcode. + the whitespace border around the barcode + + + Sets the whitespace border around the barcode. + the whitespace border around the barcode + + + Gets the barcode options. + the barcode options + + + Sets the options for the barcode generation. + + Sets the options for the barcode generation. The options can be: + One of:
    + DM_AUTO - the best encodation will be used
    + DM_ASCII - ASCII encodation
    + DM_C40 - C40 encodation
    + DM_TEXT - TEXT encodation
    + DM_B256 - binary encodation
    + DM_X12 - X12 encodation
    + DM_EDIFACT - EDIFACT encodation
    + DM_RAW - no encodation. The bytes provided are already encoded and will be added directly to the barcode, using padding if needed. It assumes that the encodation state is left at ASCII after the last byte.
    +
    + One of:
    + DM_EXTENSION - allows extensions to be embedded at the start of the text: + exxxxxx - ECI number xxxxxx
    + m5 - macro 5
    + m6 - macro 6
    + f - FNC1
    + saabbccccc - Structured Append, aa symbol position (1-16), bb total number of symbols (2-16), ccccc file identification (0-64515)
    + p - Reader programming
    + . - extension terminator + Example for a structured append, symbol 2 of 6, with FNC1 and ECI 000005. The actual text is "Hello". + s020600075fe000005.Hello + One of:
    + DM_TEST - doesn't generate the image but returns all the other information. +
    + the barcode options +
    + + setting encoding for data matrix code ( default encoding iso-8859-1) + encoding for data matrix code + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The x coordinates to place the text. + + + The x coordinates to place the text. + + + The basic bar widths. + + + The total number of bars for EAN13. + + + The total number of bars for EAN8. + + + The total number of bars for UPCE. + + + The total number of bars for supplemental 2. + + + The total number of bars for supplemental 5. + + + Marker for odd parity. + + + Marker for even parity. + + + Sequence of parities to be used with EAN13. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with UPCE. + + + Creates new BarcodeEAN. + + Creates new BarcodeEAN. + To generate the font the + + will be implicitly called. + If you want to use this barcode in PDF/A documents, please consider using + . + + The document to which the barcode will be added + + + Creates new BarcodeEAN + The document to which the barcode will be added + The font to use + + + Calculates the EAN parity character. + the code + the parity character + + + Converts an UPCA code into an UPCE code. + + Converts an UPCA code into an UPCE code. If the code can not + be converted a null is returned. + + the code to convert. It must have 12 numeric characters + + the 8 converted digits or null if the + code could not be converted + + + + Creates the bars for the barcode EAN13 and UPCA. + the text with 13 digits + the barcode + + + Creates the bars for the barcode EAN8. + the text with 8 digits + the barcode + + + Creates the bars for the barcode UPCE. + the text with 8 digits + the barcode + + + Creates the bars for the barcode supplemental 2. + the text with 2 digits + the barcode + + + Creates the bars for the barcode supplemental 5. + the text with 5 digits + the barcode + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + The bars and text are written in the following colors: +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    barColortextColorResult
    nullnullbars and text painted with current fill color
    barColornullbars and text painted with barColor
    nulltextColorbars painted with current color
    text painted with textColor
    barColortextColorbars painted with barColor
    text painted with textColor
    +
    + the PdfCanvas where the barcode will be placed + the color of the bars. It can be null + the color of the text. It can be null + the dimensions the barcode occupies +
    + + The barcode with the EAN/UPC. + + + The barcode with the supplemental. + + + Creates new combined barcode. + the EAN/UPC barcode + the supplemental barcode + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + The bars and text are written in the following colors: +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    barColortextColorResult
    nullnullbars and text painted with current fill color
    barColornullbars and text painted with barColor
    nulltextColorbars painted with current color
    text painted with textColor
    barColortextColorbars painted with barColor
    text painted with textColor
    +
    + the PdfCanvas where the barcode will be placed + the color of the bars. It can be null + the color of the text. It can be null + the dimensions the barcode occupies +
    + + Implements the code interleaved 2 of 5. + + Implements the code interleaved 2 of 5. The text can include + non numeric characters that are printed but do not generate bars. + The default parameters are: +
    +            x = 0.8f;
    +            n = 2;
    +            font = new PdfType1Font(document, new TYPE_1_FONT(StandardFonts.HELVETICA, PdfEncodings.WINANSI));
    +            size = 8;
    +            baseline = size;
    +            barHeight = size * 3;
    +            textAlignment = ALIGN_CENTER;
    +            generateChecksum = false;
    +            checksumText = false;
    +            
    +
    +
    + + The bars to generate the code. + + + Creates new BarcodeInter25. + + Creates new BarcodeInter25. + To generate the font the + + will be implicitly called. + If you want to use this barcode in PDF/A documents, please consider using + . + + The document to which the barcode will be added + + + Creates new BarcodeInter25 + The document to which the barcode will be added + The font to use + + + Deletes all the non numeric characters from text. + the text + a String with only numeric characters + + + Calculates the checksum. + the numeric text + the checksum + + + Creates the bars for the barcode. + the text. It can contain non numeric characters + the barcode + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + The bars and text are written in the following colors: +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    barColortextColorResult
    nullnullbars and text painted with current fill color
    barColornullbars and text painted with barColor
    nulltextColorbars painted with current color
    text painted with textColor
    barColortextColorbars painted with barColor
    text painted with textColor
    +
    + the PdfCanvas where the barcode will be placed + the color of the bars. It can be null + the color of the text. It can be null + the dimensions the barcode occupies +
    + + Implements the MSI Barcode. + + Implements the MSI Barcode. + The code may only contain numeric characters. + The + getChecksum + method returns the mod 10 checksum digit which is the most widely used for MSI barcodes. + + + + The index chars to BARS representing valid characters in the code + + + The sequence prepended to the start of all MSI Barcodes. + + + The sequence appended to the end of all MSI Barcodes. + + + The bars to generate the code. + + + The number of individual bars either drawn or not drawn per character of the code + + + The number of individual bars either drawn or not drawn for the start character in the BarcodeMSI. + + + + The number of individual bars either drawn or not drawn for the stop character in the BarcodeMSI. + + + + Creates a new BarcodeMSI. + + Creates a new BarcodeMSI. + To generate the font the + + will be implicitly called. + If you want to use this barcode in PDF/A documents, please consider using + . + + The document to which the barcode will be added + + + Creates a new BarcodeMSI + The document to which the barcode will be added + The font to use + + + + Gets the maximum area that the barcode and the text, if + any, will occupy. + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + + the size the barcode occupies. + + + Places the barcode in a PdfCanvas. + + Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + + The bars and text are written in the following colors: + + + + + + + + + + + + + + + + + + + + + + + + + + +
    barColortextColorResult
    nullnullbars and text painted with current fill color
    barColornullbars and text painted with barColor
    nulltextColorbars painted with current color
    text painted with textColor
    barColortextColorbars painted with barColor
    text painted with textColor
    +
    + the PdfCanvas where the barcode will be placed + the color of the bars. It can be null + the color of the text. It can be null + the dimensions the barcode occupies +
    + + Creates the bars. + the text to create the bars. + the bars + + + Calculates the mod 10 checksum digit using the Luhn algorithm. + the barcode data + the checksum digit + + + Auto-size is made based on aspectRatio and yHeight. + + + The size of the barcode will be at least codeColumns*codeRows. + + + + The size will be at least codeColumns + with a variable number of codeRows. + + + + + The size will be at least codeRows + with a variable number of codeColumns. + + + + + The error level correction is set automatically according + to ISO 15438 recommendations. + + + + The error level correction is set by the user. + The error level correction is set by the user. It can be 0 to 8. + + + One single binary segment is used + + + + No text interpretation is done and the content of codewords + is used directly. + + + + + Inverts the output bits of the raw bitmap that is normally + bit one for black. + + + Inverts the output bits of the raw bitmap that is normally + bit one for black. It has only effect for the raw bitmap. + + + + Use Macro PDF417 Encoding + + + + + + Holds value of property outBits. + + + Holds value of property bitColumns. + + + Holds value of property codeRows. + + + Holds value of property codeColumns. + + + Holds value of property codewords. + + + Holds value of property lenCodewords. + + + Holds value of property errorLevel. + + + Holds value of property code. + + + Holds value of property options. + + + Holds value of property aspectRatio. + + + Holds value of property yHeight. + + + Creates a new BarcodePDF417 with the default settings. + + + Sets the segment id for macro PDF417 encoding + the id (starting at 0) + + + + Sets the segment count for macro PDF417 encoding + the number of macro segments + + + + Sets the File ID for macro PDF417 encoding + the file id + + + + Set the default settings that correspond to PDF417_USE_ASPECT_RATIO + and PDF417_AUTO_ERROR_LEVEL. + + + + Paints the barcode. + Paints the barcode. If no exception was thrown a valid barcode is available. + + + Creates a PdfFormXObject with the barcode. + the color of the pixels. It can be null + the XObject. + + + Creates a PdfFormXObject with the barcode with given module width and module height. + The color of the pixels. It can be null + The width of the pixels. + The height of the pixels. + The document + the XObject. + + + Gets the raw image bits of the barcode. + + Gets the raw image bits of the barcode. The image will have to + be scaled in the Y direction by yHeight. + + The raw barcode image + + + Gets the number of X pixels of outBits. + the number of X pixels of outBits + + + Gets the number of Y pixels of outBits. + + Gets the number of Y pixels of outBits. + It is also the number of rows in the barcode. + + the number of Y pixels of outBits + + + Sets the number of barcode rows. + + Sets the number of barcode rows. This number may be changed + to keep the barcode valid. + + the number of barcode rows + + + Gets the number of barcode data columns. + he number of barcode data columns + + + Sets the number of barcode data columns. + + Sets the number of barcode data columns. + This number may be changed to keep the barcode valid. + + the number of barcode data columns + + + Gets the codeword array. + + Gets the codeword array. This array is always 928 elements long. + It can be written to if the option PDF417_USE_RAW_CODEWORDS + is set. + + the codeword array + + + Gets the length of the codewords. + the length of the codewords + + + Sets the length of the codewords. + the length of the codewords + + + Gets the error level correction used for the barcode. + + Gets the error level correction used for the barcode. It may different + from the previously set value. + + the error level correction used for the barcode + + + Sets the error level correction for the barcode. + the error level correction for the barcode + + + Gets the bytes that form the barcode. + + Gets the bytes that form the barcode. This bytes should + be interpreted in the codepage Cp437. + + the bytes that form the barcode + + + Sets the bytes that form the barcode. + + Sets the bytes that form the barcode. This bytes should + be interpreted in the codepage Cp437. + + the bytes that form the barcode + + + Sets the code that will form the barcode. + + Sets the code that will form the barcode. This text is converted + to bytes using the encoding Cp437. + + the text that will form the barcode + + + Gets the options to generate the barcode. + the options to generate the barcode + + + Sets the options to generate the barcode. + + Sets the options to generate the barcode. This can be all + the PDF417_* constants. + + the options to generate the barcode + + + Gets the barcode aspect ratio. + the barcode aspect ratio + + + Sets the barcode aspect ratio. + + Sets the barcode aspect ratio. A ratio or 0.5 will make the + barcode width twice as large as the height. + + the barcode aspect ratio + + + Gets the Y pixel height relative to X. + the Y pixel height relative to X + + + Sets the Y pixel height relative to X. + Sets the Y pixel height relative to X. It is usually 3. + the Y pixel height relative to X + + + The bars for each character. + + + Creates the bars for Postnet. + the code to be created without checksum + the bars + + + A QRCode implementation based on the zxing code. + + + modifiers to change the way the barcode is create. + + + Creates the QR barcode. + the text to be encoded + barcode hints. See #setHints for description. + + + + Creates the QR barcode with default error correction level (ErrorCorrectionLevel.L) + and default character set (ISO-8859-1). + + the text to be encoded + + + Gets the current data. + the encoded data + + + Sets the data to be encoded by the barcode. + Sets the data to be encoded by the barcode. If not specified in hints otherwise, the character set should be ISO-8859-1. + + The data to encode + + + modifiers to change the way the barcode is created. + + + + modifiers to change the way the barcode is created. They can be EncodeHintType.ERROR_CORRECTION + and EncodeHintType.CHARACTER_SET. For EncodeHintType.ERROR_CORRECTION the values can be ErrorCorrectionLevel.L, M, Q, H. + For EncodeHintType.CHARACTER_SET the values are strings and can be Cp437, Shift_JIS and ISO-8859-1 to ISO-8859-16. + You can also use UTF-8, but correct behaviour is not guaranteed as Unicode is not supported in QRCodes. + The default value is ISO-8859-1. + + + + Regenerates barcode after changes in hints or code. + + + Gets the size of the barcode grid + + + Gets the barcode size + The module size + The size of the barcode + + + * Places the barcode in a PdfCanvas. + + * Places the barcode in a PdfCanvas. The + barcode is always placed at coordinates (0, 0). Use the + translation matrix to move it elsewhere. + + the PdfCanvas where the barcode will be placed + the foreground color. It can be null + the size of the square grid cell + the dimensions the barcode occupies + + + Creates a PdfFormXObject with the barcode. + the color of the pixels. It can be null + the XObject. + + + Creates a PdfFormXObject with the barcode. + The color of the pixels. It can be null + The size of the pixels. + The document + the XObject. + + + Creates a DM code parameter block + total height + total width + height of a single section + width of a single section + size of the data + size of a data-block + size of a error-correction block + + + Execute the placement + number of rows + number of columns + array containing appropriate values for ECC200 + + + Calculates the error correction code for the given parameters. + bytearray containing the data + size of the data + size of a datablock + size of a errorblock + + + Class that bundles all the error message templates as constants. + + + + A base class which covers the range of exceptions which may occur when encoding a barcode using + the Writer framework. + + dswitkin@google.com (Daniel Switkin) + + + Creates a WriterException. + + + Creates a WriterException with a message. + message of the exception + + + A simple, fast array of bits, represented compactly by an array of ints internally. + Sean Owen + + + bit to get. + true iff bit i is set + + + Sets bit i. + bit to set + + + Flips bit i. + bit to set + + + Sets a block of 32 bits, starting at bit i. + first bit to set + + the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + start of range, inclusive. + end of range, exclusive + if true, checks that bits in range are set, otherwise checks that they are not set + true iff all bits are set or not set in range, according to value argument + + + + underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + + Reverses all bits in the array. + + + Represents a 2D matrix of bits. + + Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left. + + Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently. + + The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation. + + Sean Owen + dswitkin@google.com (Daniel Switkin) + + + Gets the requested bit, where true means black. + The horizontal component (i.e. which column) + The vertical component (i.e. which row) + value of given bit in matrix + + + Sets the given bit to true. + The horizontal component (i.e. which column) + The vertical component (i.e. which row) + + + Flips the given bit. + The horizontal component (i.e. which column) + The vertical component (i.e. which row) + + + Clears all bits (sets to false). + + + Sets a square region of the bit matrix to true. + The horizontal position to begin at (inclusive) + The vertical position to begin at (inclusive) + The width of the region + The height of the region + + + A fast method to retrieve one row of data from the matrix as a BitArray. + The row to retrieve + An optional caller-allocated BitArray, will be allocated if null or too small + + The resulting BitArray - this reference should always be used even when passing + your own row + + + + The width of the matrix + + + The height of the matrix + + + This method is for compatibility with older code. + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + row/column dimension of this matrix + + + + JAVAPORT: This should be combined with BitArray in the future, although that class is not yet + dynamically resizeable. + + + JAVAPORT: This should be combined with BitArray in the future, although that class is not yet + dynamically resizeable. This implementation is reasonable but there is a lot of function calling + in loops I'd like to get rid of. + + satorux@google.com (Satoru Takabayashi) - creator + dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Create a bitvector usng the default size + + + Return the bit value at "index". + index in the vector + bit value at "index" + + + the number of bits in the bit vector. + + + the number of bytes in the bit vector. + + + Append the a bit to the bit vector + 0 or 1 + + + Append "numBits" bits in "value" to the bit vector. + + Append "numBits" bits in "value" to the bit vector. + Examples: + - appendBits(0x00, 1) adds 0. + - appendBits(0x00, 4) adds 0000. + - appendBits(0xff, 8) adds 11111111. + + int interpreted as bitvector + 0 <= numBits <= 32. + + + Append a different BitVector to this BitVector + BitVector to append + + + XOR the contents of this bitvector with the contetns of "other" + Bitvector of equal length + + + String representation of the bitvector + + + + Callers should not assume that array.length is the exact number of bytes needed to hold + sizeInBits - it will typically be larger for efficiency. + + size of the array containing the bitvector + + + + Add a new byte to the end, possibly reallocating and doubling the size of the array if we've + run out of room. + + byte to add. + + + Helper class that groups a block of databytes with its corresponding block of error correction block + + + + data block of the pair + + + error correction block of the pair + + + This class implements an array of unsigned bytes. + dswitkin@google.com (Daniel Switkin) + + + Creates a new ByteArray instance with size 0. + + + Creates a new ByteArray instance of the specified size. + size of the array + + + Creates a new ByteArray instance based on an existing byte[]. + the byte[] + + + Access an unsigned byte at location index. + The index in the array to access. + The unsigned value of the byte as an int. + + + Set the value at "index" to "value" + position in the byte-array + new value + + + size of the array + + + true if size is equal to 0, false otherwise + + + Append a byte to the end of the array. + Append a byte to the end of the array. If the array is too small, it's capacity is doubled. + byte to append. + + + Increase the capacity of the array to "capacity" if the current capacity is smaller + the new capacity + + + Copy count bytes from array source starting at offset. + source of the copied bytes + offset to start at + number of bytes to copy + + + A class which wraps a 2D array of bytes. + + A class which wraps a 2D array of bytes. The default usage is signed. If you want to use it as a + unsigned container, it's up to you to do byteValue & 0xff at each location. + JAVAPORT: The original code was a 2D array of ints, but since it only ever gets assigned + -1, 0, and 1, I'm going to use less memory and go with bytes. + + dswitkin@google.com (Daniel Switkin) + + + Create a ByteMatix of given width and height, with the values initialized to 0 + width of the matrix + height of the matrix + + + height of the matrix + + + width of the matrix + + + Get the value of the byte at (x,y) + the width coordinate + the height coordinate + the byte value at position (x,y) + + + matrix as byte[][] + + + Set the value of the byte at (x,y) + the width coordinate + the height coordinate + the new byte value + + + Set the value of the byte at (x,y) + the width coordinate + the height coordinate + the new byte value + + + Resets the contents of the entire matrix to value + new value of every element + + + String representation + + + + Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 + of ISO 18004. + + Sean Owen + + + name of the encoding. + + + the value of the encoding. + + + character set ECI encoding name + + + + representing ECI for character encoding, or null if it is legal + but unsupported + + + + These are a set of hints that you may pass to Writers to specify their behavior. + dswitkin@google.com (Daniel Switkin) + + + Specifies what degree of error correction to use, for example in QR Codes (type Integer). + + + Specifies what character encoding to use where applicable (type String) + + + Specifies the minimal version level to use, for example in QR Codes (type Integer). + + + satorux@google.com (Satoru Takabayashi) - creator + dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Encode "bytes" with the error correction level "ecLevel". + + Encode "bytes" with the error correction level "ecLevel". The encoding mode will be chosen + internally by chooseMode(). On success, store the result in "qrCode". + + We recommend you to use QRCode.EC_LEVEL_L (the lowest level) for + "getECLevel" since our primary use is to show QR code on desktop screens. We don't need very + strong error correction for this purpose. + + Note that there is no way to encode bytes in MODE_KANJI. We might want to add EncodeWithMode() + with which clients can specify the encoding mode. For now, we don't need the functionality. + + String to encode + Error-correction level to use + QR code to store the result in + + + Encode "bytes" with the error correction level "ecLevel". + + Encode "bytes" with the error correction level "ecLevel". The encoding mode will be chosen + internally by chooseMode(). On success, store the result in "qrCode". + + We recommend you to use QRCode.EC_LEVEL_L (the lowest level) for + "getECLevel" since our primary use is to show QR code on desktop screens. We don't need very + strong error correction for this purpose. + + Note that there is no way to encode bytes in MODE_KANJI. We might want to add EncodeWithMode() + with which clients can specify the encoding mode. For now, we don't need the functionality. + + String to encode + Error-correction level to use + Optional Map containing encoding and suggested minimum version to use + QR code to store the result in + + + + the code point of the table used in alphanumeric mode or + -1 if there is no corresponding code in the table. + + + + Choose the best mode by examining the content. + content to examine + mode to use + + + Choose the best mode by examining the content. + + Choose the best mode by examining the content. Note that 'encoding' is used as a hint; + if it is Shift_JIS, and the input is only double-byte Kanji, then we return + + + content to examine + hint for the encoding to use + mode to use + + + Initialize "qrCode" according to "numInputBytes", "ecLevel", and "mode". + + Initialize "qrCode" according to "numInputBytes", "ecLevel", and "mode". On success, + modify "qrCode". + + + + Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24). + + + Get number of data bytes and number of error correction bytes for block id "blockID". + + Get number of data bytes and number of error correction bytes for block id "blockID". Store + the result in "numDataBytesInBlock", and "numECBytesInBlock". See table 12 in 8.5.1 of + JISX0510:2004 (p.30) + + + + Interleave "bits" with corresponding error correction bytes. + + Interleave "bits" with corresponding error correction bytes. On success, store the result in + "result". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details. + + + + Append mode info. + Append mode info. On success, store the result in "bits". + + + Append length info. + Append length info. On success, store the result in "bits". + + + Append "bytes" in "mode" mode (encoding) into "bits". + Append "bytes" in "mode" mode (encoding) into "bits". On success, store the result in "bits". + + + See ISO 18004:2006, 6.5.1. + + See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels + defined by the QR code standard. + + Sean Owen + + + L = ~7% correction + + + M = ~15% correction + + + Q = ~25% correction + + + H = ~30% correction + + + Gets the ordinal value. + the ordinal + + + int containing the two bits encoding a QR Code's error correction level + + + + representing the encoded error correction level + + + + + Encapsulates a QR Code's format information, including the data mask used and + error correction level. + + Sean Owen + + + + See ISO 18004:2006, Annex C, Table C.1 + + + Offset i holds the number of 1 bits in the binary representation of i + + + format info indicator, with mask still applied + + second copy of same info; both are checked at the same time + to establish best match + + + information about the format it specifies, or null + if doesn't seem to match any known pattern + + + + The datamask in byte-format + + + the hashcode of the QR-code format information + + + Compares the Format Information of this and o + object to compare to + True if o is a FormatInformationObject and the error-correction level and the datamask are equal, false otherwise + + + + + This class contains utility methods for performing mathematical operations over + the Galois Field GF(256). + + + This class contains utility methods for performing mathematical operations over + the Galois Field GF(256). Operations use a given primitive polynomial in calculations. + + Throughout this package, elements of GF(256) are represented as an int + for convenience and speed (but at the cost of memory). + Only the bottom 8 bits are really used. + + Sean Owen + + + Create a representation of GF(256) using the given primitive polynomial. + + irreducible polynomial whose coefficients are represented by + the bits of an int, where the least-significant bit represents the constant + coefficient + + + + the monomial representing coefficient * x^degree + + + Implements both addition and subtraction -- they are the same in GF(256). + sum/difference of a and b + + + 2 to the power of a in GF(256) + + + base 2 log of a in GF(256) + + + multiplicative inverse of a + + + + + product of a and b in GF(256) + + + Represents a polynomial whose coefficients are elements of GF(256). + + Represents a polynomial whose coefficients are elements of GF(256). + Instances of this class are immutable. + + Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation. + + Sean Owen + + + + the + + instance representing the field to use + to perform computations + + + coefficients as ints representing elements of GF(256), arranged + from most significant (highest-power term) coefficient to least significant + + + + degree of this polynomial + + + true iff this polynomial is the monomial "0" + + + coefficient of x^degree term in this polynomial + + + evaluation of this polynomial at a given point + + + GF addition or subtraction (they are identical for a GF(2^n) + the other GF-poly + new GF256Poly obtained by summing this GF and other + + + GF multiplication + the other GF-poly + new GF-poly obtained by multiplying this with other + + + GF scalar multiplication + scalar + new GF-poly obtained by multiplying every element of this with the scalar. + + + String representation of the Galois Field polynomial. + + + satorux@google.com (Satoru Takabayashi) - creator + dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Apply mask penalty rule 1 and return the penalty. + + Apply mask penalty rule 1 and return the penalty. Find repetitive cells with the same color and + give penalty to them. Example: 00000 or 11111. + + ByteMatrix to apply the penalty rule to + the rule 1 penalty + + + Apply mask penalty rule 2 and return the penalty. + + Apply mask penalty rule 2 and return the penalty. Find 2x2 blocks with the same color and give + penalty to them. + + ByteMatrix to apply the penalty rule to + the rule 2 penalty + + + Apply mask penalty rule 3 and return the penalty. + + Apply mask penalty rule 3 and return the penalty. Find consecutive cells of 00001011101 or + 10111010000, and give penalty to them. If we find patterns like 000010111010000, we give + penalties twice (i.e. 40 * 2). + + ByteMatrix to apply the penalty rule to + the rule 3 penalty + + + Apply mask penalty rule 4 and return the penalty. + + Apply mask penalty rule 4 and return the penalty. Calculate the ratio of dark cells and give + penalty if the ratio is far from 50%. It gives 10 penalty for 5% distance. Examples: + - 0% => 100 + - 40% => 20 + - 45% => 10 + - 50% => 0 + - 55% => 10 + - 55% => 20 + - 100% => 100 + + Bytematrix to apply the rule to + the rule 4 penalty + + + Return the mask bit for "getMaskPattern" at "x" and "y". + + Return the mask bit for "getMaskPattern" at "x" and "y". See 8.8 of JISX0510:2004 for mask + pattern conditions. + + masking pattern to use + width coordiante + height-coordinate + the mask bit at that position + + + satorux@google.com (Satoru Takabayashi) - creator + dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Build 2D matrix of QR Code from "dataBits" with "ecLevel", "version" and "getMaskPattern". + + Build 2D matrix of QR Code from "dataBits" with "ecLevel", "version" and "getMaskPattern". On + success, store the result in "matrix". + + BitVector containing the databits + Error correction level of the QR code (L,M,Q,H) + Version of the QR code, [1 .. 40] + masking pattern + Bytematrix in which the output will be stored + + + Embed basic patterns. + + Embed basic patterns. On success, modify the matrix. + The basic patterns are: + - Position detection patterns + - Timing patterns + - Dark dot at the left bottom corner + - Position adjustment patterns, if need be + + Version of the QR code, [1 .. 40] + Bytematrix in which the output will be stored + + + Embed type information into the matrix + The error correction level (L,M,Q,H) + the masking pattern + Bytematrix in which the output will be stored + + + Embed version information if need be. + + Embed version information if need be. + For version < 7, version info is not necessary + On success, the matrix is modified + See 8.10 of JISX0510:2004 (p.47) for how to embed version information. + + QR code version + Byte matrix representing the QR code + + + Embed "dataBits" using "getMaskPattern". + + Embed "dataBits" using "getMaskPattern". On success, the matrix is modified + For debugging purposes, it skips masking process if "getMaskPattern" is -1. + See 8.7 of JISX0510:2004 (p.38) for how to embed data bits. + + data bits to embed in the QR code + masking pattern to apply to the data bits + Byte matrix representing the QR code + + + Return the position of the most significant bit set (to one) in the "value". + + Return the position of the most significant bit set (to one) in the "value". + The most significant bit is position 32. If there is no bit set, return 0. Examples: + - findMSBSet(0) => 0 + - findMSBSet(1) => 1 + - findMSBSet(255) => 8 + + bitstring as integer + the position of the most significant bit set to 1 in the bit-representation of value + + + Calculate BCH (Bose-Chaudhuri-Hocquenghem) code for "value" using polynomial "poly". + + Calculate BCH (Bose-Chaudhuri-Hocquenghem) code for "value" using polynomial "poly". The BCH + code is used for encoding type information and version information. + Example: Calculation of version information of 7. + f(x) is created from 7. + - 7 = 000111 in 6 bits + - f(x) = x^2 + x^2 + x^1 + g(x) is given by the standard (p. 67) + - g(x) = x^12 + x^11 + x^10 + x^9 + x^8 + x^5 + x^2 + 1 + Multiply f(x) by x^(18 - 6) + - f'(x) = f(x) * x^(18 - 6) + - f'(x) = x^14 + x^13 + x^12 + Calculate the remainder of f'(x) / g(x) + x^2 + __________________________________________________ + g(x) )x^14 + x^13 + x^12 + x^14 + x^13 + x^12 + x^11 + x^10 + x^7 + x^4 + x^2 + -------------------------------------------------- + x^11 + x^10 + x^7 + x^4 + x^2 + + The remainder is x^11 + x^10 + x^7 + x^4 + x^2 + Encode it in binary: 110010010100 + The return value is 0xc94 (1100 1001 0100) + + Since all coefficients in the polynomials are 1 or 0, we can do the calculation by bit + operations. We don't care if cofficients are positive or negative. + + the bitstring to calculate the BCH Code from + the polynomial in GF[2^n] to use + + + Make bit vector of type information. + + Make bit vector of type information. On success, store the result in "bits". + Encode error correction level and mask pattern. See 8.9 of JISX0510:2004 (p.45) for details. + + error correction level of the QR code + masking pattern to use + Vactor of bits to contain the result + + + Make bit vector of version information. + + Make bit vector of version information. On success, store the result in "bits". + See 8.10 of JISX0510:2004 (p.45) for details. + + Version of the QR-code + Vector of bits to contain the result + + + See ISO 18004:2006, 6.4.1, Tables 2 and 3. + + See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which + data can be encoded to bits in the QR code standard. + + Sean Owen + + + four bits encoding a QR Code data mode + + + + encoded by these bits + + + + version in question + + number of bits used, in this QR Code symbol + + , to encode the + count of characters that will follow encoded in this + + + + + the bits of the mode + + + the name of the mode. + + + the name of the mode. + + + satorux@google.com (Satoru Takabayashi) - creator + dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Create a QR-code object with unitialized parameters + + + Mode used by the QR code to encode data into bits. + + Mode used by the QR code to encode data into bits. + Possible values: TERMINATOR, NUMERIC, ALPHANUMERIC, STRUCTURED_APPEND, BYTE, ECI, KANJI, FNC1_FIRST_POSITION, FNC2_SECOND_POSITION + + Mode of the QR Code. + + + Possible error correction level values ranked from lowest error correction capability to highest: L, M, Q, H + + Error correction level of the QR Code. + + + Together with error correction level, the version determines the information capacity of the QR code. + + Together with error correction level, the version determines the information capacity of the QR code. Higher version numbers correspond with higher capacity. Ranges from 1 to 40. + + Version of the QR Code. + + + ByteMatrix width of the QR Code. + + + Mask pattern of the QR Code. + + + Number of total bytes in the QR Code. + + + Number of data bytes in the QR Code. + + + Number of error correction bytes in the QR Code. + + + Number of Reedsolomon blocks in the QR Code. + + + ByteMatrix data of the QR Code. + + + Retrieve the value of the module (cell) pointed by "x" and "y" in the matrix of the QR Code. + + Retrieve the value of the module (cell) pointed by "x" and "y" in the matrix of the QR Code. + 1 represents a black cell, and 0 represents a white cell. + + width coordinate + height coordinate + 1 for a black cell, 0 for a white cell + + + Check the validity of all member variables + true if all variables are valid, false otherwise + + + Prints all parameters + string containing all parameters + + + + Set the data encoding mode of the QR code + Possible modes: TERMINATOR, NUMERIC, ALPHANUMERIC, STRUCTURED_APPEND, BYTE, ECI, KANJI, FNC1_FIRST_POSITION, FNC2_SECOND_POSITION + + new data encoding mode + + + Set the error correction level of th QR code. + + Set the error correction level of th QR code. + Possible error correction level values ranked from lowest error correction capability to highest: L, M, Q, H + + new error correction level + + + Set the version of the QR code. + + Set the version of the QR code. + Together with error correction level, the version determines the information capacity of the QR code. Higher version numbers correspond with higher capacity. + Range: 1 to 40. + + the new version of the QR code + + + Sets the width of the byte matrix + the new width of the matrix + + + Set the masking pattern + new masking pattern of the QR code + + + Set the number of total bytes + new number of total bytes + + + Set the number of data bytes + new number of data bytes + + + Set the number of error correction blocks + new number of error correction blocks + + + Set the number of Reed-Solomon blocks + new number of Reed-Solomon blocks + + + Set the byte-matrix + the new byte-matrix + + + Check if "mask_pattern" is valid. + masking pattern to check + true if the pattern is valid, false otherwise + + + This object renders a QR Code as a ByteMatrix 2D array of greyscale values. + dswitkin@google.com (Daniel Switkin) + + + Encode a string into a QR code with dimensions width x height, using error-correction level L and the smallest version for which he contents fit into the QR-code? + + String to encode into the QR code + width of the QR-code + height of the QR-code + 2D Greyscale map containing the visual representation of the QR-code, stored as a Bytematrix + + + Encode a string into a QR code with dimensions width x height. + + Encode a string into a QR code with dimensions width x height. Hints contains suggestions for error-correction level and version. + The default error-correction level is L, the default version is the smallest version for which the contents will fit into the QR-code. + + String to encode into the QR code + width of the QR-code + height of the QR-code + Map containing suggestions for error-correction level and version + 2D Greyscale map containing the visual representation of the QR-code, stored as a Bytematrix + + + Implements Reed-Solomon encoding, as the name implies. + Sean Owen + William Rucklidge + + + + Creates a SolomonEncoder object based on a + + object. + + + Creates a SolomonEncoder object based on a + + object. + Only QR codes are supported at the moment. + + the galois field + + + Encodes the provided data. + data to encode + error correction bytes + + + See ISO 18004:2006 Annex D. + Sean Owen + + + See ISO 18004:2006 Annex D. + + See ISO 18004:2006 Annex D. + Element i represents the raw version bits that specify version i + 7 + + + + the version number + + + int[] containing the positions of the alignment pattern centers + + + total number of code words + + + the square dimension for the current version number + + + error correction level + the number of EC blocks for the given error correction level + + + Deduces version information purely from QR Code dimensions. + dimension in modules + + + + for a QR Code of that dimension + + + + Version number + the version for the given version number + + + Decode the version information. + bits stored as int containing + Version decoded from the versionBits + + + Build the function pattern, See ISO 18004:2006 Annex E. + Bitmatrix containing the pattern + + + Encapsulates a set of error-correction blocks in one symbol version. + + Encapsulates a set of error-correction blocks in one symbol version. Most versions will + use blocks of differing sizes within one version, so, this encapsulates the parameters for + each set of blocks. It also holds the number of error-correction codewords per block since it + will be the same across all blocks within one version. + + + + The number of error-correction words per block + + + the total number of error-correction words + + + Encapsualtes the parameters for one error-correction block in one symbol version. + + Encapsualtes the parameters for one error-correction block in one symbol version. + This includes the number of data codewords, and the number of times a block with these + parameters is used consecutively in the QR code version's format. + + + + The version number as a string + + + See ISO 18004:2006 6.5.1 Table 9. + +
    +
    diff --git a/Bin/itext.commons.dll b/Bin/itext.commons.dll new file mode 100644 index 000000000..d1d08be78 Binary files /dev/null and b/Bin/itext.commons.dll differ diff --git a/Bin/itext.commons.dll.refresh b/Bin/itext.commons.dll.refresh new file mode 100644 index 000000000..bad3ed214 --- /dev/null +++ b/Bin/itext.commons.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.commons.7.2.4\lib\net461\itext.commons.dll \ No newline at end of file diff --git a/Bin/itext.commons.xml b/Bin/itext.commons.xml new file mode 100644 index 000000000..f2b4854a4 --- /dev/null +++ b/Bin/itext.commons.xml @@ -0,0 +1,2150 @@ + + + + itext.commons + + + + Base class for events handling depending on the context. + + + + Creates a new instance of the handler with the defined fallback for events within unknown + contexts. + + is a fallback for events within unknown context + + + + Performs context validation and if event is allowed to be processed passes it to + . + + to handle + + + Handles the accepted event. + to handle + + + Represents a context-based event. + + Represents a context-based event. See also + . + Only for internal usage. + + + + Creates an event containing auxiliary meta data. + is a description of the product which has generated an event + is an auxiliary meta info + + + Obtains the current event context class. + context class + + + Sets meta info. + meta info + true if meta info has been set, false otherwise + + + Obtains stored meta info associated with the event. + meta info + + + Base class to wrap events. + + + Creates a wrapper for the event. + + is a + + to wrap + + event confirmation type + + + + Creates a wrapper of event associated with + . + + + is a + + for the document. May be different with + sequence id of original event + + + is a + + to wrap + + event confirmation type + + + Obtains the wrapped event. + wrapped event + + + Abstract class which represents system configuration events. + Abstract class which represents system configuration events. Only for internal usage. + + + + Adds a new + + for a product. + + is a new processor + a replaced processor for the product + + + Removes a processor registered for a product. + is a product for which processor is removed + removed processor + + + Gets a processor registered for a product. + + Gets a processor registered for a product. + + If processor isn't registered and product supports AGPL mode + + will be obtained otherwise null will be returned. + + is a product for which processor is obtained + processor for the product + + + Gets an unmodifiable map of registered processors. + all processors + + + Gets events registered for provided identifier. + is the identifier + the list of event for identifier + + + Registers a new event for provided identifier. + is the identifier + is the event to register + + + Registers internal namespace. + is the namespace to register + + + Method defines the logic of action processing. + + + Abstract class which defines events only for internal usage. + + + Creates an instance of abstract iText event. + Creates an instance of abstract iText event. Only for internal usage. + + + + Abstract class which defines general product events by encapsulating + + of the product which generated event. + + + Abstract class which defines general product events by encapsulating + + of the product which generated event. Only for internal usage. + + + + + Creates instance of abstract product iText event based + on passed product data. + + + Creates instance of abstract product iText event based + on passed product data. Only for internal usage. + + is a description of the product which has generated an event + + + Gets a product data which generated the event. + information about the product + + + Gets a name of product which generated the event. + product name + + + Abstract class which defines product process event. + Abstract class which defines product process event. Only for internal usage. + + + + Creates an event associated with + . + + + Creates an event associated with + + . It may contain auxiliary meta data. + + is a general identifier for the event + is a description of the product which has generated an event + is an auxiliary meta info + + defines when the event should be confirmed to notify that the + associated process has finished successfully + + + + Creates an event which is not associated with any object. + Creates an event which is not associated with any object. It may contain auxiliary meta data. + is a description of the product which has generated an event + is an auxiliary meta info + + defines when the event should be confirmed to notify that the + associated process has finished successfully + + + + Retrieves an identifier of event source. + an identifier of event source + + + Returns an event type. + event type + + + + Retrieves an + event confirmation type. + + + value of event confirmation type which defines when the event should be confirmed + to notify that the associated process has finished successfully + + + + Abstract class for statistics aggregation. + Abstract class for statistics aggregation. Note that aggregator class must be thread safe. + + + Aggregates data from the provided event. + + + + instance + + + + Retrieves aggregated data. + + aggregated data as + + + + + Merges data from the provided aggregator into this aggregator. + from which data will be taken. + + + Abstract class which defines statistics event. + Abstract class which defines statistics event. Only for internal usage. + + + Creates instance of abstract statistics iText event based on passed product data. + Creates instance of abstract statistics iText event based on passed product data. Only for internal usage. + + is a description of the product which has generated an event + + + Creates statistics aggregator based on provided statistics name. + + Creates statistics aggregator based on provided statistics name. + By default prints log warning and returns null. + + + name of statistics based on which aggregator will be created. + Shall be one of those returned from + + + + new instance of + + + + + Gets all statistics names related to this event. + + + + of statistics names + + + + + A wrapper for a + + storing additional data about the event. + + + A wrapper for a + + storing additional data about the event. + If wrapped event is immutable then the instance of the wrapper is immutable too. + + + + Creates a wrapper for the event with additional data about the event. + + is a + + to wrap + + is a product usage marker + + is a producer line defined by the + + which registered the event + + + + Obtains the license type for the product which generated the event. + product usage type + + + + Gets producer line defined by the + + which registered the + event. + + producer line + + + + Used to confirm that process associated with some + + ended successfully. + + + + Creates an instance of confirmation event. + + is a + + for the document. May be different with + sequence id of original event + + is an event to confirm + + + Creates an instance of confirmation event. + is an event to confirm + + + + Returns the + + associated with confirmed process. + + confirmed event + + + + Defines the strategy of + + confirming. + + + + + The successful execution of the process associated with the event should be confirmed by the + second invocation of the + + method. + + + + + The successful execution of the process associated with the event will be confirmed during + the end of processing. + + + + The process associated with the event shouldn't be confirmed. + + + Class is recommended for internal usage. + Class is recommended for internal usage. Represents system configuration events. + + + Creates an instance of context manager configuration event. + + + Registers generic context for products and namespaces which are associated with them. + namespaces of the products to be registered + the products to be registered + + + Unregisters certain namespaces. + the namespaces to be unregisted + + + The class that retrieves context of its invocation. + + + Gets the singleton instance of this class. + + the + + instance + + + + Gets the context associated with the passed class object. + + Gets the context associated with the passed class object. + The context is determined by class namespace. + + the class for which the context will be determined. + + the + + associated with the class, or + + if the class is unknown. + + + + Gets the context associated with the passed class object. + + Gets the context associated with the passed class object. + The context is determined by class namespace. + + the class name with the namespace for which the context will be determined. + + the + + associated with the class, or + + if the class is unknown. + + + + + Generic context that allows + + based on the whitelist of supported events. + + + + Creates a Generic Context instance with support of provided namespaces and products. + is a collection of supported products + + + Checks if the source product of the event is supported by the context. + + + + + + + + + + + The class that determines weather event should be processed or not. + + The class that determines weather event should be processed or not. + Is calculated by the + + + + + Determines weather event should be processed or not. + is an event to test + true if event is allowed by the actual context and false otherwise + + + The meta info that can holds information about instance that throws the event. + + + + The fallback + . + + + + + The + + that forbids all events. + + + + + The + + that allows all events. + + + + + Creates a fallback + . + + defines whether the context allows all events or not + + + Depending on its internal state allows or rejects all event. + + Depending on its internal state allows or rejects all event. + Behaviour is defined via constructor + + + + + + + + + + + + + + Stores an instance of + + related to iText commons module. + + + + + Getter for an instance of + + related to iText commons module. + + iText commons product description + + + Class is used to describe used product information. + + + Creates a new instance of product data. + is a product name + is a technical name of the product + is a version of the product + is the first year of a product development + is a last year of a product development + + + Creates a new instance of product data. + is a product name + is a technical name of the product + is a version of the product + is a minimal compatible version of licensekey library + is the first year of a product development + is a last year of a product development + + + Getter for a product name. + product name + + + Getter for a technical name of the product. + the technical name of the product + + + Getter for a version of the product. + version of the product + + + Getter for the first year of copyright period. + the first year of copyright + + + Getter for the last year of copyright period. + the last year of copyright + + + Getter for the minimal compatible licensekey version. + minimal compatible version of licensekey library. + + + Entry point for event handling mechanism. + + Entry point for event handling mechanism. Class is a singleton, + see + . + + + + Allows an access to the instance of EventManager. + the instance of the class + + + Deliberately turns off the warning message about AGPL usage. + + Deliberately turns off the warning message about AGPL usage. + + Important note. Calling of this method means that the terms of AGPL license are met. + + + + Handles the event. + to handle + + + + Add new + + to the event handling process. + + is a handler to add + + + Check if the handler was registered for event handling process. + is a handler to check + true if handler has been already registered and false otherwise + + + Removes handler from event handling process. + is a handle to remove + + true if the handler had been registered previously and was removed. False if the + handler was not found among registered handlers + + + + Base marker interface for any generated event of any source. + + + The interface for an event handler. + + + Handles the event. + to handle + + + Class that stores namespaces of iText open source products. + + + Abstract class with some standard functionality for product event processing. + + + Creates a new instance of an abstract processor for the provided product. + the product which will be handled by this processor + + + Defines a default strategy of product event processing. + + + Creates an instance of product event processor. + is a product name + + + + Default factory class to construct + + instance. + + + + Creates default product processor using a product name. + the product which will be handled by this processor + + current + + instance + + + + + Class represents a factory for + + objects. + + + + Creates product processor using a product name. + the product which will be handled by this processor + the processor instance + + + Interface for product event processors. + + + + Handles the + . + + to handle + + + Gets the name of the product to which this processor corresponds. + the product name + + + Gets the usage type of the product to which this processor corresponds. + the usage type + + + Gets the producer line for the product. + the producer line + + + The class defines an under APGL strategy of product event processing. + + + Creates a new instance of under AGPL processor for the provided product. + the product which will be handled by this processor + + + + Factory class to construct + + instance under AGPL license. + + + + Creates under AGPL product processor using a product name. + the product which will be handled by this processor + + current + + instance + + + + Abstract populator for placeholders consuming a parameter which is a pattern string. + + Abstract populator for placeholders consuming a parameter which is a pattern string. Any latin + letter inside the pattern which is not quoted considered as a param defining the component of the + outputted value. + + + + Escaping character. + + + Processes quoted string inside format array. + + Processes quoted string inside format array. It is expected that provided index points to the + apostrophe character so that since the index + 1 position quoted string starts. + + String may contain escaped apostrophes \' which processed as characters. + Backslash is used for escaping so you need double backslash to print it \\. All + the rest backslashes (not followed by apostrophe or one more backslash) are simply ignored. + + is a index of apostrophe starting a new quoted string + + is a + + building a resulting formatted string. It is + updated by the method: quoted string is attached + + is a format representation + index of the character after the closing apostrophe + + + Checks if provided character is a latin letter. + is character to check + true if character is a latin letter and false otherwise + + + Class is used to populate copyrightSince placeholder. + + Class is used to populate copyrightSince placeholder. The resulting string is a + representation of the first year of copyright years range. Among all products involved into + product creation the earliest copyrightSince year is picked as a resulting value. + + + + + Builds a replacement for a placeholder copyrightSince in accordance with the + registered events. + + + is a list of event involved into document processing. It is expected that it + is not empty as such cases should be handled by + + without + calling any + + + + is a parameter for the placeholder. It should be null as + copyrightSince as the placeholder is not configurable + + the earliest copyright year + + + Class is used to populate copyrightTo placeholder. + + Class is used to populate copyrightTo placeholder. The resulting string is a + representation of the last year of copyright years range. Among all products involved into + product creation the latest copyrightTo year is picked as a resulting value + + + + + Builds a replacement for a placeholder copyrightTo in accordance with the + registered events. + + + is a list of event involved into document processing. It is expected that it + is not empty as such cases should be handled by + + without + calling any + + + + is a parameter for the placeholder. It should be null as + copyrightTo as the placeholder is not configurable + + the latest copyright year + + + Class is used to populate currentDate placeholder. + + Class is used to populate currentDate placeholder. Placeholder should be configured + with parameter defining the format of date output. Within format strings, unquoted letters from + A to Z and from a to z are process as pattern + letters. Chain of equal pattern letters forms an appropriate component of + currentDate format. There following components are supported: + + + d is for the day of the month, from 1 through 31 + + dd is for the day of the month, from 01 through 31 + + M defines the month from 1 to 12 + + MM defines the month from 01 to 12 + + MMM defines the abbreviated name of the month + + MMMM defines the full name of month + + yy means the year from 00 to 99 + + yyyy means the year in for digits format + + s shows current second, from 0 through 59 + + ss shows current second, from 00 through 59 + + m is replaced with the current minute from 0 to 59 + + mm is replaced with the current minute from 00 to 59 + + H stands for the current hour, using a 24-hour clock from 0 to 23 + + HH stands for the current hour, using a 24-hour clock from 00 to 23 + + + + Text can be quoted using single quotes (') to avoid interpretation. All other characters are not + interpreted and just copied into the output string. String may contain escaped apostrophes + \' which processed as characters. Backslash is used for escaping so you need double + backslash to print it \\. All the rest backslashes (not followed by apostrophe or + one more backslash) are simply ignored. + + The result of the processing is current date representing in accordance with the provided format. + + + + + Builds a replacement for a placeholder currentDate in accordance with the + provided format. + + + is a list of event involved into document processing. It is not used during + the placeholder replacement + + defines output format in accordance with the description + date of producer line creation in accordance with defined format + + + Interface for placeholder population. + + + + Populates a placeholder based on the list of + + and the array of parts of placeholder. + + is a list of event involved into document processing + is a parameter passed to a placeholder and separated via delimiter : + value for placeholder replacement + + + Class is used for producer line building. + + + Pattern is used to search a placeholders. + + Pattern is used to search a placeholders. Currently it searches substrings started with + ${ and ended with } without } character inside. + These substrings are interpreted as placeholders and the first group is the content of the + placeholder. + Note: The escape on '}' is necessary for regex dialect compatibility reasons. + + + + Modifies an old producer line according to events registered for the document. + + Modifies an old producer line according to events registered for the document. + Events can be either wrapped with + + or not. + Format of the new producer line will be defined by the first event in the list. + Placeholder will be replaced and merged all together + + list of events registered for the document + + old producer line. If null or empty, will be replaced + with a new one. Otherwise new line will be attached with + modified using prefix. If old producer line already contains + modified using substring, it will be overriden with a new one + + modified producer line + + + Configuration events for util internal purposes are not expected to be sent. + + + Class is used to populate usedProducts placeholder. + + Class is used to populate usedProducts placeholder. Placeholder should be configured + with parameter defining the format of output. Within format strings, unquoted letters from + A to Z and from a to z are process as pattern + letters representing appropriate component of usedProducts format. There are three + letters which are allowed in the outputformat: + + + P stands for product name + + V stands for version of the product + + T is for usage type of the product + + + + Text can be quoted using single quotes (') to avoid interpretation. All other characters are not + interpreted and just copied into the output string. String may contain escaped apostrophes + \' which processed as characters. Backslash is used for escaping so you need double + backslash to print it \\. All the rest backslashes (not followed by apostrophe or + one more backslash) are simply ignored. + + The result of the processing is the list of all products mentioned among events as a + comma-separated list. The order of the elements is defined by the order of products mentioning in + the events. Equal strings are skipped even if they were generated for different + products (i. e. format P stands for product name only: if several version of the + same product are used, it will be the only mentioning of that product). + + + + + Builds a replacement for a placeholder usedProducts in accordance with the + registered events and provided format. + + is a list of event involved into document processing + defines output format in accordance with the for description + populated comma-separated list of used products in accordance with the format + + + Handles events based oh their origin. + + + + Pass the event to the appropriate + . + + to handle + + + Helper class which allow to change used product processor factory instance. + + + Sets product processor factory instance. + the instance to be set + + + Restores default factory. + + + Gets reporting product processor factory instance. + the product processor factory instance + + + + The class allows to make any element identifiable so that it is possible to store some metadata + for it. + + + + Obtains an identifier if it was set. + identifier + + + Sets an identifier. + is a new identifier for the element + + + The class represents unique numeric identifier with autoincrement strategy of generation. + + + Creates a new instance of identifier. + + + Obtains an id. + id + + + + Util class which is responsible for marking of + + with + appropriate + . + + + + + Provides an + + with a + . + + + Provides an + + with a + + . Note that it is + forbidden to override already existing identifier. If try to provide a new one then exception + will be thrown. + + is an identifiable element + is an identifier to set + + + Gets an identifier of the element. + Gets an identifier of the element. If it was not provided will return null. + is an identifiable element + the identifier of the element if presented and null otherwise + + + Composite exception class. + + + Notifies that event processing failed. + + + Creates an instance of aggregated exception based on the collection of exceptions. + is a list of aggregated exceptions + + + Creates an instance of aggregated exception based on the collection of exceptions. + the detail message + is a list of aggregated exceptions + + + + Builds message for the exception including its own message and all messages from the + aggregated exceptions. + + aggregated message + + + Gets a list of aggregated exceptions. + aggregated exceptions + + + Class that bundles all the error message templates as constants. + + + Message warns about overriding of the identifier of identifiable element. + + Message warns about overriding of the identifier of identifiable element. List of params: + + 0th is an original element identifier; + + 1st is a new element identifier; + + + + + + General iText exception. + + General iText exception. + + Important note, not all iText exceptions are extended from ITextException. + + + + Creates a new ITextException with no error message and cause. + + + Creates a new ITextException. + the detail message + + + Creates a new ITextException. + + the cause (which is saved for later retrieval by + + method) + + + + Creates a new ITextException. + the detail message + + the cause (which is saved for later retrieval by + + method) + + + + The class represents a signal to the event handler that it is necessary to repeat the handling of the current event. + + + + + Creates a new instance of + + based on message. + + the detail message + + + An exception notifies that unknown product was found in iText ecosystem. + + + Message notifies that event corresponding to unknown product was met. + + Message notifies that event corresponding to unknown product was met. It is a parametrized + message. List of params: + + the name of unknown product + + + + + + Creates a new instance of the exception. + the detail message + + + + iText static log manager working with the Microsoft.Extensions.Logging framework. Use it to add iText + logs to your application. Call to set up a logger factory that will + receive iText log messages. + + + + + Sets the implementation of to be used for creating + objects. + + The factory. + + + + Gets an instance of the used logger factory. + + The factory. + + + + Creates a new instance using the full name of the given type. + + The type. + + + + Class that bundles all the error message templates as constants. + + + Message notifies that an invalid statistics name was received, because there is no aggregator for it. + + + Message notifies that an invalid statistics name was received, because there is no aggregator for it. + + 0th is a statistics name which is invalid; + + + + + + Message notifies that files archiving operation failed. + + Message notifies that files archiving operation failed. + + 0th is a message of thrown exception; + + + + + + Message notifies that some exception has been thrown during json deserialization from object. + + Message notifies that some exception has been thrown during json deserialization from object. + List of params: + + 0th is a class name of thrown exception; + + 1st is a message of thrown exception; + + + + + + Message notifies that some exception has been thrown during json serialization to object. + + Message notifies that some exception has been thrown during json serialization to object. + List of params: + + 0th is a class name of thrown exception; + + 1st is a message of thrown exception; + + + + + + + Message notifies that unknown placeholder was ignored during parsing of the producer line + format. + + + Message notifies that unknown placeholder was ignored during parsing of the producer line + format. List of params: + + 0th is a name of ignored placeholder; + + + + + + Message warns that some event is at confirmation stage but it is not known. + + Message warns that some event is at confirmation stage but it is not known. Probably some processing has failed. + List of params: + + 0th is a name of product for which event was reported; + + 1st is an event type; + + + + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + Gets the date time as UTC milliseconds from the epoch. + + date to be converted to millis + the date as UTC milliseconds from the epoch + + + + Gets the calendar date and time of a day. + + the date to be returned as calendar + the calendar date and time of a day + + + + Gets the current time in the default time zone with the default locale. + + the current time in the default time zone with the default locale + + + + Gets the current time consistently. + + the time at which it was allocated, measured to the nearest millisecond + + + + Defines if date is in past. + + true if given date is in past, false instead + + + + Gets the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by specified date. + + the specified date to get time + the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by the specified date + + + + Parses passing date with default {@code yyyy-MM-dd} pattern. + + date is date to be parse + parse date + + + + Parses passing date with specified format. + + the date to be parsed + the format of parsing the date + parsed date + + + + Format passing date with default yyyy-MM-dd pattern. + + the date to be formatted + formatted date + + + + Format passing date with specified pattern. + + the date to be formatted + pattern for format + formatted date + + + + Gets the offset of time zone from UTC. + + the offset of time zone from UTC + + + + Gets the offset of time zone from UTC at the specified date. + + the date represented in milliseconds since January 1, 1970 00:00:00 GMT + the offset of time zone from UTC at the specified date adjusted with the amount of daylight saving. + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + Converts to byte array an array of chars, taking the provided encoding into account. + + an array of chars to be converted to bytes + the encoding to be taken into account while converting the provided array of chars + the resultant array of bytes + + + + Converts to String an array of bytes, taking the provided encoding into account. + + an array of bytes to be converted to String + the encoding to be taken into account while converting the provided bytes + the resultant string + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + Gets the default windows font directory. + + the default windows font directory + + + + Checks whether there is a file at the provided path. + + the path to the file to be checked on existence + true if such a file exists, otherwise false + + + + Checks whether is provided file not empty. + + the path to the file to be checked on emptiness + true if such file is not empty, false otherwise + + + + Checks whether there is a directory at the provided path. + + the path to the directory to be checked on existence + true if such a directory exists, otherwise false + + + + Lists all the files located at the provided directory. + + path to the directory + if true, files from all the subdirectories will be returned + all the files located at the provided directory + + + + Lists all the files located at the provided directory, which are accepted by the provided filter. + + path to the directory + filter to accept files to be listed + all the files located at the provided directory, which are accepted by the provided filter + + + + Lists all the files located at the provided directory, which are accepted by the provided filter. + + path to the directory + if true, files from all the subdirectories will be returned + filter to accept files to be listed + all the files located at the provided directory, which are accepted by the provided filter + + + + Creates a temporary file at the provided path. + + path to the temporary file to be created. If it is a directory, + then the temporary file will be created at this directory + the created temporary file + + + + Creates a directory at the provided path. + + path to the directory to be created + + + + Deletes a file and returns whether the operation succeeded. + + + Deletes a file and returns whether the operation succeeded. + Note that only *files* are supported, not directories. + + file to be deleted + true if file was deleted successfully, false otherwise + + + + Returns an URL of the parent directory for the resource. + + of resource + parent directory path| the same path if a catalog`s url is passed; + + + + Abstract class for reading filtered character streams. + The abstract class FilterReader itself + provides default methods that pass all requests to + the contained stream. Subclasses of FilterReader + should override some of these methods and may also provide + additional methods and fields. + + @author Mark Reinhold + @since JDK1.1 + + + + + Reads a single character. + + + + + Reads characters into a portion of an array. + + + + + A mapping for java's FunctionalInterface attribute to allow clean code in java. + + + + Translates a IANA encoding name to a Java encoding. + + + The object that maps IANA to Java encodings. + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + Utility class for JSON serialization and deserialization operations. Not for public use. + + + + Compares two json strings without considering the order of the elements. + + expected json string + string for comparison + true if two json string are equals, false otherwise + + + + Serializes passed object to JSON string. + + the object which will be serialized + the JSON string representation of passed object or null if it is impossible to serialize to JSON + + + + Serializes passed object to minimal JSON string without spaces and line breaks. + + the object which will be serialized + the minimal JSON string representation of passed object or null if it is impossible to serialize to JSON + + + + Deserializes passed JSON stream to object with passed type. + + the JSON stream which represent object + the type of object which will be deserialized + the type of object which will be deserialized + the deserialized object or null if operation of deserialization is impossible + + + + Deserializes passed JSON string to object with passed type. + + the JSON string which represent object + the type of object which will be deserialized + the type of object which will be deserialized + the deserialized object or null if operation of deserialization is impossible + + + Utility class for work with collections. + Utility class for work with collections. Not for public use. + + + + Checks if two + maps + are equal: the are of the same types and has equal number of stored + entries and both has the same set of keys ans each key is associated with an appropriate + value. + + is the first map + is the second map + is a type of keys + is a type of values + + + + if maps are equal and + + otherwise + + + + Merges data from source Map into destination Map using provided function if key exists in both Maps. + + + Merges data from source Map into destination Map using provided function if key exists in both Maps. + If key doesn't exist in destination Map in will be putted directly. + + Map to which data will be merged. + Map from which data will be taken. + function which will be used to merge Maps values. + is a type of keys + is a type of values + + + + Calculates the hash code of the + map. + + is the map + is a type of keys + is a type of values + + the hash code of the + map. + + + + Puts value to map if the value is not null. + the map in which value can be pushed + the key + the value + is a type of key + is a type of value + + + This file is a helper class for internal usage only. + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + Class contains a process information, such as process exit code and process output. + + + + Create a new instance, containing a process information, + such as process exit code, process standard and error outputs. + + exit code of the process. + the standard output of the process. + the error output of the process. + + + Getter for a process exit code. + Returns a process exit code. + + + Getter for a standard process output. + Returns a process standard output string. + + + Getter for an error process output. + Returns a process error output string. + + + + Summary description for Properties. + + + + + A character-stream reader that allows characters to be pushed back into the + stream. + + @author Mark Reinhold + @since JDK1.1 + + + + + Pushback buffer + + + + Current position in buffer + + + + Creates a new pushback reader with a pushback buffer of the given size. + + The reader from which characters will be read + The size of the pushback buffer + + + + Creates a new pushback reader with a one-character pushback buffer. + + The reader from which characters will be read + + + + Checks to make sure that the stream has not been closed. + + + + Reads a single character. + + The character read, or -1 if the end of the stream has been + reached + + + + + Reads characters into a portion of an array. + + Destination buffer + Offset at which to start writing characters + Maximum number of characters to read + + The number of characters read, or -1 if the end of the + stream has been reached + + + + + Pushes back a single character by copying it to the front of the + pushback buffer. After this method returns, the next character to be read + will have the value (char)c. + + The int value representing a character to be pushed back + + + + + Pushes back a portion of an array of characters by copying it to the + front of the pushback buffer. After this method returns, the next + character to be read will have the value cbuf[off], the + character after that will have the value cbuf[off+1], and + so forth. + + Character array + Offset of first character to push back + Number of characters to push back + + + + + Pushes back an array of characters by copying it to the front of the + pushback buffer. After this method returns, the next character to be + read will have the value cbuf[0], the character after that + will have the value cbuf[1], and so forth. + + Character array to push back + + + + + Closes the stream and releases any system resources associated with + it. Once the stream has been closed, further read(), + unread(), ready(), or skip() invocations will throw an IOException. + Closing a previously closed stream has no effect. + + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + + + the index of the first element, inclusive, to be sorted + the index of the last element, exclusive, to be sorted + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + Should be used in relative constructs (for example to check how many milliseconds have passed). + Shouldn't be used in the DateTime creation since the nanoseconds are expected there. + + relative time in milliseconds + + + + Gets environment variable with given name. + + the name of environment variable. + variable value or null if there is no such. + + + Unicode script "Common". + + + Unicode script "Latin". + + + Unicode script "Greek". + + + Unicode script "Cyrillic". + + + Unicode script "Armenian". + + + Unicode script "Hebrew". + + + Unicode script "Arabic". + + + Unicode script "Syriac". + + + Unicode script "Thaana". + + + Unicode script "Devanagari". + + + Unicode script "Bengali". + + + Unicode script "Gurmukhi". + + + Unicode script "Gujarati". + + + Unicode script "Oriya". + + + Unicode script "Tamil". + + + Unicode script "Telugu". + + + Unicode script "Kannada". + + + Unicode script "Malayalam". + + + Unicode script "Sinhala". + + + Unicode script "Thai". + + + Unicode script "Lao". + + + Unicode script "Tibetan". + + + Unicode script "Myanmar". + + + Unicode script "Georgian". + + + Unicode script "Hangul". + + + Unicode script "Ethiopic". + + + Unicode script "Cherokee". + + + Unicode script "Canadian_Aboriginal". + + + Unicode script "Ogham". + + + Unicode script "Runic". + + + Unicode script "Khmer". + + + Unicode script "Mongolian". + + + Unicode script "Hiragana". + + + Unicode script "Katakana". + + + Unicode script "Bopomofo". + + + Unicode script "Han". + + + Unicode script "Yi". + + + Unicode script "Old_Italic". + + + Unicode script "Gothic". + + + Unicode script "Deseret". + + + Unicode script "Inherited". + + + Unicode script "Tagalog". + + + Unicode script "Hanunoo". + + + Unicode script "Buhid". + + + Unicode script "Tagbanwa". + + + Unicode script "Limbu". + + + Unicode script "Tai_Le". + + + Unicode script "Linear_B". + + + Unicode script "Ugaritic". + + + Unicode script "Shavian". + + + Unicode script "Osmanya". + + + Unicode script "Cypriot". + + + Unicode script "Braille". + + + Unicode script "Buginese". + + + Unicode script "Coptic". + + + Unicode script "New_Tai_Lue". + + + Unicode script "Glagolitic". + + + Unicode script "Tifinagh". + + + Unicode script "Syloti_Nagri". + + + Unicode script "Old_Persian". + + + Unicode script "Kharoshthi". + + + Unicode script "Balinese". + + + Unicode script "Cuneiform". + + + Unicode script "Phoenician". + + + Unicode script "Phags_Pa". + + + Unicode script "Nko". + + + Unicode script "Sundanese". + + + Unicode script "Batak". + + + Unicode script "Lepcha". + + + Unicode script "Ol_Chiki". + + + Unicode script "Vai". + + + Unicode script "Saurashtra". + + + Unicode script "Kayah_Li". + + + Unicode script "Rejang". + + + Unicode script "Lycian". + + + Unicode script "Carian". + + + Unicode script "Lydian". + + + Unicode script "Cham". + + + Unicode script "Tai_Tham". + + + Unicode script "Tai_Viet". + + + Unicode script "Avestan". + + + Unicode script "Egyptian_Hieroglyphs". + + + Unicode script "Samaritan". + + + Unicode script "Mandaic". + + + Unicode script "Lisu". + + + Unicode script "Bamum". + + + Unicode script "Javanese". + + + Unicode script "Meetei_Mayek". + + + Unicode script "Imperial_Aramaic". + + + Unicode script "Old_South_Arabian". + + + Unicode script "Inscriptional_Parthian". + + + Unicode script "Inscriptional_Pahlavi". + + + Unicode script "Old_Turkic". + + + Unicode script "Brahmi". + + + Unicode script "Kaithi". + + + Unicode script "Meroitic Hieroglyphs". + + + Unicode script "Meroitic Cursive". + + + Unicode script "Sora Sompeng". + + + Unicode script "Chakma". + + + Unicode script "Sharada". + + + Unicode script "Takri". + + + Unicode script "Miao". + + + Unicode script "Unknown". + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + * Returns the enum constant representing the Unicode script of which + * the given character (Unicode code point) is assigned to. + * + * @param codePoint the character (Unicode code point) in question. + * @return The {@code UnicodeScript} constant representing the + * Unicode script of which this character is assigned to. + * + * @exception IllegalArgumentException if the specified + * {@code codePoint} is an invalid Unicode code point. + * @see Character#isValidCodePoint(int) + * + + + Allows reading entries from a zip file. + + + + Creates an instance for zip file reading. + + the path to the zip file to read + if some I/O exception occurs + + + + Get all file entries paths inside the reading zip file. + + the {@link Set} of all file entries paths + + + + Read single file from zip. + + the file path inside zip to read + the {@link InputStream} represents read file content + if some I/O exception occurs + + + Allows writing entries into a zip file. + + + + Creates an instance for zip file writing. + + the path to the zip file to write + if some I/O exception occurs + + + + Add file from disk into zip archive. + + the target name of the file inside zip after writing + the path to the file on disk to archive + if some I/O exception occurs + + + + Add file into zip archive with data from stream. + + the target name of the file inside zip after writing + the input stream to archive + if some I/O exception occurs + + + + Add file into zip archive with object serialized as JSON. + + the target name of the file inside zip after writing + the object to serialize as JSON + if some I/O exception occurs + + + diff --git a/Bin/itext.forms.dll b/Bin/itext.forms.dll new file mode 100644 index 000000000..35373c48c Binary files /dev/null and b/Bin/itext.forms.dll differ diff --git a/Bin/itext.forms.dll.refresh b/Bin/itext.forms.dll.refresh new file mode 100644 index 000000000..be61dbe65 --- /dev/null +++ b/Bin/itext.forms.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.forms.dll \ No newline at end of file diff --git a/Bin/itext.forms.xml b/Bin/itext.forms.xml new file mode 100644 index 000000000..8330f120d --- /dev/null +++ b/Bin/itext.forms.xml @@ -0,0 +1,5944 @@ + + + + itext.forms + + + + The exception thrown when the attribute with given name is not found in the object attributes list. + + the name of missing attribute. + + + Class that bundles all the error message templates as constants. + + + Message in case one tries to add attribute with null name or value + + + Message in case one tries to add annotation without indicating the page it belongs to + + + The form underline border. + + + + The form beveled border. + + + + The form inset border. + + + + + + + + + + + + + + A factory for creating + + implementations. + + + + + Returns + + for specific borderStyle. + + border style dictionary. ISO 32000-1 12.5.4 + width of the border + color of the border + element background color. This param used for drawing beveled border type + + + + implementation or + + + + + + + + + + + + + + + + + + + + + + + Custom implementation for rendering form field values. + + Custom implementation for rendering form field values. It makes sure that text value + trimming strategy matches Acrobat's behavior + + + + Class to store meta info that will be used in forms module in static context. + + + Sets meta info related to forms into static context, executes the action and then cleans meta info. + + + Sets meta info related to forms into static context, executes the action and then cleans meta info. + + Keep in mind that this instance will only be accessible from the same thread. + + instance to be set. + action which will be executed while meta info is set to static context. + + + Gets meta info which was set previously. + + Gets meta info which was set previously. + + Keep in mind that this operation will return meta info instance which was set previously from the same thread. + + meta info instance. + + + An interactive control on the screen that raises events and/or can retain data. + + + Button field flags + + + Returns Btn, the form type for choice form fields. + + the form type, as a + + + + + + If true, the field is a set of radio buttons; if false, the field is a + check box. + + + If true, the field is a set of radio buttons; if false, the field is a + check box. This flag only works if the Pushbutton flag is set to false. + + whether the field is currently radio buttons or a checkbox + + + + If true, the field is a set of radio buttons; if false, the field is a + check box. + + + If true, the field is a set of radio buttons; if false, the field is a + check box. This flag should be set only if the Pushbutton flag is set to false. + + whether the field should be radio buttons or a checkbox + + current + + + + + + If true, clicking the selected button deselects it, leaving no button + selected. + + + If true, clicking the selected button deselects it, leaving no button + selected. If false, exactly one radio button shall be selected at all + times. Only valid for radio buttons. + + whether a radio button currently allows to choose no options + + + If true, clicking the selected button deselects it, leaving no button selected. + + If true, clicking the selected button deselects it, leaving no button selected. + If false, exactly one radio button shall be selected at all times. + + whether a radio button may allow to choose no options + + current + + + + + If true, the field is a pushbutton that does not retain a permanent value. + whether or not the field is currently a pushbutton + + + If true, the field is a pushbutton that does not retain a permanent value. + whether or not to set the field to a pushbutton + + current + + + + + + If true, a group of radio buttons within a radio button field that use + the same value for the on state will turn on and off in unison; + that is if one is checked, they are all checked. + + + If true, a group of radio buttons within a radio button field that use + the same value for the on state will turn on and off in unison; + that is if one is checked, they are all checked. + If false, the buttons are mutually exclusive + + whether or not buttons are turned off in unison + + + + If true, a group of radio buttons within a radio button field that use + the same value for the on state will turn on and off in unison; that is + if one is checked, they are all checked. + + + If true, a group of radio buttons within a radio button field that use + the same value for the on state will turn on and off in unison; that is + if one is checked, they are all checked. + If false, the buttons are mutually exclusive + + whether or not buttons should turn off in unison + + current + + + + + An AcroForm field type representing any type of choice field. + + An AcroForm field type representing any type of choice field. Choice fields + are to be represented by a viewer as a list box or a combo box. + + + + Choice field flags + + + Returns Ch, the form type for choice form fields. + + the form type, as a + + + + + Sets the index of the first visible option in a scrollable list. + the index of the first option + + current + + + + + Gets the current index of the first option in a scrollable list. + + the index of the first option, as a + + + + + Sets the selected items in the field. + a sorted array of indices representing selected items in the field + + current + + + + + Highlights the options. + + Highlights the options. If this method is used for Combo box, the first value in input array + will be the field value + + Array of options to be highlighted + + current + + + + + Highlights the options and generates field appearance if needed.. + + Highlights the options and generates field appearance if needed.. If this method is used for Combo box, the first value in input array + will be the field value + + Array of options to be highlighted + if false, appearance won't be regenerated + + current + + + + + Highlights the options. + + Highlights the options. If this method is used for Combo box, the first value in input array + will be the field value + + The option numbers + + The edited + + + + + Gets the currently selected items in the field + a sorted array of indices representing the currently selected items in the field + + + If true, the field is a combo box; if false, the field is a list box. + whether or not the field should be a combo box + + current + + + + + If true, the field is a combo box; if false, the field is a list box. + whether or not the field is now a combo box. + + + + If true, the combo box shall include an editable text box as well as a + drop-down list; if false, it shall include only a drop-down list. + + + If true, the combo box shall include an editable text box as well as a + drop-down list; if false, it shall include only a drop-down list. + This flag shall be used only if the Combo flag is true. + + whether or not to add an editable text box + + current + + + + + + If true, the combo box shall include an editable text box as well as a + drop-down list; if false, it shall include only a drop-down list. + + + If true, the combo box shall include an editable text box as well as a + drop-down list; if false, it shall include only a drop-down list. + This flag shall be used only if the Combo flag is true. + + whether or not there is currently an editable text box + + + If true, the field's option items shall be sorted alphabetically. + + If true, the field's option items shall be sorted alphabetically. + This flag is intended for use by writers, not by readers. + + whether or not to sort the items + + current + + + + + If true, the field's option items shall be sorted alphabetically. + + If true, the field's option items shall be sorted alphabetically. + This flag is intended for use by writers, not by readers. + + whether or not the items are currently sorted + + + + If true, more than one of the field's option items may be selected + simultaneously; if false, at most one item shall be selected. + + whether or not to allow multiple selection + + current + + + + + If true, more than one of the field's option items may be selected simultaneously; if false, at most one item shall be selected. + + whether or not multiple selection is currently allowed + + + If true, text entered in the field shall be spell-checked.. + whether or not to require the PDF viewer to perform a spell check + + current + + + + + If true, text entered in the field shall be spell-checked.. + whether or not PDF viewer must perform a spell check + + + If true, the new value shall be committed as soon as a selection is made (commonly with the pointing device). + + whether or not to save changes immediately + + current + + + + + If true, the new value shall be committed as soon as a selection is made (commonly with the pointing device). + + whether or not to save changes immediately + + + + This class represents a single field or field group in an + AcroForm. + + + This class represents a single field or field group in an + AcroForm. + + To be able to be wrapped with this + + the + + must be indirect. + + + + + Flag that designates, if set, that the field can contain multiple lines + of text. + + + + Flag that designates, if set, that the field's contents must be obfuscated. + + + A field with the symbol check + + + A field with the symbol circle + + + A field with the symbol cross + + + A field with the symbol diamond + + + A field with the symbol square + + + A field with the symbol star + + + Default padding X offset + + + Size of text in form fields when font size is not explicitly set. + + + Minimal size of text in form fields + + + Index of font value in default appearance element + + + Index of font size value in default appearance element + + + Index of color value in default appearance element + + + + Creates a form field as a wrapper object around a + . + + + Creates a form field as a wrapper object around a + . + This + + must be an indirect object. + + the dictionary to be wrapped, must have an indirect reference. + + + + Creates a minimal + . + + The document + + + + Creates a form field as a parent of a + . + + + The widget which will be a kid of the + + + The document + + + Makes a field flag by bit position. + + Makes a field flag by bit position. Bit positions are numbered 1 to 32. + But position 0 corresponds to flag 1, position 3 corresponds to flag 4 etc. + + bit position of a flag in range 1 to 32 from the pdf specification. + corresponding field flag. + + + + Creates an empty form field without a predefined set of layout or + behavior. + + + the + + to create the field in + + + a new + + + + + + Creates an empty form field without a predefined set of layout or + behavior. + + + the + + to create the field in + + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates an empty + button form field + with custom + behavior and layout, on a specified location. + + + the + + to create the button field in + + the location on the page for the button + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + a new + + + + + + Creates an empty + button form field + with custom + behavior and layout, on a specified location. + + + the + + to create the button field in + + the location on the page for the button + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates an empty + button form field + with custom + behavior and layout. + + + the + + to create the button field in + + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + a new + + + + + + Creates an empty + button form field + with custom + behavior and layout. + + + the + + to create the button field in + + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates an empty + text form field. + + + the + + to create the text field in + + + a new + + + + + + Creates an empty + text form field. + + + the + + to create the text field in + + + the desired + + of the field. Must match the conformance + level of the + + this field will eventually be added into + + + a new + + + + + + Creates an empty + text form field. + + + the + + to create the text field in + + the location on the page for the text field + + a new + + + + + + Creates a named + text form field + with an initial + value, and the form's default font specified in + . + + + the + + to create the text field in + + the location on the page for the text field + the name of the form field + + a new + + + + + + Creates a named + text form field + with an initial + value, and the form's default font specified in + . + + + the + + to create the text field in + + the location on the page for the text field + the name of the form field + the initial value + + a new + + + + + + Creates a named + text form field + with an initial + value, with a specified font and font size. + + + the + + to create the text field in + + the location on the page for the text field + the name of the form field + the initial value + + a + + + the size of the font + + a new + + + + + + Creates a named + text form field + with an initial + value, with a specified font and font size. + + + the + + to create the text field in + + the location on the page for the text field + the name of the form field + the initial value + + a + + + the size of the font + true for multiline text field + + a new + + + + + + Creates a named + text form field + with an initial + value, with a specified font and font size. + + + the + + to create the text field in + + the location on the page for the text field + the name of the form field + the initial value + + a + + + the size of the font + true for multiline text field + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates a named + multilined text form field + with an initial + value, with a specified font and font size. + + + the + + to create the text field in + + the location on the page for the text field + the name of the form field + the initial value + + a + + + the size of the font + + a new + + + + + + Creates a named + multiline text form field + with an initial + value, and the form's default font specified in + . + + + the + + to create the text field in + + the location on the page for the text field + the name of the form field + the initial value + + a new + + + + + + Creates an empty + choice form field. + + + the + + to create the choice field in + + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + a new + + + + + + Creates an empty + choice form field. + + + the + + to create the choice field in + + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates an empty + choice form field + with custom + behavior and layout, on a specified location. + + + the + + to create the choice field in + + the location on the page for the choice field + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + a new + + + + + + Creates a + choice form field + with custom + behavior and layout, on a specified location. + + + the + + to create the choice field in + + the location on the page for the choice field + the name of the form field + the initial value + + an array of + + objects that each represent + the 'on' state of one of the choices. + + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + a new + + + + + + Creates a + choice form field + with custom + behavior and layout, on a specified location. + + + the + + to create the choice field in + + the location on the page for the choice field + the name of the form field + the initial value + + an array of + + objects that each represent + the 'on' state of one of the choices. + + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + the desired font to be used when displaying the text + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates a + choice form field + with custom + behavior and layout, on a specified location. + + + the + + to create the choice field in + + the location on the page for the choice field + the name of the form field + the initial value + + a + + + the size of the font + + an array of + + objects that each represent + the 'on' state of one of the choices. + + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + a new + + + + + + Creates a + choice form field + with custom + behavior and layout, on a specified location. + + + the + + to create the choice field in + + the location on the page for the choice field + the name of the form field + the initial value + + a + + + the size of the font + + an array of + + objects that each represent + the 'on' state of one of the choices. + + + an int, containing a set of binary behavioral + flags. Do binary OR on this int to set the + flags you require. + + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates an empty + signature form field. + + + the + + to create the signature field in + + + a new + + + + + + Creates an empty + signature form field. + + + the + + to create the signature field in + + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates an empty + signature form field. + + + the + + to create the signature field in + + the location on the page for the signature field + + a new + + + + + + Creates an empty + signature form field. + + + the + + to create the signature field in + + the location on the page for the signature field + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates a + radio group form field. + + + the + + to create the radio group in + + the name of the form field + the initial value + + a new + radio group + + + + + Creates a + radio group form field. + + + the + + to create the radio group in + + the name of the form field + the initial value + + the + + of the document. + + null if it's no PDF/A document + + + a new + radio group + + + + + Creates a generic + + that is added to a radio group. + + + the + + to create the radio group in + + the location on the page for the field + the radio button group that this field should belong to + the initial value + + a new + + + + + + + Creates a generic + + that is added to a radio group. + + + the + + to create the radio group in + + the location on the page for the field + the radio button group that this field should belong to + the initial value + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + + Creates a + + as a push button without data. + + + the + + to create the radio group in + + the location on the page for the field + the name of the form field + the text to display on the button + + a new + + + + + + Creates a + + as a push button without data, with + its caption in a custom font. + + + the + + to create the radio group in + + the location on the page for the field + the name of the form field + the text to display on the button + + a + + + the size of the font + + a new + + + + + + Creates a + + as a push button without data, with + its caption in a custom font. + + + the + + to create the radio group in + + the location on the page for the field + the name of the form field + the text to display on the button + + a + + + the size of the font + + the + + of the document. + + null if it's no PDF/A document + + + a new + + + + + + Creates a + + as a checkbox. + + + the + + to create the radio group in + + the location on the page for the field + the name of the form field + the initial value + + a new + checkbox + + + + + Creates a + + as a checkbox. + + + the + + to create the radio group in + + the location on the page for the field + the name of the form field + the initial value + the type of checkbox graphic to use. + + a new + checkbox + + + + + Creates a + + as a checkbox. + + + Creates a + + as a checkbox. Check symbol will fit rectangle. + You may set font and font size after creation. + + + the + + to create the radio group in + + the location on the page for the field + the name of the form field + the initial value + the type of checkbox graphic to use. + + the + + of the document. + + null if it's no PDF/A document + + + a new + checkbox + + + + + Creates a + combobox + with custom + behavior and layout, on a specified location. + + + the + + to create the combobox in + + the location on the page for the combobox + the name of the form field + the initial value + + a two-dimensional array of Strings which will be converted + to a PdfArray. + + + a new + + as a combobox + + + + + Creates a + combobox + with custom + behavior and layout, on a specified location. + + + the + + to create the combobox in + + the location on the page for the combobox + the name of the form field + the initial value + + a two-dimensional array of Strings which will be converted + to a PdfArray. + + the desired font to be used when displaying the text + + the + + of the document. + + null if it's no PDF/A document + + + a new + + as a combobox + + + + + Creates a + combobox + with custom + behavior and layout, on a specified location. + + + the + + to create the combobox in + + the location on the page for the combobox + the name of the form field + the initial value + an array of Strings which will be converted to a PdfArray. + + a new + + as a combobox + + + + + Creates a + combobox + with custom + behavior and layout, on a specified location. + + + the + + to create the combobox in + + the location on the page for the combobox + the name of the form field + the initial value + an array of Strings which will be converted to a PdfArray. + the desired font to be used when displaying the text + + the + + of the document. + + null if it's no PDF/A document + + + a new + + as a combobox + + + + + Creates a + list field + with custom + behavior and layout, on a specified location. + + + the + + to create the choice field in + + the location on the page for the choice field + the name of the form field + the initial value + + a two-dimensional array of Strings which will be converted + to a PdfArray. + + + a new + + as a list field + + + + + Creates a + list field + with custom + behavior and layout, on a specified location. + + + the + + to create the choice field in + + the location on the page for the choice field + the name of the form field + the initial value + + a two-dimensional array of Strings which will be converted + to a PdfArray. + + the desired font to be used when displaying the text + + the + + of the document. + + null if it's no PDF/A document + + + a new + + as a list field + + + + + Creates a + list field + with custom + behavior and layout, on a specified location. + + + the + + to create the list field in + + the location on the page for the list field + the name of the form field + the initial value + an array of Strings which will be converted to a PdfArray. + + a new + + as a list field + + + + + Creates a + list field + with custom + behavior and layout, on a specified location. + + + the + + to create the list field in + + the location on the page for the list field + the name of the form field + the initial value + an array of Strings which will be converted to a PdfArray. + the desired font to be used when displaying the text + + the + + of the document. + + null if it's no PDF/A document + + + a new + + as a list field + + + + + Creates a (subtype of) + + object. + + + Creates a (subtype of) + + object. The type of the object + depends on the FT entry in the pdfObject parameter. + + + assumed to be either a + + , or a + + to a + + + + the + + to create the field in + + + a new + + , or null if + pdfObject does not contain a FT entry + + + + + Returns the type of the parent form field, or of the wrapped + <PdfDictionary> object. + + + the form type, as a + + + + + Sets a value to the field and generating field appearance if needed. + of the field + the field + + + Sets a value to the field and generates field appearance if needed. + of the field + if false, appearance won't be regenerated + the field + + + Set text field value with given font and size + text value + + a + + + the size of the font + the edited field + + + Sets the field value and the display string. + + Sets the field value and the display string. The display string + is used to build the appearance. + + the field value + + the string that is used for the appearance. If null + the value parameter will be used + + the edited field + + + + Sets a parent + + for the current object. + + another form field that this field belongs to, usually a group field + the edited field + + + Gets the parent dictionary. + another form field that this field belongs to, usually a group field + + + Gets the kids of this object. + + contents of the dictionary's Kids property, as a + + + + + + Adds a new kid to the Kids array property from a + . + + + Adds a new kid to the Kids array property from a + + . Also sets the kid's Parent property to this object. + + + a new + + entry for the field's Kids array property + + the edited field + + + + Adds a new kid to the Kids array property from a + . + + + Adds a new kid to the Kids array property from a + + . Also sets the kid's Parent property to this object. + + + a new + + entry for the field's Kids array property + + the edited field + + + Changes the name of the field to the specified value. + the new field name, as a String + the edited field + + + Gets the current field name. + + the current field name, as a + + + + + Changes the alternate name of the field to the specified value. + + Changes the alternate name of the field to the specified value. The + alternate is a descriptive name to be used by status messages etc. + + the new alternate name, as a String + the edited field + + + Gets the current alternate name. + + Gets the current alternate name. The alternate is a descriptive name to + be used by status messages etc. + + + the current alternate name, as a + + + + + Changes the mapping name of the field to the specified value. + + Changes the mapping name of the field to the specified value. The + mapping name can be used when exporting the form data in the document. + + the new alternate name, as a String + the edited field + + + Gets the current mapping name. + + Gets the current mapping name. The mapping name can be used when + exporting the form data in the document. + + + the current mapping name, as a + + + + + + Checks whether a certain flag, or any of a combination of flags, is set + for this form field. + + an int interpreted as a series of a binary flags + + true if any of the flags specified in the parameter is also set + in the form field. + + + + Adds a flag, or combination of flags, for the form field. + + Adds a flag, or combination of flags, for the form field. This method is + intended to be used one flag at a time, but this is not technically + enforced. To replace the current value, use + . + + an int interpreted as a series of a binary flags + the edited field + + + Adds or removes a flag, or combination of flags, for the form field. + + Adds or removes a flag, or combination of flags, for the form field. This + method is intended to be used one flag at a time, but this is not + technically enforced. To replace the current value, use + . + + an int interpreted as a series of a binary flags + + if true, adds the flag(s). if false, + removes the flag(s). + + the edited field + + + If true, the field can contain multiple lines of text; if false, the field's text is restricted to a single line. + + whether the field can span over multiple lines. + + + If true, the field is intended for entering a secure password that should not be echoed visibly to the screen. + + + If true, the field is intended for entering a secure password that should not be echoed visibly to the screen. + Characters typed from the keyboard should instead be echoed in some unreadable form, such as asterisks or bullet characters. + + whether or not the contents of the field must be obfuscated + + + Sets a flag, or combination of flags, for the form field. + + Sets a flag, or combination of flags, for the form field. This method + replaces the previous value. Compare with + + which adds a flag to the existing flags. + + an int interpreted as a series of a binary flags + the edited field + + + Gets the current list of PDF form field flags. + the current list of flags, encoded as an int + + + Gets the current value contained in the form field. + + the current value, as a + + + + + Gets the current value contained in the form field. + + the current value, as a + + + + + Sets the default fallback value for the form field. + the default value + the edited field + + + Gets the default fallback value for the form field. + the default value + + + Sets an additional action for the form field. + the dictionary key to use for storing the action + the action + the edited field + + + Gets the currently additional action dictionary for the form field. + the additional action dictionary + + + Sets options for the form field. + Sets options for the form field. Only to be used for checkboxes and radio buttons. + + an array of + + objects that each represent + the 'on' state of one of the choices. + + the edited field + + + Gets options for the form field. + + Gets options for the form field. Should only return usable values for + checkboxes and radio buttons. + + + the options, as an + + of + + objects + + + + + Gets all + + that this form field and its + kids + refer to. + + + a list of + + + + + + Gets default appearance string containing a sequence of valid page-content graphics or text state operators that + define such properties as the field's text size and color. + + + the default appearance graphics, as a + + + + + Updates DA for Variable text, Push button and choice form fields. + + Updates DA for Variable text, Push button and choice form fields. + The resources required for DA will be put to AcroForm's DR. + Note, for other form field types DA will be removed. + + + + + Gets a code specifying the form of quadding (justification) to be used in displaying the text: + 0 Left-justified + 1 Centered + 2 Right-justified + + the current justification attribute + + + + Sets a code specifying the form of quadding (justification) to be used in displaying the text: + 0 Left-justified + 1 Centered + 2 Right-justified + + the value to set the justification attribute to + the edited field + + + Gets a default style string, as described in "Rich Text Strings" section of Pdf spec. + + the default style, as a + + + + + Sets a default style string, as described in "Rich Text Strings" section of Pdf spec. + a new default style for the form field + the edited field + + + Gets a rich text string, as described in "Rich Text Strings" section of Pdf spec. + + Gets a rich text string, as described in "Rich Text Strings" section of Pdf spec. + May be either + + or + . + + the current rich text value + + + Sets a rich text string, as described in "Rich Text Strings" section of Pdf spec. + + Sets a rich text string, as described in "Rich Text Strings" section of Pdf spec. + May be either + + or + . + + a new rich text value + The edited PdfFormField + + + Gets the current fontSize of the form field. + the current fontSize + + + Gets the current font of the form field. + + the current + font + + + + Gets the current color of the form field. + + the current + color + + + + Basic setter for the font property. + + Basic setter for the font property. Regenerates the field + appearance after setting the new value. + Note that the font will be added to the document so ensure that the font is embedded + if it's a pdf/a document. + + The new font to be set + The edited PdfFormField + + + Basic setter for the fontSize property. + + Basic setter for the fontSize property. Regenerates the + field appearance after setting the new value. + + The new font size to be set + The edited PdfFormField + + + Basic setter for the fontSize property. + + Basic setter for the fontSize property. Regenerates the + field appearance after setting the new value. + + The new font size to be set + The edited PdfFormField + + + + Combined setter for the font and fontSize + properties. + + + Combined setter for the font and fontSize + properties. Regenerates the field appearance after setting the new value. + + The new font to be set + The new font size to be set + The edited PdfFormField + + + Basic setter for the backgroundColor property. + + Basic setter for the backgroundColor property. Regenerates + the field appearance after setting the new value. + + + The new color to be set or + + if no background needed + + The edited PdfFormField + + + Basic setter for the degRotation property. + + Basic setter for the degRotation property. Regenerates + the field appearance after setting the new value. + + The new degRotation to be set + The edited PdfFormField + + + + Sets the action on all + widgets + of this form field. + + The action + The edited field + + + Changes the type of graphical marker used to mark a checkbox as 'on'. + + Changes the type of graphical marker used to mark a checkbox as 'on'. + Notice that in order to complete the change one should call + regenerateField + method + + the new checkbox marker + The edited field + + + + Set the visibility flags of the form field annotation + Options are: HIDDEN, HIDDEN_BUT_PRINTABLE, VISIBLE, VISIBLE_BUT_DOES_NOT_PRINT + + visibility option + The edited field + + + This method regenerates appearance stream of the field. + + This method regenerates appearance stream of the field. Use it if you + changed any field parameters and didn't use setValue method which + generates appearance by itself. + + whether or not the regeneration was successful. + + + Gets the border width for the field. + the current border width. + + + Sets the border width for the field. + The new border width. + The edited field + + + Sets the border style for the field. + the new border style. + the edited field + + + Sets the Border Color. + the new value for the Border Color + the edited field + + + Sets the text color. + the new value for the Color + the edited field + + + Sets the ReadOnly flag, specifying whether or not the field can be changed. + if true, then the field cannot be changed. + the edited field + + + Gets the ReadOnly flag, specifying whether or not the field can be changed. + true if the field cannot be changed. + + + Sets the Required flag, specifying whether or not the field must be filled in. + if true, then the field must be filled in. + the edited field + + + Gets the Required flag, specifying whether or not the field must be filled in. + true if the field must be filled in. + + + Sets the NoExport flag, specifying whether or not exporting is forbidden. + if true, then exporting is forbidden + the edited field + + + Gets the NoExport attribute. + whether exporting the value following a form action is forbidden. + + + Specifies on which page the form field's widget must be shown. + the page number + the edited field + + + Gets the appearance state names. + an array of Strings containing the names of the appearance states + + + Sets an appearance for (the widgets related to) the form field. + + the type of appearance stream to be added + + PdfName.N: normal appearance + + PdfName.R: rollover appearance + + PdfName.D: down appearance + + + + + the state of the form field that needs to be true + for the appearance to be used. Differentiates between several streams + of the same type. + + + the appearance instructions, as a + + + the edited field + + + Sets zero font size which will be interpreted as auto-size according to ISO 32000-1, 12.7.3.3. + the edited field + + + + Inserts the value into the + + of this field and associates it with the specified key. + + + Inserts the value into the + + of this field and associates it with the specified key. + If the key is already present in this field dictionary, + this method will override the old value with the specified one. + + key to insert or to override + the value to associate with the specified key + + this + + instance + + + + + Removes the specified key from the + + of this field. + + key to be removed + + this + + instance + + + + Releases underlying pdf object and other pdf entities used by wrapper. + + Releases underlying pdf object and other pdf entities used by wrapper. + This method should be called instead of direct call to + + if the wrapper is used. + + + + + Gets the + + that owns that form field. + + + the + + that owns that form field. + + + + + Gets a + + that matches the current size and position of this form field. + + current form field. + + a + + that matches the current size and position of this form field. + + + + + Convert + + multidimensional array of combo box or list options to + . + + Two-dimensional array of options. + + a + + that contains all the options. + + + + + Convert + + array of combo box or list options to + . + + array of options. + + a + + that contains all the options. + + + + Draws the visual appearance of text in a form field. + The location on the page for the list field + + a + + + The size of the font + The initial value + The appearance + + + Draws the visual appearance of Choice box in a form field. + The location on the page for the list field + The initial value + The appearance + + + Draws a border using the borderWidth and borderColor of the form field. + + The + + on which to draw + + The PdfFormXObject + The width of the rectangle to draw + The height of the rectangle to draw + + + Draws the appearance of a radio button with a specified value. + the width of the radio button to draw + the height of the radio button to draw + the value of the button + + + Draws a radio button. + + the + + on which to draw + + the width of the radio button to draw + the height of the radio button to draw + required to be true for fulfilling the drawing operation + + + Draws the appearance of a checkbox with a specified state value. + the width of the checkbox to draw + the height of the checkbox to draw + the state of the form field that will be drawn + + + Draws PDF/A-2 compliant check appearance. + + Draws PDF/A-2 compliant check appearance. + Actually it's just PdfA check appearance. According to corrigendum there is no difference between them + + width of the checkbox + height of the checkbox + name that corresponds to the "On" state of the checkbox + + the type that determines how the checkbox will look like. Allowed values are + + , + + , + + , + + , + + , + + + + + Draws the appearance for a push button. + the width of the pushbutton + the width of the pushbutton + the text to display on the button + + a + + + the size of the font + + a new + + + + + Performs the low-level drawing operations to draw a button object. + + the + + of the page to draw on. + + will be ignored, according to spec it shall be 0 + will be ignored, according to spec it shall be 0 + the width of the button + the width of the button + the text to display on the button + + a + + + the size of the font + + + Performs the low-level drawing operations to draw a checkbox object. + + the + + of the page to draw on. + + the width of the button + the width of the button + the size of the font + + + + Calculate the necessary height offset after applying field rotation + so that the origin of the bounding box is the lower left corner with respect to the field text. + + bounding box rectangle before rotation + rotation of the page + rotation of the field relative to the page + translation value for height + + + + Calculate the necessary width offset after applying field rotation + so that the origin of the bounding box is the lower left corner with respect to the field text. + + bounding box rectangle before rotation + rotation of the page + rotation of the field relative to the page + translation value for width + + + Puts object directly to AcroForm dictionary. + + Puts object directly to AcroForm dictionary. + It works much faster than consequent invocation of + + and + . + + Note, this method assume that Catalog already has AcroForm object. + + should be called explicitly. + + the key of the object. + the object to add. + + + An AcroForm field containing signature data. + + + Returns Sig, the form type for signature form fields. + + the form type, as a + + + + + Adds the signature to the signature field. + the signature to be contained in the signature field, or an indirect reference to it + the edited field + + + + Gets the + + , which contains fields that + must be locked if the document is signed. + + a dictionary containing locked fields. + + + + An AcroForm field containing textual data. + + + Returns Tx, the form type for textual form fields. + + the form type, as a + + + + + If true, the field can contain multiple lines of text; if false, the field?s text is restricted to a single line. + + whether or not the file can contain multiple lines of text + + current + + + + + If true, the field is intended for entering a secure password that should not be echoed visibly to the screen. + + + If true, the field is intended for entering a secure password that should not be echoed visibly to the screen. + Characters typed from the keyboard should instead be echoed in some unreadable form, such as asterisks or bullet characters. + + whether or not to obscure the typed characters + + current + + + + + + If true, the text entered in the field represents the pathname of a file + whose contents are to be submitted as the value of the field. + + whether or not this field currently represents a path + + + + If true, the text entered in the field represents the pathname of a file + whose contents are to be submitted as the value of the field. + + whether or not this field should represent a path + + current + + + + + If true, text entered in the field is spell-checked. + whether or not spell-checking is currently enabled + + + If true, text entered in the field is spell-checked. + whether or not to spell-check + + current + + + + + + If true, the field scrolls (horizontally for single-line fields, vertically for multiple-line fields) + to accommodate more text than fits within its annotation rectangle. + + + If true, the field scrolls (horizontally for single-line fields, vertically for multiple-line fields) + to accommodate more text than fits within its annotation rectangle. + Once the field is full, no further text is accepted. + + whether or not longer texts are currently allowed + + + + If true, the field scrolls (horizontally for single-line fields, vertically for multiple-line fields) + to accommodate more text than fits within its annotation rectangle. + + + If true, the field scrolls (horizontally for single-line fields, vertically for multiple-line fields) + to accommodate more text than fits within its annotation rectangle. + Once the field is full, no further text is accepted. + + whether or not to allow longer texts + + current + + + + + + Meaningful only if the MaxLen entry is present in the text field dictionary + and if the Multiline, Password, and FileSelect flags are clear. + + + Meaningful only if the MaxLen entry is present in the text field dictionary + and if the Multiline, Password, and FileSelect flags are clear. + If true, the field is automatically divided into as many equally spaced positions, + or combs, as the value of MaxLen, and the text is laid out into those combs. + + whether or not combing is enabled + + + + Meaningful only if the MaxLen entry is present in the text field dictionary + and if the Multiline, Password, and FileSelect flags are clear. + + + Meaningful only if the MaxLen entry is present in the text field dictionary + and if the Multiline, Password, and FileSelect flags are clear. + If true, the field is automatically divided into as many equally spaced positions, + or combs, as the value of MaxLen, and the text is laid out into those combs. + + whether or not to enable combing + + current + + + + + If true, the value of this field should be represented as a rich text string. + + If true, the value of this field should be represented as a rich text string. + If the field has a value, the RV entry of the field dictionary specifies the rich text string. + + whether or not text is currently represented as rich text + + + If true, the value of this field should be represented as a rich text string. + + If true, the value of this field should be represented as a rich text string. + If the field has a value, the RV entry of the field dictionary specifies the rich text string. + + whether or not to represent text as rich text + + current + + + + + Gets the maximum length of the field's text, in characters. + + Gets the maximum length of the field's text, in characters. + This is an optional parameter, so if it is not specified, 0 value will be returned. + + the current maximum text length + + + Sets the maximum length of the field's text, in characters. + the maximum text length + current + + + This class represents the static form technology AcroForm on a PDF file. + + + + To be used with + . + + + To be used with + . +
    +
    + If set, the document contains at least one signature field. This flag + allows a conforming reader to enable user interface items (such as menu + items or pushbuttons) related to signature processing without having to + scan the entire document for the presence of signature fields. + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    +
    + + + To be used with + . + + + To be used with + . +
    +
    + If set, the document contains signatures that may be invalidated if the + file is saved (written) in a way that alters its previous contents, as + opposed to an incremental update. Merely updating the file by appending + new information to the end of the previous version is safe. Conforming + readers may use this flag to inform a user requesting a full save that + signatures will be invalidated and require explicit confirmation before + continuing with the operation. + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    +
    + + + Keeps track of whether or not appearances must be generated by the form + fields themselves, or by the PDF viewer application. + + + Keeps track of whether or not appearances must be generated by the form + fields themselves, or by the PDF viewer application. Default is + true. + + + + + A map of field names and their associated + form field + objects. + + + + The PdfDocument to which the PdfAcroForm belongs. + + + Creates a PdfAcroForm as a wrapper of a dictionary. + + Creates a PdfAcroForm as a wrapper of a dictionary. + Also initializes an XFA form if an /XFA entry is present in + the dictionary. + + the PdfDictionary to be wrapped + + + + Creates a PdfAcroForm from a + + of fields. + + + Creates a PdfAcroForm from a + + of fields. + Also initializes an empty XFA form. + + + a + + of + + objects + + + + Retrieves AcroForm from the document. + + Retrieves AcroForm from the document. If there is no AcroForm in the + document Catalog and createIfNotExist flag is true then the AcroForm + dictionary will be created and added to the document. + + + the document to retrieve the + + from + + + when true, this method will create a + + if none exists for this document + + + the + document + 's AcroForm, + or a new one provided that createIfNotExist parameter is true, otherwise null. + + + + This method adds the field to the last page in the document. + + This method adds the field to the last page in the document. + If there's no pages, creates a new one. + + + the + + to be added to the form + + + + This method adds the field to a specific page. + + the + + to be added to the form + + + the + + on which to add the field + + + + + This method merges field with its annotation and place it on the given + page. + + + This method merges field with its annotation and place it on the given + page. This method won't work if the field has no or more than one widget + annotations. + + + the + + to be added to the form + + + the + + on which to add the field + + + + + Gets the + form field + s as a + . + + + a map of field names and their associated + form field + objects + + + + + Gets a collection of + form field + s, prepared for flattening using + + method. + + + Gets a collection of + form field + s, prepared for flattening using + + method. + If returned collection is empty, all form fields will be flattened on + flattenFields + call. + + + a collection of + form field + s for flattening + + + + + Gets the + + this + + belongs to. + + the document of this form + + + Sets the NeedAppearances boolean property on the AcroForm. + + Sets the NeedAppearances boolean property on the AcroForm. + NeedAppearances has been deprecated in PDF 2.0. +
    +
    + NeedAppearances is a flag specifying whether to construct appearance + streams and appearance dictionaries for all widget annotations in the + document. + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + a boolean. Default value is false + current AcroForm. +
    + + Gets the NeedAppearances boolean property on the AcroForm. + + Gets the NeedAppearances boolean property on the AcroForm. + NeedAppearances has been deprecated in PDF 2.0. +
    +
    + NeedAppearances is a flag specifying whether to construct appearance + streams and appearance dictionaries for all widget annotations in the + document. + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + + the NeedAppearances property as a + + . Default value is false + +
    + + Sets the SigFlags integer property on the AcroForm. + + Sets the SigFlags integer property on the AcroForm. +
    +
    + SigFlags is a set of flags specifying various document-level + characteristics related to signature fields. + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + + an integer. Use + + and/or + . + Use bitwise OR operator to combine these values. Default value is 0 + + current AcroForm. +
    + + Changes the SigFlags integer property on the AcroForm. + + Changes the SigFlags integer property on the AcroForm. + This method allows only to add flags, not to remove them. +
    +
    + SigFlags is a set of flags specifying various document-level + characteristics related to signature fields. + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + + an integer. Use + + and/or + . + Use bitwise OR operator to combine these values. Default is 0 + + current AcroForm. +
    + + Gets the SigFlags integer property on the AcroForm. + + Gets the SigFlags integer property on the AcroForm. +
    +
    + SigFlags is a set of flags specifying various document-level + characteristics related to signature fields + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + current value for SigFlags. +
    + + Sets the CO array property on the AcroForm. + + Sets the CO array property on the AcroForm. +
    +
    + CO, Calculation Order, is an array of indirect references to + field dictionaries with calculation actions, defining the calculation + order in which their values will be recalculated when the value of any + field changes + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + an array of indirect references + current AcroForm +
    + + Gets the CO array property on the AcroForm. + + Gets the CO array property on the AcroForm. +
    +
    + CO, Calculation Order, is an array of indirect references to + field dictionaries with calculation actions, defining the calculation + order in which their values will be recalculated when the value of any + field changes + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + an array of indirect references +
    + + Sets the DR dictionary property on the AcroForm. + + Sets the DR dictionary property on the AcroForm. +
    +
    + DR is a resource dictionary containing default resources + (such as fonts, patterns, or colour spaces) that shall be used by form + field appearance streams. At a minimum, this dictionary shall contain a + Font entry specifying the resource name and font dictionary of the + default font for displaying text. + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + a resource dictionary + current AcroForm +
    + + Gets the DR dictionary property on the AcroForm. + + Gets the DR dictionary property on the AcroForm. +
    +
    + DR is a resource dictionary containing default resources + (such as fonts, patterns, or colour spaces) that shall be used by form + field appearance streams. At a minimum, this dictionary shall contain a + Font entry specifying the resource name and font dictionary of the + default font for displaying text. + (ISO 32000-1, section 12.7.2 "Interactive Form Dictionary") +
    +
    + a resource dictionary +
    + + Sets the DA String property on the AcroForm. + + Sets the DA String property on the AcroForm. +
    + This method sets a default (fallback value) for the DA + attribute of variable text + form field + s. +
    + a String containing a sequence of valid PDF syntax + current AcroForm +
    + + Gets the DA String property on the AcroForm. + + Gets the DA String property on the AcroForm. +
    + This method returns the default (fallback value) for the DA + attribute of variable text + form field + s. +
    + the form-wide default appearance, as a String +
    + + Sets the Q integer property on the AcroForm. + + Sets the Q integer property on the AcroForm. +
    + This method sets a default (fallback value) for the Q + attribute of variable text + form field + s. +
    + an integer representing a justification value + current AcroForm + +
    + + Gets the Q integer property on the AcroForm. + + Gets the Q integer property on the AcroForm. +
    + This method gets the default (fallback value) for the Q + attribute of variable text + form field + s. +
    + an integer representing a justification value + +
    + + Sets the XFA property on the AcroForm. + + Sets the XFA property on the AcroForm. +
    + XFA can either be a + + or a + . + Its contents must be valid XFA. +
    + a stream containing the XDP + current AcroForm +
    + + Sets the XFA property on the AcroForm. + + Sets the XFA property on the AcroForm. +
    + XFA can either be a + + or a + . + Its contents must be valid XFA. +
    + + an array of text string and stream pairs representing + the individual packets comprising the XML Data Package. (ISO 32000-1, + section 12.7.2 "Interactive Form Dictionary") + + current AcroForm +
    + + Gets the XFA property on the AcroForm. + + an object representing the entire XDP. It can either be a + + or a + . + + + + + Gets a + form field + by its name. + + + the name of the + form field + to retrieve + + + the + form field + , or null if it + isn't present + + + + + Gets the attribute generateAppearance, which tells + + to generate an appearance Stream for all + form field + s + that don't have one. + + bolean value indicating if the appearances need to be generated + + + + Sets the attribute generateAppearance, which tells + + to generate an appearance Stream for all + form field + s + that don't have one. + + + Sets the attribute generateAppearance, which tells + + to generate an appearance Stream for all + form field + s + that don't have one. + + Not generating appearances will speed up form flattening but the results + can be unexpected in Acrobat. Don't use it unless your environment is + well controlled. The default is true. + + If generateAppearance is set to true, then + NeedAppearances is set to false. This does not + apply vice versa. + + Note, this method does not change default behaviour of + + method. + + a boolean + + + + Flattens interactive + form field + s in the document. + + + Flattens interactive + form field + s in the document. If + no fields have been explicitly included via + + , + then all fields are flattened. Otherwise only the included fields are + flattened. + + + + + Tries to remove the + form field + with the specified + name from the document. + + + the name of the + form field + to remove + + a boolean representing whether or not the removal succeeded. + + + + Adds a + form field + , identified by name, to the list of fields to be flattened. + + + Adds a + form field + , identified by name, to the list of fields to be flattened. + Does not perform a flattening operation in itself. + + + the name of the + form field + to be flattened + + + + + Changes the identifier of a + form field. + + the current name of the field + the new name of the field. Must not be used currently. + + + + Creates an in-memory copy of a + . + + + Creates an in-memory copy of a + + . This new field is + not added to the document. + + + the name of the + form field + to be copied + + + a clone of the original + + + + + + Replaces the + + of a certain name with another + . + + + the name of the + form field + to be replaced + + + the new + + + + + Gets all AcroForm fields in the document. + + a + + of field dictionaries + + + + Determines whether the AcroForm contains XFA data. + a boolean + + + + Gets the + + atribute. + + the XFA form object + + + Removes the XFA stream from the document. + + + Releases underlying pdf object and other pdf entities used by wrapper. + + Releases underlying pdf object and other pdf entities used by wrapper. + This method should be called instead of direct call to + + if the wrapper is used. + + + + + A sample implementation of the {#link IPdfPageExtraCopier} interface which + copies only AcroForm fields to a new page. + + + A sample implementation of the {#link IPdfPageExtraCopier} interface which + copies only AcroForm fields to a new page. + + NOTE: While it's absolutely not necessary to use the same PdfPageFormCopier instance for copying operations, + it is still worth to know that PdfPageFormCopier uses some caching logic which can potentially improve performance + in case of the reusing of the same instance. + + + + A signature field lock dictionary. + + A signature field lock dictionary. Specifies a set of form + fields that shall be locked when this signature field is + signed. + + + + + Creates an instance of + . + + + + + Creates an instance of + . + + + The dictionary whose entries should be added to + the signature field lock dictionary. + + + + + Sets the permissions granted for the document when the corresponding signature + field is signed. + + + Sets the permissions granted for the document when the corresponding signature + field is signed. See + + for getting more info. + + The permissions granted for the document. + + This + + object. + + + + Sets signature lock for specific fields in the document. + + Indicates the set of fields that should be locked after the actual + signing of the corresponding signature takes place. + + Names indicating the fields. + + This + + object. + + + + Enumerates the different actions of a signature field lock. + + Enumerates the different actions of a signature field lock. + Indicates the set of fields that should be locked when the + corresponding signature field is signed: + + all the fields in the document, + + all the fields specified in the /Fields array, + + all the fields except those specified in the /Fields array. + + + + + + + + Utility class to draw form fields + . + + + + A class to process "classic" fields. + + + Creates a new instance from a Collection with the full names. + the Collection + + + Gets the mapping from short names to long names. + + Gets the mapping from short names to long names. A long + name may contain the #subform name part. + + the mapping from short names to long names + + + Sets the mapping from short names to long names. + + Sets the mapping from short names to long names. A long + name may contain the #subform name part. + + the mapping from short names to long names + + + + A structure to store each part of a SOM name and link it to the next part + beginning from the lower hierarchy. + + + + + Gets the full name by traversing the hierarchy using only the + index 0. + + the full name + + + Search the current node for a similar name. + + Search the current node for a similar name. A similar name starts + with the same name but has a different index. For example, "detail[3]" + is similar to "detail[9]". The main use is to discard names that + correspond to out of bounds records. + + the name to search + true if a similitude was found + + + Processes XFA forms. + + + The URI for the XFA Data schema. + + + An empty constructor to build on. + + + Creates an XFA form by the stream containing all xml information + + The InputStream + + + + + Creates an XFA form by the + + containing all xml information + + + The document + + + + + A constructor from a + + . It is assumed, but not + necessary for correct initialization, that the dictionary is actually a + + . An entry in the dictionary with the XFA + key must contain correct XFA syntax. If the XFA key is + absent, then the constructor essentially does nothing. + + the dictionary object to initialize from + + + A constructor from a PdfDocument. + + A constructor from a PdfDocument. It basically does everything + from finding the XFA stream to the XML parsing. + + the PdfDocument instance + + + Sets the XFA key from a byte array. + Sets the XFA key from a byte array. The old XFA is erased. + the data + pdfDocument + + + Sets the XFA key from a byte array. + Sets the XFA key from a byte array. The old XFA is erased. + the data + an AcroForm instance + + + Extracts DOM nodes from an XFA document. + + an XFA file as a + + DOM + document + + + + a + + of XFA packet names and their associated + DOM nodes + + + + Write the XfaForm to the provided PdfDocument. + the PdfDocument to write the XFA Form to + + + Write the XfaForm to the provided PdfDocument. + the PdfAcroForm to write the XFA Form to + + + Changes a field value in the XFA form. + the name of the field to be changed + the new value + + + Gets the xfa field value. + the fully qualified field name + the field value + + + Returns true if it is a XFA form. + true if it is a XFA form + + + Finds the complete field name from a partial name. + the complete or partial name + the complete name or null if not found + + + + Finds the complete SOM name contained in the datasets section from a + possibly partial name. + + the complete or partial name + the complete name or null if not found + + + + Finds the Node contained in the datasets section from a + possibly partial name. + + the complete or partial name + the Node or null if not found + + + Gets all the text contained in the child nodes of this node. + the Node + the text found or "" if no text was found + + + Sets the text of this node. + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + + the Node to add the text to + the text to add + + + Gets the top level DOM document. + the top level DOM document + + + Sets the top DOM document. + the top DOM document + + + Gets the Node that corresponds to the datasets part. + the Node that corresponds to the datasets part + + + Replaces the XFA data under datasets/data. + + Replaces the XFA data under datasets/data. Accepts a + + file + object + + to fill this object with XFA data. The resulting DOM document may + be modified. + + + the + + + + + Replaces the XFA data under datasets/data. + + Replaces the XFA data under datasets/data. Accepts a + + file + object + + to fill this object with XFA data. + + + the + + + whether or not the resulting DOM document may be modified + + + Replaces the XFA data under datasets/data. + + Replaces the XFA data under datasets/data. Accepts an + + to fill this object with XFA data. The resulting DOM document may be + modified. + + + the + + + + + Replaces the XFA data under datasets/data. + + Replaces the XFA data under datasets/data. Accepts an + + to fill this object with XFA data. + + + the + + + whether or not the resulting DOM document may be modified + + + Replaces the XFA data under datasets/data. + + Replaces the XFA data under datasets/data. Accepts an + XML reader + to fill this object with XFA data. The resulting DOM + document may be modified. + + + the + XML reader + + + + Replaces the XFA data under datasets/data. + + Replaces the XFA data under datasets/data. Accepts an + XML reader + to fill this object with XFA data. + + + the + XML reader + + whether or not the resulting DOM document may be modified + + + Replaces the XFA data under datasets/data. + + the input + + + + + Replaces the XFA data under datasets/data. + + the input + + + whether or not the resulting DOM document may be modified + + + Return the XFA Object, could be an array, could be a Stream. + + Return the XFA Object, could be an array, could be a Stream. + Returns null if no XFA Object is present. + + a PdfDocument instance + the XFA object + + + Return the XFA Object, could be an array, could be a Stream. + + Return the XFA Object, could be an array, could be a Stream. + Returns null if no XFA Object is present. + + a PdfAcroForm instance + the XFA object + + + Serializes a XML document to a byte array. + the XML document + the serialized XML document + + + Extracts the nodes from the domDocument. + + + Some XFA forms don't have a datasets node. + + Some XFA forms don't have a datasets node. + If this is the case, we have to add one. + + + + A class for some basic SOM processing. + + + The order the names appear in the XML, depth first. + + + The mapping of full names to nodes. + + + The data to do a search from the bottom hierarchy. + + + A stack to be used when parsing. + + + A temporary store for the repetition count. + + + Escapes a SOM string fragment replacing "." with "\.". + the unescaped string + the escaped string + + + Unescapes a SOM string fragment replacing "\." with ".". + the escaped string + the unescaped string + + + + Outputs the stack as the sequence of elements separated + by '.'. + + the stack as the sequence of elements separated by '.' + + + Gets the name with the #subform removed. + the long name + the short name + + + Adds a SOM name to the search node chain. + the SOM name + + + Adds a SOM name to the search node chain. + the start point + the stack with the separated SOM parts + the full name + + + Searches the SOM hierarchy from the bottom. + the SOM parts + the full name or null if not found + + + Splits a SOM name in the individual parts. + the full SOM name + the split name + + + Gets the order the names appear in the XML, depth first. + the order the names appear in the XML, depth first + + + Sets the order the names appear in the XML, depth first + the order the names appear in the XML, depth first + + + Gets the mapping of full names to nodes. + the mapping of full names to nodes + + + Sets the mapping of full names to nodes. + the mapping of full names to nodes + + + Gets the data to do a search from the bottom hierarchy. + the data to do a search from the bottom hierarchy + + + Sets the data to do a search from the bottom hierarchy. + the data to do a search from the bottom hierarchy + + + Processes the datasets section in the XFA form. + + + Creates a new instance from the datasets node. + + Creates a new instance from the datasets node. This expects + not the datasets but the data node that comes below. + + the datasets node + + + Inserts a new Node that will match the short name. + the datasets top Node + the short name + the new Node of the inserted name + + + Represent Action tag in xfdf document structure. + + Represent Action tag in xfdf document structure. + Content model: ( URI | Launch | GoTo | GoToR | Named ). + Attributes: none. + For more details see paragraph 6.5.1 in Xfdf specification. + + + + Type of inner action element. + + Type of inner action element. Possible values: + + , + + , + + , + + , + . + + + + Represents Name, required attribute of URI element. + Represents Name, required attribute of URI element. For more details see paragraph 6.5.30 in Xfdf specification. + + + + Represents IsMap, optional attribute of URI element. + Represents IsMap, optional attribute of URI element. For more details see paragraph 6.5.30 in Xfdf specification. + + + + Represents Name, required attribute of Named element. + Represents Name, required attribute of Named element. For more details see paragraph 6.5.24 in Xfdf specification. + + + + Represents OriginalName required attribute of File inner element of GoToR or Launch element. + + Represents OriginalName required attribute of File inner element of GoToR or Launch element. + Corresponds to F key in go-to action or launch dictionaries. + For more details see paragraphs 6.5.11, 6.5.23 in Xfdf specification. + + + + Represents NewWindow, optional attribute of Launch element. + Represents NewWindow, optional attribute of Launch element. For more details see paragraph 6.5.23 in Xfdf specification. + + + + Represents Dest, inner element of link, GoTo, and GoToR elements. + + Represents Dest, inner element of link, GoTo, and GoToR elements. + Corresponds to Dest key in link annotation dictionary. + For more details see paragraph 6.5.10 in Xfdf specification. + + + + Returns the type of inner action element. + + Returns the type of inner action element. Possible values: + + , + + , + + , + + , + . + + + + + type of inner action element + + + + Sets the type of inner action element. + + Sets the type of inner action element. Possible values: + + , + + , + + , + + , + . + + + + + type of inner action object + + + current + + + + + Gets the string value of URI elements. + + Gets the string value of URI elements. Corresponds to Name, required attribute of URI element. + For more details see paragraph 6.5.30 in Xfdf specification. + + + + + value of URI element + + + + Sets the string value of URI element. + + Sets the string value of URI element. Corresponds to Name, required attribute of URI element. + For more details see paragraph 6.5.30 in Xfdf specification. + + + + + value to be set to URI element + + + current + + + + + Gets IsMap, optional attribute of URI element. + Gets IsMap, optional attribute of URI element. For more details see paragraph 6.5.30 in Xfdf specification. + + boolean indicating if URI element is a map + + + Sets IsMap, optional attribute of URI element. + Sets IsMap, optional attribute of URI element. For more details see paragraph 6.5.30 in Xfdf specification. + + boolean indicating if URI element is a map + + current + + + + + Gets the value of Name, required attribute of Named element. + Gets the value of Name, required attribute of Named element. For more details see paragraph 6.5.24 in Xfdf specification. + + + + + value of Name attribute of a named action element + + + + Sets the value of Name, required attribute of Named element. + Sets the value of Name, required attribute of Named element. For more details see paragraph 6.5.24 in Xfdf specification. + + + + + value to be set to Name attribute of a named action element + + + current + + + + + Gets the string value of OriginalName, required attribute of File inner element of GoToR or Launch element. + + + Gets the string value of OriginalName, required attribute of File inner element of GoToR or Launch element. + Corresponds to F key in go-to action or launch dictionaries. + For more details see paragraphs 6.5.11, 6.5.23 in Xfdf specification. + + + + + value of OriginalName attribute of current action object + + + + Sets the string value of OriginalName, required attribute of File inner element of GoToR or Launch element. + + + Sets the string value of OriginalName, required attribute of File inner element of GoToR or Launch element. + Corresponds to F key in go-to action or launch dictionaries. + For more details see paragraphs 6.5.11, 6.5.23 in Xfdf specification. + + + + + value of OriginalName attribute of action object + + + current + + + + + Gets the boolean value of NewWindow, optional attribute of Launch element. + Gets the boolean value of NewWindow, optional attribute of Launch element. For more details see paragraph 6.5.23 in Xfdf specification. + + boolean indicating if current Launch action element should be opened in a new window + + + Sets the boolean value of NewWindow, optional attribute of Launch element. + Sets the boolean value of NewWindow, optional attribute of Launch element. For more details see paragraph 6.5.23 in Xfdf specification. + + boolean indicating if current Launch action element should be opened in a new window + + + current + + + + + Gets Dest, inner element of link, GoTo, and GoToR elements. + + Gets Dest, inner element of link, GoTo, and GoToR elements. + Corresponds to Dest key in link annotation dictionary. + For more details see paragraph 6.5.10 in Xfdf specification. + + + + + destination attribute of current action element + + + + Sets Dest, inner element of link, GoTo, and GoToR elements. + + Sets Dest, inner element of link, GoTo, and GoToR elements. + Corresponds to Dest key in link annotation dictionary. + For more details see paragraph 6.5.10 in Xfdf specification. + + + + + destination attribute of the action element + + + current + + + + + Represents annotation, a child element of annots tag in Xfdf document structure. + Represents annotation, a child element of annots tag in Xfdf document structure. For more details see part 6.4 in Xfdf specification. + + + + Represents the type of annotation. + + Represents the type of annotation. Possible values: + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + . + + + + Represents a list of attributes of the annotation. + + + Represents contents tag in Xfdf document structure. + + Represents contents tag in Xfdf document structure. Is a child of caret, circle, fileattachment, freetext, + highlight, ink, line, polygon, polyline, sound, square, squiggly, stamp, strikeout, text, and + underline elements. + Corresponds to Contents key in annotation dictionary. + Content model: a string or a rich text string. + For more details see paragraph 6.5.4 in Xfdf document specification. + + + + Represents contents-richtext tag in Xfdf document structure. + + Represents contents-richtext tag in Xfdf document structure. Is a child of caret, circle, fileattachment, freetext, + highlight, ink, line, polygon, polyline, sound, square, squiggly, stamp, strikeout, text, and + underline elements. + Corresponds to RC key in annotation dictionary. + Content model: text string. + For more details see paragraph 6.5.5 in Xfdf document specification. + + + + A boolean, indicating if annotation has inner popup element. + + + Represents a popup annotation, an inner element of the annotation element. + + + Represents Action element, a child of OnActivation element of the link annotation. + + Represents Action element, a child of OnActivation element of the link annotation. + Corresponds to the A key in the link annotation dictionary. + + + + Represents Dest element, a child element of link, GoTo, GoToR elements. + + Represents Dest element, a child element of link, GoTo, GoToR elements. + Corresponds to the Dest key in link annotation dictionary. + + + + Represents appearance element, a child element of stamp element. + + Represents appearance element, a child element of stamp element. + Corresponds to the AP key in the annotation dictionary. + Content model: Base64 encoded string. + For more details see paragraph 6.5.1 in Xfdf document specification. + + + + Represents the defaultappearance element, a child of the caret and freetext elements. + + Represents the defaultappearance element, a child of the caret and freetext elements. + Corresponds to the DA key in the free text annotation dictionary. + Content model: text string. + For more details see paragraph 6.5.7 in Xfdf document specification. + + + + Represents defaultstyle element, a child of the freetext element. + + Represents defaultstyle element, a child of the freetext element. + Corresponds to the DS key in the free text annotation dictionary. + Content model : a text string. + For more details see paragraph 6.5.9 in Xfdf document specification. + + + + Represents the BorderStyleAlt element, a child of the link element. + + Represents the BorderStyleAlt element, a child of the link element. + Corresponds to the Border key in the common annotation dictionary. + For more details see paragraph 6.5.3 in Xfdf document specification. + + + + Represents the string, containing vertices element, a child of the polygon and polyline elements. + + + Represents the string, containing vertices element, a child of the polygon and polyline elements. + Corresponds to the Vertices key in the polygon or polyline annotation dictionary. + For more details see paragraph 6.5.31 in Xfdf document specification. + + + + + The reference to the source + . + + + The reference to the source + + . Used for attaching popups in case of reading data from pdf file. + + + + Gets the string value of the type of annotation. + + Gets the string value of the type of annotation. Possible values: + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + . + + + + + value of the type of annotation + + + + Sets the string value of the type of annotation. + + Sets the string value of the type of annotation. Possible values: + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + + , + . + + + + + value of the type of annotation + + + + annotation object + with set name + + + + Gets a list of all attributes of the annotation. + + + list + containing all + attribute objects + of the annotation + + + + Finds the attribute by name in attributes list. + The name of the attribute to look for. + + + + with the given name, or null, if no object with this name was found. + + + + Finds the attribute by name in attributes list and return its string value. + The name of the attribute to look for. + + the value of the + + with the given name, or null, if no object with this name was found. + + + + Gets the popup annotation, an inner element of the annotation element. + + + + representing the inner popup annotation + + + + Sets the popup annotation, an inner element of the annotation element. + + + annotation object + representing inner popup annotation + + + current + annotation object + + + + Gets the boolean, indicating if annotation has an inner popup element. + true if annotation has an inner popup element, false otherwise + + + Sets the boolean, indicating if annotation has inner popup element. + a boolean indicating if annotation has inner popup element + + current + annotation object + + + + Gets the string value of contents tag in Xfdf document structure. + + Gets the string value of contents tag in Xfdf document structure. Contents is a child of caret, circle, + fileattachment, freetext, highlight, ink, line, polygon, polyline, sound, square, squiggly, stamp, strikeout, + text, and underline elements. + Corresponds to Contents key in annotation dictionary. + Content model: a string or a rich text string. + For more details see paragraph 6.5.4 in Xfdf document specification. + + + + + value of inner contents element of current annotation object + + + + Sets the string value of contents tag in Xfdf document structure. + + + string + value of inner contents element + + + current + annotation object + + + + Gets the string value of contents-richtext tag in Xfdf document structure. + + Gets the string value of contents-richtext tag in Xfdf document structure. It is a child of caret, circle, fileattachment, + freetext, highlight, ink, line, polygon, polyline, sound, square, squiggly, stamp, strikeout, text, and + underline elements. + Corresponds to RC key in annotation dictionary. + Content model: text string. + For more details see paragraph 6.5.5 in Xfdf document specification. + + + + + value of inner contents-richtext element of current annotation object + + + + Sets the string value of contents-richtext tag in xfdf document structure. + + + rich text string + value of inner contents-richtext element + + + current + annotation object + + + + Gets Action element, a child of OnActivation element of the link annotation. + + Gets Action element, a child of OnActivation element of the link annotation. + Corresponds to the A key in the link annotation dictionary. + + + inner + action object + of annotation object + + + + Sets Action element, a child of OnActivation element of the link annotation. + + Sets Action element, a child of OnActivation element of the link annotation. + Corresponds to the A key in the link annotation dictionary. + + + + action object + , an inner element of annotation object + + + current + annotation object + + + + + Adds new + + to the list of annotation attributes. + + attribute to be added. + + + Adds new attribute with given name and boolean value converted to string. + + + Adds new attribute by given name and value. + Adds new attribute by given name and value. If required attribute is present, value of the attribute can't be null. + + + + + attribute name + + + + + attribute value + + boolean indicating if the attribute is required + + + Adds page, required attribute of every annotation. + + + Gets Dest element, a child element of link, GoTo, GoToR elements. + + Gets Dest element, a child element of link, GoTo, GoToR elements. + Corresponds to the Dest key in link annotation dictionary. + + + inner + destination object + of annotation object + + + + Sets Dest element, a child element of link, GoTo, GoToR elements. + + Sets Dest element, a child element of link, GoTo, GoToR elements. + Corresponds to the Dest key in link annotation dictionary. + + + + destination object + , an inner element of annotation object + + + current + annotation object + + + + Gets the string value of the appearance element, a child element of stamp element. + + Gets the string value of the appearance element, a child element of stamp element. + Corresponds to the AP key in the annotation dictionary. + Content model: Base64 encoded string. + For more details see paragraph 6.5.1 in Xfdf document specification. + + + + + value of inner appearance element + + + + Gets the string value of the appearance element, a child element of stamp element. + + Gets the string value of the appearance element, a child element of stamp element. + Corresponds to the AP key in the annotation dictionary. + Content model: Base64 encoded string. + + + + + value of inner appearance element of annotation object + + + current + annotation object + + + + Gets the string value of the defaultappearance element, a child of the caret and freetext elements. + + + Gets the string value of the defaultappearance element, a child of the caret and freetext elements. + Corresponds to the DA key in the free text annotation dictionary. + Content model: text string. + For more details see paragraph 6.5.7 in Xfdf document specification. + + + + + value of inner deafultappearance element + + + + Sets the string value of the defaultappearance element, a child of the caret and freetext elements. + + + Sets the string value of the defaultappearance element, a child of the caret and freetext elements. + Corresponds to the DA key in the free text annotation dictionary. + Content model: text string. + + + + + value of inner defaultappearance element of annotation object + + + current + annotation object + + + + Gets the string value of the defaultstyle element, a child of the freetext element. + + Gets the string value of the defaultstyle element, a child of the freetext element. + Corresponds to the DS key in the free text annotation dictionary. + Content model : a text string. + For more details see paragraph 6.5.9 in Xfdf document specification. + + + + + value of inner defaultstyle element + + + + Sets the string value of the defaultstyle element, a child of the freetext element. + + Sets the string value of the defaultstyle element, a child of the freetext element. + Corresponds to the DS key in the free text annotation dictionary. + Content model : a text string. + + + + + value of inner defaultstyle element of annotation object + + + current + annotation object + + + + Gets the BorderStyleAlt element, a child of the link element. + + Gets the BorderStyleAlt element, a child of the link element. + Corresponds to the Border key in the common annotation dictionary. + For more details see paragraph 6.5.3 in Xfdf document specification. + + + inner + BorderStyleAlt object + + + + Sets the BorderStyleAlt element, a child of the link element. + + Sets the BorderStyleAlt element, a child of the link element. + Corresponds to the Border key in the common annotation dictionary. + + + inner + BorderStyleAlt object + + + current + annotation object + + + + Gets the string, containing vertices element, a child of the polygon and polyline elements. + + Gets the string, containing vertices element, a child of the polygon and polyline elements. + Corresponds to the Vertices key in the polygon or polyline annotation dictionary. + For more details see paragraph 6.5.31 in Xfdf document specification. + + + + + value of inner vertices element + + + + Sets the string, containing vertices element, a child of the polygon and polyline elements. + + Sets the string, containing vertices element, a child of the polygon and polyline elements. + Corresponds to the Vertices key in the polygon or polyline annotation dictionary. + + + + + value of inner vertices element + + + current + annotation object + + + + + Gets the reference to the source + . + + + Gets the reference to the source + + . Used for attaching popups in case of reading data from pdf file. + + + an + + of the source annotation object. + + + + + Sets the reference to the source + . + + + Sets the reference to the source + + . Used for attaching popups in case of reading data from pdf file. + + + + + of the source annotation object. + + + this + + instance. + + + + Represent annots tag in xfdf document structure. + + Represent annots tag in xfdf document structure. + Content model: ( text | caret | freetext | fileattachment | highlight | ink | line | link + | circle | square | polygon | polyline | sound | squiggly | stamp | + strikeout | underline )*. + Attributes: none. + For more details see paragraph 6.4.1 in Xfdf specification. + + + + Represents a list of children annotations. + + + Creates an instance with the empty list of children annotations. + + + Gets children annotations. + + a + + of + + each representing a child annotation of this annots tag. + + + + + Adds a new + + to the list of children annotations. + + + + + containing info about pdf document annotation. + + + this + + instance. + + + + Represents the attribute of any XFDF element. + + + Creates an instance with given attribute name and value. + the name of the attribute, constrained by XML attributes specification. + the value of the attribute, constrained by XML attributes specification. + + + Returns attribute name. + a string representation of attribute name, case-sensitive as per XML specification. + + + Returns attribute value. + a string representation of attribute value. + + + Represents the BorderStyleAlt element, a child of the link element. + + Represents the BorderStyleAlt element, a child of the link element. + Corresponds to the Border key in the common annotation dictionary. + Content model: border style encoded in the format specified in the border style attributes. + Required attributes: HCornerRadius, VCornerRadius, Width. + Optional attributes: DashPattern. + For more details see paragraph 6.5.3 in Xfdf document specification. + For more details about attributes see paragraph 6.6.19 in Xfdf document specification. + + + + Number specifying the horizontal corner radius of the rectangular border. + + Number specifying the horizontal corner radius of the rectangular border. + Corresponds to array index 0 in the Border key in the common annotation dictionary. + + + + Number specifying the vertical corner radius of the rectangular border. + + Number specifying the vertical corner radius of the rectangular border. + Corresponds to array index 1 in the Border key in the common annotation dictionary. + + + + Number specifying the width of the rectangular border. + + Number specifying the width of the rectangular border. + Corresponds to array index 2 in the Border key in the common annotation dictionary. + + + + An array of numbers specifying the pattern of dashes and gaps of the border. + + An array of numbers specifying the pattern of dashes and gaps of the border. + Corresponds to array index 3 in the Border key in the common annotation dictionary. + + + + Encoded border style string. + + + Creates an instance that encapsulates BorderStyleAlt XFDF element data. + a float value specifying the horizontal corner radius of the rectangular border. + + a float value specifying the vertical corner radius of the rectangular border. + + a float value specifying the width of the rectangular border. + + + Gets the horizontal corner radius of the rectangular border. + + Gets the horizontal corner radius of the rectangular border. + Corresponds to array index 0 in the Border key in the common annotation dictionary. + + a float value specifying the horizontal corner radius. + + + Gets the vertical corner radius of the rectangular border. + + Gets the vertical corner radius of the rectangular border. + Corresponds to array index 1 in the Border key in the common annotation dictionary. + + a float value specifying the vertical corner radius. + + + Gets the width of the rectangular border. + + Gets the width of the rectangular border. + Corresponds to array index 2 in the Border key in the common annotation dictionary. + + a float value specifying the width of the border. + + + Gets the dash pattern of the border. + + Gets the dash pattern of the border. + Corresponds to array index 3 in the Border key in the common annotation dictionary. + + an array of numbers specifying the pattern of dashes and gaps of the border. + + + Sets the dash pattern of the border. + + Sets the dash pattern of the border. + Corresponds to array index 3 in the Border key in the common annotation dictionary. + + an array of numbers specifying the pattern of dashes and gaps of the border. + + this + + instance. + + + + Gets border style. + an encoded border style as string. + + + Sets border style. + an encoded border style as string. + + this + + instance. + + + + Represents Dest element, a child of the link, GoTo, and GoToR elements. + + Represents Dest element, a child of the link, GoTo, and GoToR elements. + Corresponds to the Dest key in the link annotations dictionary. + For more details see paragraph 6.5.10 in XFDF document specification. + Content model: ( Named | XYZ | Fit | FitH | FitV | FitR | FitB | FitBH | FitBV ) + + + + Represents Name attribute of Named element, a child of Dest element. + + Represents Name attribute of Named element, a child of Dest element. + Allows a destination to be referred to indirectly by means of a name object or a byte string. + For more details see paragraph 6.5.25 in XFDF document specification. + + + + Represents the XYZ element, a child of the Dest element. + + Represents the XYZ element, a child of the Dest element. + Corresponds to the XYZ key in the destination syntax. + Required attributes: Page, Left, Bottom, Right, Top. + For more details see paragraph 6.5.32 in XFDF document specification. + + + + Represents the Fit element, a child of the Dest element. + + Represents the Fit element, a child of the Dest element. + Corresponds to the Fit key in the destination syntax. + Required attributes: Page. + For more details see paragraph 6.5.13 in XFDF document specification. + + + + Represents the FitH element, a child of the Dest element. + + Represents the FitH element, a child of the Dest element. + Corresponds to the FitH key in the destination syntax. + Required attributes: Page, Top. + For more details see paragraph 6.5.17 in XFDF document specification. + + + + Represents the FitV element, a child of the Dest element. + + Represents the FitV element, a child of the Dest element. + Corresponds to the FitV key in the destination syntax. + Required attributes: Page, Left. + For more details see paragraph 6.5.19 in XFDF document specification. + + + + Represents the FitR element, a child of the Dest element. + + Represents the FitR element, a child of the Dest element. + Corresponds to the FitR key in the destination syntax. + Required attributes: Page, Left, Bottom, Right, Top. + For more details see paragraph 6.5.18 in XFDF document specification. + + + + Represents the FitB element, a child of the Dest element. + + Represents the FitB element, a child of the Dest element. + Corresponds to the FitB key in the destination syntax. + Required attributes: Page. + For more details see paragraph 6.5.14 in XFDF document specification. + + + + Represents the FitBH element, a child of the Dest element. + + Represents the FitBH element, a child of the Dest element. + Corresponds to the FitBH key in the destination syntax. + Required attributes: Page, Top. + For more details see paragraph 6.5.15 in XFDF document specification. + + + + Represents the FitBV element, a child of the Dest element. + + Represents the FitBV element, a child of the Dest element. + Corresponds to the FitBV key in the destination syntax. + Required attributes: Page, Left. + For more details see paragraph 6.5.16 in XFDF document specification. + + + + Gets the Name attribute of Named element, a child of Dest element. + + Gets the Name attribute of Named element, a child of Dest element. + Allows a destination to be referred to indirectly by means of a name object or a byte string. + For more details see paragraph 6.5.25 in XFDF document specification. + + string value of the Name attribute. + + + Sets the Name attribute of Named element, a child of Dest element. + + Sets the Name attribute of Named element, a child of Dest element. + Allows a destination to be referred to indirectly by means of a name object or a byte string. + + string value of the Name attribute. + + this + + instance. + + + + Gets the XYZ element, a child of the Dest element. + + Gets the XYZ element, a child of the Dest element. + Corresponds to the XYZ key in the destination syntax. + Required attributes: Page, Left, Bottom, Right, Top. + For more details see paragraph 6.5.32 in XFDF document specification. + + + a + + that represents XYZ of Dest element. + + + + Sets the XYZ element, a child of the Dest element. + + Sets the XYZ element, a child of the Dest element. + Corresponds to the XYZ key in the destination syntax. + Required attributes: Page, Left, Bottom, Right, Top. + + + a + + that represents XYZ of Dest element. + + + this + + instance. + + + + Gets the Fit element, a child of the Dest element. + + Gets the Fit element, a child of the Dest element. + Corresponds to the Fit key in the destination syntax. + Required attributes: Page. + For more details see paragraph 6.5.13 in XFDF document specification. + + + a + + that represents Fit of Dest element. + + + + Sets the Fit element, a child of the Dest element. + + Sets the Fit element, a child of the Dest element. + Corresponds to the Fit key in the destination syntax. + Required attributes: Page. + + + a + + that represents Fit of Dest element. + + + this + + instance. + + + + Gets the FitH element, a child of the Dest element. + + Gets the FitH element, a child of the Dest element. + Corresponds to the FitH key in the destination syntax. + Required attributes: Page, Top. + For more details see paragraph 6.5.17 in XFDF document specification. + + + a + + that represents FitH of Dest element. + + + + Sets the FitH element, a child of the Dest element. + + Sets the FitH element, a child of the Dest element. + Corresponds to the FitH key in the destination syntax. + Required attributes: Page, Top. + + + a + + that represents FitH of Dest element. + + + this + + instance. + + + + Gets the FitV element, a child of the Dest element. + + Gets the FitV element, a child of the Dest element. + Corresponds to the FitV key in the destination syntax. + Required attributes: Page, Left. + For more details see paragraph 6.5.19 in XFDF document specification. + + + a + + that represents FitV of Dest element. + + + + Sets the FitV element, a child of the Dest element. + + Sets the FitV element, a child of the Dest element. + Corresponds to the FitV key in the destination syntax. + Required attributes: Page, Left. + + + a + + that represents FitV of Dest element. + + + this + + instance. + + + + Gets the FitR element, a child of the Dest element. + + Gets the FitR element, a child of the Dest element. + Corresponds to the FitR key in the destination syntax. + Required attributes: Page, Left, Bottom, Right, Top. + For more details see paragraph 6.5.18 in XFDF document specification. + + + a + + that represents FitR of Dest element. + + + + Sets the FitR element, a child of the Dest element. + + Sets the FitR element, a child of the Dest element. + Corresponds to the FitR key in the destination syntax. + Required attributes: Page, Left, Bottom, Right, Top. + + + a + + that represents FitR of Dest element. + + + this + + instance. + + + + Sets the FitB element, a child of the Dest element. + + Sets the FitB element, a child of the Dest element. + Corresponds to the FitB key in the destination syntax. + Required attributes: Page. + For more details see paragraph 6.5.14 in XFDF document specification. + + + a + + that represents FitB of Dest element. + + + + Gets the FitB element, a child of the Dest element. + + Gets the FitB element, a child of the Dest element. + Corresponds to the FitB key in the destination syntax. + Required attributes: Page. + For more details see paragraph 6.5.14 in XFDF document specification. + + + a + + that represents FitB of Dest element. + + + this + + instance. + + + + Sets the FitBH element, a child of the Dest element. + + Sets the FitBH element, a child of the Dest element. + Corresponds to the FitBH key in the destination syntax. + Required attributes: Page, Top. + For more details see paragraph 6.5.15 in XFDF document specification. + + + a + + that represents FitBH of Dest element. + + + + Gets the FitBH element, a child of the Dest element. + + Gets the FitBH element, a child of the Dest element. + Corresponds to the FitBH key in the destination syntax. + Required attributes: Page, Top. + + + a + + that represents FitBH of Dest element. + + + this + + instance. + + + + Sets the FitBV element, a child of the Dest element. + + Sets the FitBV element, a child of the Dest element. + Corresponds to the FitBV key in the destination syntax. + Required attributes: Page, Left. + For more details see paragraph 6.5.16 in XFDF document specification. + + + a + + that represents FitBV of Dest element. + + + + Sets the FitBV element, a child of the Dest element. + + Sets the FitBV element, a child of the Dest element. + Corresponds to the FitBV key in the destination syntax. + Required attributes: Page, Left. + + + a + + that represents FitBV of Dest element. + + + this + + instance. + + + + Represents encoding attribute of data or resource elements (children of fileattachment and sound elements). + + + + Represents the field element, a child of the fields and field elements. + + Represents the field element, a child of the fields and field elements. + The field element corresponds to a form field. + Content model: ( field* | value* | ( value? & value-richtext? )). + Required attributes: name. + For more details see paragraph 6.3.2 in XFDF document specification. + + + + Represents the name attribute of the field element. + + Represents the name attribute of the field element. + Corresponds to the T key in the field dictionary. + In a hierarchical form field, the name is the partial field name. + For more details see paragraph 6.3.2.2 in XFDF document specification. + + + + + Represents the value element, a child of the field element and contains the field's value, whose format may + vary depending on the field type. + + + Represents the value element, a child of the field element and contains the field's value, whose format may + vary depending on the field type. + Corresponds to the V key in the FDF field dictionary. + Content model: text string. + For more details see paragraph 6.3.3 in XFDF document specification. + + + + + Represents the value-richtext element, a child of the field element and contains the field's value formatted as a + rich text string. + + + Represents the value-richtext element, a child of the field element and contains the field's value formatted as a + rich text string. + Corresponds to the RV key in the variable text field dictionary. + Content model: text strign or rich text string. + Attributes: none. + For more details see paragraph 6.3.4 in XFDF document specification. + + + + Indicates if a value-richtext element is present inside the field. + + + Parent field of current field. + + + Gets the string value of the name attribute of the field element. + + Gets the string value of the name attribute of the field element. + Corresponds to the T key in the field dictionary. + In a hierarchical form field, the name is the partial field name. + For more details see paragraph 6.3.2.2 in XFDF document specification. + + + + + value of field name attribute + + + + Sets the string value of the name attribute of the field element. + + Sets the string value of the name attribute of the field element. + Corresponds to the T key in the field dictionary. + In a hierarchical form field, the name is the partial field name. + + + + + value of field name attribute + + + + + Gets the string representation of the value element, a child of the field element and contains the field's value, + whose format may vary depending on the field type. + + + Gets the string representation of the value element, a child of the field element and contains the field's value, + whose format may vary depending on the field type. + Corresponds to the V key in the FDF field dictionary. + For more details see paragraph 6.3.3 in XFDF document specification. + + + + + representation of inner value element of the field + + + + + Sets the string representation of the value element, a child of the field element and contains the field's value, + whose format may vary depending on the field type. + + + Sets the string representation of the value element, a child of the field element and contains the field's value, + whose format may vary depending on the field type. + Corresponds to the V key in the FDF field dictionary. + + + + + representation of inner value element of the field + + + + + Gets the string representation of the value-richtext element, a child of the field element and contains the + field's value formatted as a rich text string. + + + Gets the string representation of the value-richtext element, a child of the field element and contains the + field's value formatted as a rich text string. + Corresponds to the RV key in the variable text field dictionary. + Content model: text strign or rich text string. + For more details see paragraph 6.3.4 in XFDF document specification. + + + + + representation of inner value-richtext element of the field + + + + + Sets the string representation of the value-richtext element, a child of the field element and contains the + field's value formatted as a rich text string. + + + Sets the string representation of the value-richtext element, a child of the field element and contains the + field's value formatted as a rich text string. + Corresponds to the RV key in the variable text field dictionary. + Content model: text string or rich text string. + + + + + representation of inner value-richtext element of the field + + + + Gets a boolean indicating if a value-richtext element is present inside the field. + true if a value-richtext element is present inside the field, false otherwise + + + Sets a boolean indicating if a value-richtext element is present inside the field. + a boolean indicating if a value-richtext element is present inside the field + + + + Gets a parent field of current field. + + parent + field object + of the current field + + + + Sets a parent field of current field. + + + field object + that is a parent of the current field + + + + Represents the fields element, a child of the xfdf element and is the container for form field elements. + + + Represents the fields element, a child of the xfdf element and is the container for form field elements. + Content model: ( field* ). + Attributes: none. + For more details see paragraph 6.3.1 in Xfdf specification. + + + + Represents a list of children fields + + + Gets a list of children fields + + + + containing all children + field objects + + + + Adds a new field to the list. + FieldObject containing the info about the form field. + + current + fields object + + + + Represent Fit, a child of the Dest element. + + Represent Fit, a child of the Dest element. + Content model: none. + Attributes: depends of type of Fit (FitH, FitB, FitV etc.). + For more details see paragraphs 6.5.13-6.5.19, 6.6.23 in Xfdf specification. + + + + Represents the page displayed by current Fit element. + + Represents the page displayed by current Fit element. + Attribute of Fit, FitB, FitBH, FitBV, FitH, FitR, FitV, XYZ elements. + + + + Vertical coordinate positioned at the top edge of the window. + + + Vertical coordinate positioned at the bottom edge of the window. + + + Horizontal coordinate positioned at the left edge of the window. + + + Horizontal coordinate positioned at the right edge of the window. + + + Corresponds to the zoom object in the destination syntax. + + Corresponds to the zoom object in the destination syntax. + Attribute of XYZ object. + + + + Gets the PdfObject representing the page displayed by current Fit element. + + Gets the PdfObject representing the page displayed by current Fit element. + Attribute of Fit, FitB, FitBH, FitBV, FitH, FitR, FitV, XYZ elements. + + + + page + of the current Fit element + + + + Gets a float vertical coordinate positioned at the top edge of the window. + top vertical coordinate + + + Sets a float vertical coordinate positioned at the top edge of the window. + vertical coordinate value + + current + fit object + + + + Gets a float horizontal coordinate positioned at the left edge of the window. + left horizontal coordinate + + + Sets a float horizontal coordinate positioned at the left edge of the window. + horizontal coordinate value + + current + fit object + + + + Gets a float vertical coordinate positioned at the bottom edge of the window. + bottom vertical coordinate + + + Sets a float vertical coordinate positioned at the bottom edge of the window. + vertical coordinate value + + current + fit object + + + + Gets a float horizontal coordinate positioned at the right edge of the window. + right horizontal coordinate + + + Sets a float horizontal coordinate positioned at the right edge of the window. + horizontal coordinate + + current + fit object + + + + Gets a float representing the zoom ratio. + + Gets a float representing the zoom ratio. + Attribute of XYZ object. + + zoom ratio value + + + Sets a float representing the zoom ratio. + + Sets a float representing the zoom ratio. + Attribute of XYZ object. + + ratio value + + current + fit object + + + + Represents f element, child of the xfdf element. + + Represents f element, child of the xfdf element. + Corresponds to the F key in the file dictionary. + Specifies the source file or target file: the PDF document that this XFDF file was exported from or is intended to be + imported into. + Attributes: href. + For more details see paragraph 6.2.2 in Xfdf document specification. + + + + The name of the source or target file. + + + Gets the name of the source or target file. + the name of the source or target file + + + Sets the name of the source or target file. + the name of the source or target file + + current + f object + + + + Represents ids element, child of the xfdf element. + + Represents ids element, child of the xfdf element. + Corresponds to the ID key in the file dictionary. + The two attributes are file identifiers for the source or target file designated by the f element, taken + from the ID entry in the file’s trailer dictionary. + Attributes: original, modified. + For more details see paragraph 6.2.3 in Xfdf document specification. + + + + + This attribute corresponds to the permanent identifier which + is based on the contents of the file at the time it was originally created. + + + This attribute corresponds to the permanent identifier which + is based on the contents of the file at the time it was originally created. + This value does not change when the file is incrementally updated. + The value shall be a hexadecimal number. + A common value for this is an MD5 checksum. + + + + + The attribute contains a unique identifier for the + modified version of the pdf and corresponding xfdf document. + + + The attribute contains a unique identifier for the + modified version of the pdf and corresponding xfdf document. The + modified attribute corresponds to the changing identifier that is based + on the file's contents at the time it was last updated. + The value shall be a hexadecimal number. + A common value for this is an MD5 checksum. + + + + + Gets the string value of the permanent identifier which + is based on the contents of the file at the time it was originally created. + + + Gets the string value of the permanent identifier which + is based on the contents of the file at the time it was originally created. + This value does not change when the file is incrementally updated. + The value shall be a hexadecimal number. + + the permanent identifier value + + + + Sets the string value of the permanent identifier which + is based on the contents of the file at the time it was originally created. + + + Sets the string value of the permanent identifier which + is based on the contents of the file at the time it was originally created. + This value does not change when the file is incrementally updated. + The value shall be a hexadecimal number. + A common value for this is an MD5 checksum. + + the permanent identifier value + + current + ids object + + + + + Gets the string value of the unique identifier for the + modified version of the pdf and corresponding xfdf document. + + + Gets the string value of the unique identifier for the + modified version of the pdf and corresponding xfdf document. The + modified attribute corresponds to the changing identifier that is based + on the file's contents at the time it was last updated. + The value shall be a hexadecimal number. + + the unique identifier value + + + + Sets the string value of the unique identifier for the + modified version of the pdf and corresponding xfdf document. + + + Sets the string value of the unique identifier for the + modified version of the pdf and corresponding xfdf document. The + modified attribute corresponds to the changing identifier that is based + on the file's contents at the time it was last updated. + The value shall be a hexadecimal number. + A common value for this is an MD5 checksum. + + the unique identifier value + + current + ids object + + + + Represents the mode attribute of data and resource elements. + + Represents the mode attribute of data and resource elements. + Does not correspond to a PDF key. + + + + Class containing constants to be used in XFDF processing. + + + Creates a new xml-styled document for writing xfdf info. + Creates a new xml-styled document for writing xfdf info. + + + Creates a new xfdf document based on given input stream. + the stream containing xfdf info. + + + Saves the info from output stream to xml-styled document. + the document to save info to. + the stream containing xfdf info. + + + Represents xfdf element, the top level element in an xfdf document. + + Represents xfdf element, the top level element in an xfdf document. + For more details see paragraph 6.2.1 in Xfdf document specification. + Content model: ( f? & ids? & fields? & annots? ) + Attributes: xml:space, xmlns. + + + + Represents f element, child of the xfdf element. + + Represents f element, child of the xfdf element. + Corresponds to the F key in the file dictionary. + + + + Represents ids element, a child of the xfdf element. + + Represents ids element, a child of the xfdf element. + Corresponds to the ID key in the file dictionary. + + + + Represents the fields element, a child of the xfdf element and is the container for form field elements. + + + + Represent annots element, a child of the xfdf element and is the container for annot elements. + + + A list of attributes of xfdf object. + + + Gets the f element, child of the xfdf element. + + Gets the f element, child of the xfdf element. + Corresponds to the F key in the file dictionary. + + the f element + + + Sets f element, child of the xfdf element. + + Sets f element, child of the xfdf element. + Corresponds to the F key in the file dictionary. + + element + + + Gets the ids element, child of the xfdf element. + + Gets the ids element, child of the xfdf element. + Corresponds to the ID key in the file dictionary. + + the ids element + + + Sets ids element, child of the xfdf element. + + Sets ids element, child of the xfdf element. + Corresponds to the ID key in the file dictionary. + + element + + + Gets the fields element, a child of the xfdf element and is the container for form field elements. + + the fields element + + + Sets fields element, a child of the xfdf element and is the container for form field elements. + element + + + Gets the annots element, a child of the xfdf element and is the container for annot elements. + the annots element + + + Sets the annots element, a child of the xfdf element and is the container for annot elements. + element + + + Gets the list of attributes of xfdf object. + the list of attributes + + + Sets the list of attributes of xfdf object. + list of attributes objects + + + Merges info from XfdfObject to pdf document. + the target document for merge. + + the name of the target document. Will be checked in the merge process to determined + if it is the same as href attribute of f element of merged XfdfObject. If the names are + different, a warning will be thrown. + + + + Writes info from XfdfObject to .xfdf file. + name of the target file. + + + Writes info from XfdfObject to .xfdf file. + target output stream. + + + Extracts data from pdf document acroform and annotations into XfdfObject. + + Extracts data from pdf document acroform and annotations into XfdfObject. + * + + Pdf document for data extraction. + The name od pdf document for data extraction. + XfdfObject containing data from pdf forms and annotations. + + + Extracts data from input stream into XfdfObject. + Extracts data from input stream into XfdfObject. Typically input stream is based on .xfdf file + The input stream containing xml-styled xfdf data. + XfdfObject containing original xfdf data. + + + + Converts a string containing 2 or 4 float values into a + . + + + Converts a string containing 2 or 4 float values into a + . + If only two coordinates are present, they should represent + + width and height. + + + + Converts a string containing 4 float values into a PdfArray, representing rectangle fringe. + + Converts a string containing 4 float values into a PdfArray, representing rectangle fringe. + If the number of floats in the string is not equal to 4, returns and PdfArray with empty values. + + + + Converts a Rectangle to a string containing 4 float values. + + + Converts float value to string with UTF-8 encoding. + + + Converts a string containing 4 float values into a float array, representing quadPoints. + + Converts a string containing 4 float values into a float array, representing quadPoints. + If the number of floats in the string is not equal to 8, returns an empty float array. + + + + Converts a float array, representing quadPoints into a string containing 8 float values. + + + + Converts a string containing a comma separated list of names of the flags into an integer representation + of the flags. + + + + Converts an integer representation of the flags into a string with a comma separated list of names of the flags. + + + + Converts an array of 3 floats into a hex string representing the rgb color. + + + Converts a Color object into a hex string representing the rgb color. + + + Converts float representation of the rgb color into a hex string representing the rgb color. + + + Converts string containing id from decimal to hexadecimal format. + + + Converts string containing hex color code to Color object. + + + Converts string containing hex color code into an array of 3 integer values representing rgb color. + + + + Converts an array of float vertices to string. + + + Converts to string an array of floats representing the fringe. + + Converts to string an array of floats representing the fringe. + If the number of floats doesn't equal 4, an empty string is returned. + + + + Converts a string into an array of floats representing vertices. + + + Returns a string representation of the start point of the line (x_1, y_1) based on given line array. + + + Returns a string representation of the start point of the line (x_1, y_1) based on given line array. + If the line array doesn't contain 4 floats, returns an empty string. + + an array of 4 floats representing the line (x_1, y_1, x_2, y_2) + + + Returns a string representation of the end point of the line (x_2, y_2) based on given line array. + + + Returns a string representation of the end point of the line (x_2, y_2) based on given line array. + If the line array doesn't contain 4 floats, returns an empty string. + + an array of 4 floats representing the line (x_1, y_1, x_2, y_2) + + + Merges existing XfdfObject into pdf document associated with it. + The object to be merged. + The associated pdf document. + The name of the associated pdf document. + + + + Merges existing FieldsObject and children FieldObject entities into the form of the pdf document + associated with it. + + object containing acroform fields data to be merged. + acroform to be filled with xfdf data. + + + Merges existing XfdfObject into pdf document associated with it. + The AnnotsObject with children AnnotObject entities to be mapped into PdfAnnotations. + + The associated pdf document. + + + Creates a XfdfWriter for output stream specified. + A stream to write xfdf file into. + + + + Writes data from + + into a xfdf data file. + + + + + containing the data. + + +
    +
    diff --git a/Bin/itext.html2pdf.dll b/Bin/itext.html2pdf.dll new file mode 100644 index 000000000..07cb29327 Binary files /dev/null and b/Bin/itext.html2pdf.dll differ diff --git a/Bin/itext.html2pdf.dll.refresh b/Bin/itext.html2pdf.dll.refresh new file mode 100644 index 000000000..b24042f19 --- /dev/null +++ b/Bin/itext.html2pdf.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.pdfhtml.4.0.4\lib\net461\itext.html2pdf.dll \ No newline at end of file diff --git a/Bin/itext.html2pdf.xml b/Bin/itext.html2pdf.xml new file mode 100644 index 000000000..500196100 --- /dev/null +++ b/Bin/itext.html2pdf.xml @@ -0,0 +1,7688 @@ + + + + itext.html2pdf + + + + + Stores an instance of + + related to iText pdfHTML module. + + + + + Getter for an instance of + + related to iText pdfHTML module. + + iText pdfHTML product description + + + Class represents events registered in iText pdfHTML module. + + + Convert html event type. + + + Creates an event associated with a general identifier and additional meta data. + is an identifier associated with the event + is an additional meta info + is a string description of the event + + + Creates a convert html event which associated with a general identifier and additional meta data. + + is an identifier associated with the event + is an additional meta info + the convert html event + + + + Helper class to add parsed HTML content to an existing iText document, + or to parse HTML to a list of iText elements. + + + + + Instantiates a new + + instance. + + + + + Attaches the HTML content stored in a document node to + an existing PDF document, using specific converter properties, + and returning an iText + + object. + + the document node with the HTML + + the + + instance + + + the + + instance + + + an iText + + object + + + + + Attaches the HTML content stored in a document node to + a list of + + objects. + + the document node with the HTML + + the + + instance + + + the list of + + objects + + + + + Interface for classes that can process HTML to PDF in the form of a + + or a list of + + objects. + + + + + Parses HTML to add the content to a + . + + the root node of the HTML that needs to be parsed + + the + + instance + + + a + + instance + + + + + Parses HTML to add the content to a list of + + objects. + + the root node of the HTML that needs to be parsed + the resulting list + + + The default implementation to process HTML. + + + The logger instance. + + + Set of tags that do not map to any tag worker and that are deliberately excluded from the logging. + + + + Set of tags to which we do not want to apply CSS to and that are deliberately excluded from the logging + + + + Set of tags that might be not processed by some tag workers and that are deliberately excluded from the logging. + + + + The processor context. + + + A list of parent objects that result from parsing the HTML. + + + The CSS resolver. + + + Instantiates a new default html processor. + the converter properties + + + Sets properties to top-level layout elements converted from HTML. + + Sets properties to top-level layout elements converted from HTML. + This enables features set by user via HTML converter API and also changes properties defaults + to the ones specific to HTML-like behavior. + + HTML document-level css properties. + processor context specific to the current HTML conversion. + top-level layout element converted from HTML. + + + Recursively processes a node to preprocess target-counters. + the node + + + Recursively processes a node converting HTML into PDF using tag workers. + the node + + + Adds @font-face fonts to the FontProvider. + + + Creates a font and adds it to the context. + the font family + the source of the font + the unicode range + true, if successful + + + Creates a pseudo element (before and after CSS). + the node + the tagWorker + the pseudo element name + created pseudo element + + + Find an element in a node. + the node + the tag name + the element node + + + Find the HTML node. + the node + the i element node + + + Find the BODY node. + the node + the i element node + + + Checks if an element should be displayed. + the element + true, if the element should be displayed + + + + The default implementation of a tag worker factory, mapping tags to + tag worker implementations. + + + + The default mapping. + + + Instantiates a new default tag worker factory. + + + + Gets + + instance. + + default instance that is used if custom tag workers are not configured + + + Gets the tag worker creator for a specific element node. + the mapping + the element node + the tag worker class creator + + + This is a hook method. + + This is a hook method. Users wanting to provide a custom mapping + or introduce their own ITagWorkers should implement this method. + + the tag + the context + the custom tag worker + + + + Contains the actual mapping of the + . + + + + The worker mapping. + + + Gets the default tag worker mapping. + the default mapping + + + + Instantiates a new + + instance. + + + + Class to store metaInfo that will be used for html operations. + + + Creates HtmlMetaInfoContainer instance with provided meta info. + the meta info + + + Return the IMetaInfo object. + returns IMetaInfo + + + + This class is used to store styles of + <html> + and + <body> + tags, + to simplify their application on the document as an + + and to simplify their processing on the layout level. + + + This class is used to store styles of + <html> + and + <body> + tags, + to simplify their application on the document as an + + and to simplify their processing on the layout level. + This class is primarily meant for internal usage. + + + + + + + + + + + + + + + + + + + + + + + + + + This method is needed to check if we need to draw a simulated + + element, + i.e. to perform any drawing at all. + + + true if there is at least one + + or a + + or a + + present in the container + + + + This method is needed to check if there are styles applied on the current element. + true if in the container there are present styles which impact the layout + + + + This method calculates the total widths of TOP-, RIGHT-, BOTTOM- and LEFT- side styles, + each combined of widths of applied margins, borders and paddings. + + a float array containing applied TOP-, RIGHT-, BOTTOM- and LEFT- side widths of styles respectively + + + + Container class for grouping necessary values used in dimension calculation + + + Check if this dimension is auto + True if the dimension is to be automatically calculated, false if it was set via a property + + + An abstract class for fields that represents a control for selecting one or several of the provided options. + + + + Adds a container with option(s). + Adds a container with option(s). This might be a container for options group. + a container with option(s) + + + Gets a list of containers with option(s). + Gets a list of containers with option(s). Every container might be a container for options group. + + a list of containers with option(s) + + + + Extension of the + + class representing a button in html + + + + Adds any block element to the div's contents. + + a + + + this Element + + + Adds an image to the div's contents. + + an + + + this Element + + + + Extension of the + + class representing a checkbox so that + a + + is used instead of the default renderer for fields. + + + + + Creates a new + + instance. + + the id + + + A field that represents a control for selecting one of the provided options. + + + Creates a new select field box. + the id + + + + Implementation of the + + class for form fields. + + the generic type of the form field (e.g. input field, button, text area) + + + The id. + + + + Instantiates a new + + instance. + + the id + + + Common interface for HTML form elements + + + Gets the id. + the id + + + + Extension of the + + class representing a input with type button or submit in html + + + + + Creates a new + + instance. + + the id + + + + Extension of the + + class representing a button so that + a + + is used. + + + + Creates a new input field. + the id + + + The placeholder paragraph. + + + + + + + + + A marker interface that specifies that the layout object has placeholder + + + Gets the placeholder paragraph. + the placeholder paragraph + + + Sets the placeholder paragraph. + the paragraph to be used as placeholder + + + A field that represents a control for selecting one or several of the provided options. + + + Creates a new list box field. + the size of the list box, which will define the height of visible properties, shall be greater than zero + + a boolean flag that defines whether multiple options are allowed to be selected at once + + the id + + + + Extension of the + + class representing a radio button so that + a + + is used instead of the default renderer for fields. + + + + + Creates a new + + instance. + + the id + + + + Extension of the + + class representing a button so that + a + + is used instead of the default renderer for fields. + + + + The placeholder paragraph. + + + + Creates a new + + instance. + + the id + + + + + + + + + + Abstract + + for form fields. + + + + The flat renderer. + + + + Creates a new + + instance. + + the model element + + + Checks if form fields need to be flattened. + true, if fields need to be flattened + + + Gets the default value of the form field. + the default value of the form field + + + Adjusts the field layout. + layout context + + + Creates the flat renderer instance. + the renderer instance + + + Applies the AcroField widget. + the draw context + + + Gets the model id. + the model id + + + Checks if the renderer fits a certain width and height. + the available width + the available height + true, if the renderer fits + + + Gets the accessibility language. + the accessibility language + + + + Abstract + + for a single line of text content in a form field. + + + + + Creates a new + + instance. + + the model element + + + Crops the content lines. + a list of lines + the bounding box + + + Updates the paragraph height. + + + Sets the content height. + the flat renderer + the height + + + + Abstract + + for select form fields. + + + + + Creates a new + + instance. + + the model element + + + Gets the accessibility language. + the accessibility language + + + Checks if form fields need to be flattened. + true, if fields need to be flattened + + + Gets the model id. + the model id + + + + Abstract + + for form fields with text content. + + + + The font to be used for the text. + + + + Creates a new + + instance. + + the model element + + + Creates a paragraph renderer. + the default value + the renderer + + + Adjust number of content lines. + the lines that need to be rendered + the bounding box + the desired number of lines + + + Adjust number of content lines. + the lines that need to be rendered + the bounding box + the desired height of content + + + Applies the default field properties. + the input field + + + Updates the font. + the renderer + + + + The + + implementation for buttons with kids. + + + + Gets the model id. + the model id + + + Checks if form fields need to be flattened. + true, if fields need to be flattened + + + Gets the default value of the form field. + the default value of the form field + + + + The + + implementation for checkboxes. + + + + + Creates a new + + instance. + + the model element + + + Defines whether the box is checked or not. + the default value of the checkbox field + + + + The + + implementation for buttons with no kids. + + + + Indicates of the content was split. + + + + Creates a new + + instance. + + the model element + + + + The + + implementation for input fields. + + + + + Creates a new + + instance. + + the model element + + + Gets the size of the input field. + the input field size + + + Checks if the input field is a password field. + true, if the input field is a password field + + + Obfuscates the content of a password input field. + the password + a string consisting of '*' characters. + + + + The + + implementation for radio buttons. + + + + + Creates a new + + instance. + + the model element + + + Defines whether the radio is checked or not. + the default value of the radio field + + + + The + + implementation for select field renderer. + + + + + Creates a new + + instance. + + the model element + + + + The + + implementation for select field renderer. + + + + + Creates a new + + instance. + + the model element + + + + The `select` tag has default color css property, therefore it makes sense to explicitly override this property to all children, + otherwise it will be not applied due to the css resolving mechanism. + + + + + The + + implementation for text area fields. + + + + + Creates a new + + instance. + + the model element + + + Gets the number of columns. + the cols value of the text area field + + + Gets the number of rows. + the rows value of the text area field + + + Set of constants that will be used as keys to get and set properties. + + + The Constant PROPERTY_START. + + + The Constant KEEP_WITH_PREVIOUS works only for top-level elements, i.e. ones that are added to the document directly. + + + + The Constant PAGE_COUNT_TYPE. + + + The Constant FORM_FIELD_FLATTEN for form related properties. + + + The Constant FORM_FIELD_SIZE. + + + The Constant FORM_FIELD_VALUE. + + + The Constant FORM_FIELD_PASSWORD_FLAG. + + + The Constant FORM_FIELD_COLS. + + + The Constant FORM_FIELD_ROWS. + + + The Constant FORM_FIELD_CHECKED. + + + The Constant BODY_STYLING. + + + The Constant HTML_STYLING. + + + The Constant FORM_FIELD_MULTIPLE. + + + The Constant FORM_FIELD_SELECTED. + + + The Constant FORM_FIELD_SELECTED. + + + The Constant FORM_ACCESSIBILITY_LANGUAGE. + + + The Constant CAPITALIZE_ELEMENT indicates if an inline element needs to be capitalized. + + + This handler draws backgrounds and borders for html, body and page-annotation styles. + + + Constructor for HtmlBodyStylesApplierHandler. + + + + + + + + map that contains styles for html and body elements + + + + If html doesn't have a background and the body has, then body background must be drawn on the whole page. + + + If html doesn't have a background and the body has, then body background must be drawn on the whole page. + Also for case when html doesn't have a background, but has borders, + then body's background must be under the html's borders. + + + + + This class is a wrapper on + + , which is the default root element while creating a self-sufficient PDF. + + + This class is a wrapper on + + , which is the default root element while creating a self-sufficient PDF. + It contains several html-specific customizations. + + + + + Creates a html document from a + + with a manually set + . + + the in-memory representation of the PDF document + the page size + + if true, write pages and page-related instructions + to the + + as soon as possible. + + + + + + + The DocumentRenderer class for HTML. + + + The Constant TRIM_LAST_BLANK_PAGE. + + The Constant TRIM_LAST_BLANK_PAGE. + In a future version, we might want to expose this value to the users, + or make it a public setting of the HTML renderer. + + + + The page context processor for the first page. + + + The page context processor for all left pages. + + + The page context processor for all right pages. + + + Indicates if even pages are considered as left or right. + + Indicates if even pages are considered as left or right. + Important: this value might differ depending on page progression direction, + as well as because the first page break-before might change right page to left (in ltr cases), + but a blank page will not be added. + + + + + The waiting element, an child element is kept waiting for the + next element to process the "keep with previous" property. + + + + + Indicates if the first blank pages caused by a break-before-first + element should be trimmed. + + + + Indicates if anything was added to the current area. + + + The estimated number of pages. + + + + Instantiates a new + + instance. + + + an iText + + instance + + the immediate flush indicator + + + Processes the page rules. + the root node + the CSS resolver + the processor context + + + + Removes event handlers that were added to pdf document when this + + was created. + + + + Layouts waiting element. + + + + Returns the number of pages that will be trimmed on + + + 0 if no pages will be trimmed, or positive number of trimmed pages in case any are trimmed + + + Gets a page processor for the page. + + the number of the page for which the + + shall be obtained + + a page processor + + + Gets the estimated number of pages. + the estimated number of pages + + + Checks if the current page is a left page. + true, if is current page left + + + Checks if the current page is a right page. + true, if is current page right + + + + The HTML implementation of an + . + + + + + The + . + + + + Instantiates a new html page break. + the page break type + + + + Gets the + . + + the page break type + + + Enumeration of the HTML page break types. + + + Always break. + + + Insert page break so that the next page is formatted as a left page. + + + Insert page break so that the next page is formatted as a right page. + + + Context processor for specific types of pages: first, left, or right page. + + + The page size. + + + Marks for page boundaries. + + + The bleed value for the margin. + + + The margins. + + + The borders. + + + The paddings. + + + page background simulation. + + + page borders simulation. + + + The logger. + + + Instantiates a new page context processor. + the page context properties + the processor context + the default page size + the default page margins + + + Parses the marks. + + a + + value defining the marks + + + a + + of mark values + + + + + Re-initializes page context processor based on default current page size and page margins + and on properties from css page at-rules. + + + Re-initializes page context processor based on default current page size and page margins + and on properties from css page at-rules. Css properties priority is higher than default document values. + + current default page size to be used if it is not defined in css + current default page margins to be used if they are not defined in css + + this + + instance + + + + Gets the page size. + the page size + + + Compute layout margins. + the float values of the margins + + + Finalizes page processing by drawing margins if necessary. + the page to process + + the + + to which content is written + + the document renderer + + + + Processes a new page by setting the bleed value, adding marks, drawing + page backgrounds and borders. + + the page to process + + + Draws page background. + the page + pdfCanvas instance if there was a background to draw, otherwise returns null + + + Sets the bleed value for a page. + the new bleed + + + + Sets the different page boundaries and draws printer marks on the page + (if necessary). + + the page + + + + Draws a cross (used in the + + method). + + the canvas to draw on + the x value + the y value + true if horizontal + + + Draws page border. + the page + + + Draws margin boxes. + the page + + the + + to which content is written + + the document renderer + + + Parses the margins. + + a + + containing the styles + + a measurement expressed in em + a measurement expressed in rem (root em) + + + Parses the paddings. + + a + + containing the styles + + a measurement expressed in em + a measurement expressed in rem (root em) + + + Parses the borders. + + a + + containing the styles + + a measurement expressed in em + a measurement expressed in rem (root em) + + + Creates the page simulation elements. + + a + + containing the styles + + the processor context + + + + Properties class for the + . + + + + List containing possible names for page margin boxes. + + + The page context node. + + + The page margin boxes. + + + + Instantiates a new + + instance. + + the page context node + the page margin boxes + + + + Resolves a node with a + + instance as result. + + the root node to resolve + the CSS resolver + the CSS context + the page classes + + the + + for a specific node + + + + Gets the resolved margin boxes. + the page contex node + the CSS resolver + the CSS context + the resolved margin boxes + + + Gets the resolved page class node. + the root node + the CSS resolver + the CSS context + the page classes + the resolved page class node + + + Gets the resolved page context node. + the resolved page context node + + + Gets the resolved page margin boxes. + the resolved page margin boxes + + + + + implementation to be used for the page count. + + + + + Instantiates a new + . + + + + + Instantiates a new + . + + digits glyph style + + + Gets glyph style for digits. + name of the glyph style + + + + + implementation for the page count. + + + + Instantiates a new page count renderer. + the text element + + + + + + + + + Enumeration of page count types. + + + Type for the current page number. + + + Type for the total page count. + + + Gets rid of all page breaks that might have occurred inside page margin boxes because of the running elements. + + root renderer of renderers subtree + + + + See the algorithm detailed at https://www.w3.org/TR/css3-page/#margin-dimension + Divide the available dimension along the A,B and C according to their properties. + + object containing the dimension-related properties of A + object containing the dimension-related properties of B + object containing the dimension-related properties of C + maximum available dimension that can be taken up + float[3] containing the distributed dimensions of A at [0], B at [1] and C at [2] + + + Calculate the starting coordinate in a given dimension for a center of middle box + size of the available area + the calculated dimensions of the middle (center) box + offset from the start of the page (page margins and padding included) + starting coordinate in a given dimension for a center of middle box + + + Set the calculated dimension to the manually set dimension in the passed float array + Dimension Container containing the manually set dimension + array of calculated auto values for boxes in the given dimension + position in the array to replace + + + Distribute the available dimension between two boxes A and C based on their content-needs. + + Distribute the available dimension between two boxes A and C based on their content-needs. + The box with more content will get more space assigned + + maximum of the dimension the content in A occupies + minimum of the dimension the content in A occupies + maximum of the dimension the content in C occupies + minimum of the dimension the content in C occupies + maximum available dimension to distribute + float[2], distributed dimension for A in [0], distributed dimension for B in [1] + + + Check if a calculated dimension value needs to be recalculated + Dimension container containing min and max dimension info + array of calculated auto values for boxes in the given dimension + position in the array to look at + true if the values in dimensions trigger a recalculation, false otherwise + + + Calculate the margin boxes given the list of margin boxes that have generated content + + Rectangle[12] containing the calculated bounding boxes of the margin-box-nodes. Rectangles with 0 width and/or height + refer to empty boxes. The order is TLC(top-left-corner)-TL-TC-TY-TRC-RT-RM-RB-RBC-BR-BC-BL-BLC-LB-LM-LT + + + + Calculate containing block sizes for margin box. + the margin box index + + a + + defining dimensions of the page margin box corresponding to the given index + + the corresponding rectangle + + + Maps a margin box name to an index. + the margin box name + the index corresponding with the margin box name + + + The Class PageSizeParser. + + + A Map mapping page size names to page size values. + + + Fetch the page size. + the name of the page size ("a4", "letter",...) + the em value + the root em value + the default page size + the page size + + + Parses a page length value into a page size. + array of string values that represent the page size + the em value + the root em value + the page size + + + Try to parse a page length value. + a string containing a value + the em value + the root em value + the value as a float + + + Checks if a string represents length value. + the string that possibly represents a length value + true, if the string represents a length value + + + Checks if a string represents the CSS value for landscape or portrait orientation. + the string that possibly represents a landscape or portrait value + true, if the string represents a landscape or portrait value + + + + + implementation to be used for the page target-counter. + + + + + Instantiates a new + . + + name of the corresponding target + + + + Instantiates a new + . + + name of the corresponding target + digits glyph style + + + Gets element's target. + target which was specified for this element. + + + Gets glyph style for digits. + name of the glyph style + + + + + + + + implementation for the page target-counter. + + + + + Instantiates a new + . + + the text element + + + + + + + + + + + + + + + + + + + An + + that serves as a placeholder for removed running element + from the normal flow. + + + An + + that serves as a placeholder for removed running element + from the normal flow. This element is designed to register where particular running element would have been placed. + + + + + Creates a new instance of + . + + a container for the actual running element removed from the normal flow. + + + + It's an empty div so it's not expected to be ever split between areas. + + + A wrapper for the running elements taken out of the normal flow. + + + + Initializes a new instance of + + that contains + given running element + + and + + instances. + + + the + + of the running element. + + + the + + that was created for the running element + and have been already completely processed (with all running element children). + + + + Sets the page on which underlying running element was to be placed. + the 1-based index of the page on which running element was to be placed. + specifies if the given running element would have placed as the first element on the page or not. + + + + Gets the page on which underlying running element was to be placed. + the 1-based index of the page or 0 if element page is not yet defined. + + + Specifies if the given running element would have placed as the first element on the page or not. + + + Specifies if the given running element would have placed as the first element on the page or not. + Returned value only makes sense if + + returns value greater than 0. + + true if it would be the first element on the page, otherwise false. + + + This class keeps track of information regarding link (destinations) that occur in the document. + + This class keeps track of information regarding link (destinations) that occur in the document. + Doing so enables us to drastically trim the amount of PdfDestinations that will end up being included in the document. + For performance reasons it was decided to scan the DOM tree only once and store the result in a separate object + (this object) in the ProcessorContext. + + This class is not reusable and a new instance shall be created for every new conversion process. + + + + the ids currently in use as valid link destinations + + + Construct an (empty) LinkContext + + + Scan the DOM tree for all (internal) link targets + the DOM tree root node + this LinkContext + + + Returns whether a given (internal) link destination is used by at least one href element in the document + + link destination + whether a given (internal) link destination is used by at least one href element in the document + + + + A + + handles creating outlines for tags. + + + A + + handles creating outlines for tags. + + This class is not reusable and a new instance shall be created for every new conversion process. + + + + The Constant DEFAULT_DESTINATION_PREFIX. + + + The destination counter. + + The destination counter. + Counts the number of created the destinations with the same prefix in name, + to achieve the uniqueness of the destination names. + + + + The current outline. + + + The destinations in process. + + + The levels in process. + + + The tag priorities mapping. + + + The destination prefix. + + + Creates an OutlineHandler with standard predefined mappings. + the outline handler + + + Put tag priority mapping. + the tag name + the priority + the outline handler + + + Put all tag priority mappings. + the mappings + the outline handler + + + Gets the tag priority mapping. + the tag name + the tag priority mapping + + + Checks for tag priority mapping. + the tag name + true, if the tag name is listed in the tag priorities mapping + + + + Resets the current state so that this + + is ready to process new document + + + + Sets the destination name prefix. + + Sets the destination name prefix. + The destination name prefix serves as the prefix for the destination names created in the + + method. + + the destination name prefix + + + Gets the destination name prefix. + + Gets the destination name prefix. + The destination name prefix serves as the prefix for the destination names created in the + + method. + + the destination name prefix + + + Generate the unique destination name. + + Generate the unique destination name. + The destination name is a unique identifier for the outline so it is generated for the outline + in the + + method. You can override this method to set + your own way to generate the destination names, to avoid the destination name conflicts when + merging several PDF files created by html2pdf. + + the element + the unique destination name + + + Generate the outline name. + + Generate the outline name. + This method is used in the + + method. + You can override this method to set your own way to generate the outline names. + + the element + the unique destination name + + + Adds the outline and the destination. + + Adds the outline and the destination. + Adds the outline and its corresponding the destination to the PDF document + if the priority mapping is set for the element. + + the tag worker + the element + the processor context + the outline handler + + + Sets the destination to element. + + Sets the destination to element. + Sets the destination previously created in the + + method + to the tag worker element. + + the tag worker + the element + the outline handler + + + Gets the unique ID. + + Gets the unique ID. + This method is used in the + + method to generate the unique + destination names and in the + + method to generate the unique + outline names. The + + map serves to achieve the uniqueness of an ID. + + the key + the unique ID + + + + Tag worker class for the + abbr + element. + + + + + Creates a new + + instance. + + the tag + the context + + + Enrich the span with accessibility features, more specifically the expansion text. + the expansion text + + + TagWorker class for a link block. + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + a + element. + + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + body + element. + + + + The parent tag worker. + + + The lang attribute value. + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + br + element. + + + + A new line Text element. + + + + Creates a new + + instance. + + the element + the context + + + TagWorker class for a button element. + + + The Constant DEFAULT_BUTTON_NAME. + + + The button. + + + The lang attribute value. + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + caption + element. + + + + + Creates a new + + instance. + + the element + the context + + + TagWorker class for a column group. + + + The column group. + + + + Creates a new + + instance. + + the element + the context + + + Gets the column group. + the column group + + + TagWorker class for a column. + + + The column. + + + + Creates a new + + instance. + + the element + the context + + + Gets the column. + the column + + + + + implementation for elements with + display: flex. + + + + + Creates instance of + . + + the element with defined styles + the context of the converter processor + + + TagWorker class for a table row element. + + + The row wrapper. + + + The helper class for waiting inline elements. + + + The cell waiting for flushing. + + + The lang attribute value. + + + + Creates a new + + instance. + + the element + the context + + + Gets the table row wrapper. + the table row wrapper + + + Processes a cell. + the cell + + + Flushes inline elements to the waiting cell. + + + Flushes the waiting cell. + + + Creates a wrapper cell. + the cell + + + TagWorker class for a table element. + + + The table. + + + The table wrapper. + + + The helper class for waiting inline elements. + + + The cell waiting for flushing. + + + The flag which indicates whether. + + + + Creates a new + + instance. + + the element + the context + + + Processes a cell. + the cell + + + Flushes inline elements to the waiting cell. + + + Flushes the waiting cell. + + + Creates a wrapper cell. + the cell + + + + TagWorker class for the + div + element. + + + + The div element. + + + Helper class for waiting inline elements. + + + The display value. + + + + Creates a new + + instance. + + the element + the context + + + Adds a child element to the div block. + the element + true, if successful + + + Post-processes the hanging leaves of the waiting inline elements. + + + + TagWorker class for the + hr + element. + + + + + Creates a new + + instance. + + the element + the context + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + html + element. + + + + The iText document instance. + + + Helper class for waiting inline elements. + + + + Creates a new + + instance. + + the element + the context + + + Processes the page rules. + the root node + the css resolver + the context + + + Processes a block child. + the element + true, if successful + + + Post-processes the hanging leaves of the waiting inline elements. + + + + Interface for those TagWorker implementations that deal + with tags that can have a display value. + + + + Gets the display value. + the display value + + + + TagWorker class for the + img + element. + + + + The logger. + + + The image. + + + The display value. + + + + Creates a new + + instance. + + the element + the context + + + Gets the display value. + the display value + + + Implementation of the Image class when used in the context of HTML to PDF conversion. + + + + In iText, we use user unit for the image sizes (and by default + one user unit = one point), whereas images are usually measured + in pixels. + + + + + Creates a new + + instance. + + an Image XObject + + + + Creates a new + + instance. + + an Image XObject + + + + TagWorker class for the + input + element. + + + + The form element. + + + The display. + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + link + element. + + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + li + element. + + + + The list item. + + + The list. + + + The inline helper. + + + + Creates a new + + instance. + + the element + the context + + + Processes a child. + the property container + true, if successful + + + + TagWorker class for the + meta + element. + + + + + Creates a new + + instance. + + the tag + the context + + + + TagWorker class for the + object + element. + + + + The logger. + + + Helper for conversion of SVG processing results. + + + An Outcome of the worker. + An Outcome of the worker. The Svg as image. + + + Output of SVG processing. + Output of SVG processing. Intermediate result. + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + optgroup + element. + + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + option + element. + + + + + Creates a new + + instance. + + the element + the context + + + TagWorker class for the page count. + + + + Creates a new + + instance. + + the element + the context + + + TagWorker class for the page margin box. + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + input + 's placeholder. + + + + + TagWorker class for the + pre + element. + + + + Keeps track to see if any content was processed. + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + p + element. + + + TagWorker class for the + p + element. + + This is how this worker processes the <p> tag: + + if the worker meets a text or an inline element, it processes them with a help of + the + + instance + + if the worker meets a block element without inline displaying or + an inline element with the + display: block + style, it wraps all the content which hasn't been handled yet + into a + com.itextpdf.layout.element.Paragraph + object and adds this paragraph to the resultant + com.itextpdf.layout.element.Div + object + + + + + + The latest paragraph object inside tag. + + + The container which handles the elements that are present in the <p> tag. + + + Helper class for waiting inline elements. + + + The display value. + + + + Creates a new + + instance. + + the element + the context + + + TagWorker class for the running elements taken out of the normal flow. + + + + TagWorker class for the + select + element. + + + + The form element. + + + The display. + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + span + tag. + + + + The span wrapper. + + + A list of elements belonging to the span. + + + The own leaf elements. + + + The helper object for waiting inline elements. + + + The display value. + + + The text-transform value. + + + + Creates a new + + instance. + + the element + the processor context + + + Gets all the elements in the span. + a list of elements + + + Gets the span's own leaf elements. + the own leaf elements + + + + The child shall be one from + + list. + + + + Flushes the waiting leaf elements. + + + + Sets property that indicates whether the element should be capitalized, for + + elements only. + + elements to which properties will be added + + + + TagWorker class for the + svg + element. + + + + + Creates a new + + instance. + + the element + the context + + + TagWorker class for the footer of a table. + + + + Creates a new + + instance. + + the element + the context + + + TagWorker class for the header of a table. + + + + Creates a new + TableHeaderTagWorker + instance. + + the element + the context + + + + TagWorker class for the + table + element. + + + + The table wrapper. + + + The table. + + + The footer. + + + The header. + + + The parent tag worker. + + + The colgroups helper. + + + The display value. + + + + Creates a new + + instance. + + the element + the context + + + + Method to indicate that this is actually a + + instance. + + + + + Method to indicate that this is actually a + + instance. + + + + Applies the column styles. + + + + TagWorker class for the + td + element. + + + + The cell. + + + The inline helper. + + + The display. + + + + Creates a new + + instance. + + the element + the context + + + Processes a child element. + the property container + true, if successful + + + + TagWorker class for the + textarea + element. + + + + The Constant DEFAULT_TEXTAREA_NAME. + + + The text area. + + + + Creates a new + + instance. + + the element + the context + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + title + element. + + + + + Creates a new + + instance. + + the element + the context + + + + TagWorker class for the + tr + element. + + + + The row wrapper. + + + The parent tag worker. + + + The lang attribute value. + + + + Creates a new + + instance. + + the element + the context + + + Gets the table row wrapper. + the table row wrapper + + + + TagWorker class for the + ul + and + ol + elements. + + + + The list object. + + + Helper class for waiting inline elements. + + + + Creates a new + + instance. + + the element + the context + + + Processes an unlabeled list item. + + + Adds an unlabeled list item. + the item + + + Adds a child. + the child + true, if successful + + + Interface for all the tag worker implementations. + + + Placeholder for what needs to be done after the content of a tag has been processed. + the element node + the processor context + + + Placeholder for what needs to be done while the content of a tag is being processed. + the content of a node + the processor context + true, if content was successfully processed, otherwise false. + + + Placeholder for what needs to be done when a child node is being processed. + the tag worker of the child node + the processor context + true, if child was successfully processed, otherwise false. + + + + Gets a processed object if it can be expressed as an + + instance. + + + the same object on every call. + Might return null either if result is not yet produced or if this particular + tag worker doesn't produce result in a form of + . + + + + + + interface is used for instantiating new + + objects. + + + + IElementNode + ProcessorContext + + a + + instance constructed based on the passed parameters. + + + + Keeps track of the context of the processor. + + + The font provider. + + + Temporary set of fonts used in the PDF. + + + The resource resolver. + + + The device description. + + + The tag worker factory. + + + The CSS applier factory. + + + The base URI. + + + Indicates whether an AcroForm needs to be created. + + + The form field name resolver. + + + The radio check resolver. + + + The outline handler. + + + Indicates whether the document should be opened in immediate flush or not + + + The state. + + + The CSS context. + + + The link context + + + The PDF document. + + + The Processor meta info + + + Internal state variable to keep track of whether the processor is currently inside an inlineSvg + + + + Instantiates a new + + instance. + + + a + + instance + + + + Gets maximum number of layouts. + layouts limit + + + Sets the font provider. + the new font provider + + + Gets the state. + the state + + + Gets the PDF document. + the PDF document + + + Gets the font provider. + the font provider + + + Gets the temporary set of fonts. + the set of fonts + + + Gets the resource resolver. + the resource resolver + + + Gets the device description. + the device description + + + Gets the tag worker factory. + the tag worker factory + + + Gets the CSS applier factory. + the CSS applier factory + + + Gets the CSS context. + the CSS context + + + Gets the link context. + the link context + + + Checks if is an AcroForm needs to be created. + true, an AcroForm should be created + + + Gets the form field name resolver. + the form field name resolver + + + Gets the radio check resolver. + the radio check resolver + + + Gets the outline handler. + the outline handler + + + Add temporary font from @font-face. + the font info + the alias + + + Add temporary font from @font-face. + the font program + the encoding + the alias + + + Add temporary font from @font-face. + the font program + the encoding + the alias + the unicode range + + + Check fonts in font provider and temporary font set. + true, if there is at least one font either in FontProvider or temporary FontSet. + + + + + Resets the context. + + + Resets the context, and assigns a new PDF document. + the new PDF document for the context + + + Gets the baseURI: the URI which has been set manually or the directory of the html file in case when baseURI hasn't been set manually. + + the baseUri + + + Checks if immediateFlush is set + true if immediateFlush is set, false if not. + + + Gets html meta info container. + + Gets html meta info container. + Meta info will be used to determine event origin. + + html meta info container + + + Sets IMetaInfo to processor context. + the IMetaInfo object + + + Check if the processor is currently processing an inline svg + True if the processor is processing an inline Svg, false otherwise. + + + Set the processor to processing Inline Svg state + + + End the processing Svg State + + + State machine to push, pop, peek,... + + State machine to push, pop, peek,... + + instances to and from the + . + + + + The stack. + + + + Instantiates a new + + instance. + + + + Gets the stack. + the stack + + + + Pushes a + + instance to the stack. + + the tag worker + + + + Pops a + + from the stack. + + the tag worker + + + + Peeks at the + + at the top of the stack. + + the tag worker at the top + + + Checks if the stack is empty. + true, if the stack is empty + + + Helper class for links. + + + + Creates a new + + class. + + + + Applies a link annotation. + the containing object + the destination + + + Creates a destination + the tagworker that is building the (iText) element + the (HTML) element being converted + the Processor context + + + Helper class to keep track of the current column / row position in a table. + + + The last empty row. + + + The current row index. + + + The current column index. + + + Move to a new row. + + + Update current position based on a colspan and a rowspan. + the colspan + the rowspan + + + Move to next empty column. + the current column position + + + Checks if we can put a new cell in the column. + the column index + true, if successful + + + Ensure that a row is started. + + + Utility class to trim content. + + + + Creates a new + + instance. + + + + Trim leaf elements, and sanitize. + the leaf elements + the trimmed and sanitized list + + + Checks if a character is white space value that doesn't cause a newline. + the character + true, if the character is a white space character, but no newline + + + Trims a sub list of leaf elements. + the list of leaf elements + the index where to begin + the index where to end + indicates where to start, if true, we start at the end + + + Trims a text element. + the text element + indicates where to start, if true, we start at the end + + + Gets the index of first character that isn't white space in some text. + + Gets the index of first character that isn't white space in some text. + Note: newline characters aren't counted as white space characters. + + the text + the index of first character that isn't white space + + + Gets the index of last character following a character that isn't white space in some text. + + Gets the index of last character following a character that isn't white space in some text. + Note: newline characters aren't counted as white space characters. + + the text + the index following the last character that isn't white space + + + Helper class for waiting column groups. + + + The table element. + + + The column groups. + + + The maximum value of the index. + + + The index to column group mapping. + + + The shift values for the columns. + + + + Creates a new + + instance. + + the table element + + + Adds a column group. + the column group + + + Applies column styles. + + + Gets a specific column. + the index of the column + the column + + + Applies column styles. + the node + the helper class to keep track of the position inside the table + + + Finalizes the column groups. + + + Helper class for waiting inline elements. + + + A value that defines how to transform text. + + + Indicates whether line breaks need to be preserved. + + + Indicates whether white space characters need to be collapsed. + + + List of waiting leaf elements. + + + + Creates a new + + instance. + + we'll check if this value equals "pre" or "pre-wrap" + will define the transformation that needs to be applied to the text + + + Adds text to the waiting leaves. + the text + + + Adds a leaf element to the waiting leaves. + the element + + + Adds a collecton of leaf elements to the waiting leaves. + the collection + + + Flush hanging leaves. + a container element + + + Creates the leaves container. + a paragraph + + + Gets the waiting leaves. + the waiting leaves + + + Gets the sanitized waiting leaves. + the sanitized waiting leaves + + + Clears the waiting leaves. + + + Creates a paragraph container. + the paragraph container + + + Capitalizes a series of leaf elements. + a list of leaf elements + + + + Wrapper for the + colgroup + element. + + + + The span. + + + The lang attribute value. + + + The width. + + + The index to column mapping. + + + The cell CSS properties. + + The cell CSS properties. + These properties should be inherited from <colgroup> to <col> + and are eventually applied to <td> or <th>. + + + + The own CSS properties. + + The own CSS properties. + These properties shouldn't be applied to <td> or <th>. + + + + A list of column wrappers. + + + + Creates a new + + instance. + + the span + + + Gets the span. + the span + + + Gets the width. + the width + + + Sets the width. + the width + + this + + instance + + + + Gets the cell CSS properties. + the cell CSS properties + + + Sets the cell CSS properties. + the cell CSS properties + + this + + instance + + + + Gets the own CSS properties. + the own CSS properties + + + Sets the own CSS properties. + the own CSS properties + + this + + instance + + + + Gets the columns. + the columns + + + Finalize the columns. + + this + + instance + + + + Gets the column by index. + the index + the column corresponding with the index + + + Sets the language attribute. + the lang attribute + + + Gets the language attribute. + the lang attribute + + + + Wrapper for the + col + element. + + + + The span. + + + The lang attribute value. + + + The width. + + + The cell CSS properties. + + The cell CSS properties. + These properties should be inherited from <colgroup> to <col> + and are eventually applied to <td> or <th>. + + + + The own CSS properties. + + The own CSS properties. + These properties shouldn't be applied to <td> or <th>. + + + + + Creates a new + + instance. + + the span + + + Gets the span. + the span + + + Gets the width. + the width + + + Sets the width. + the width + + this + + instance + + + + Gets the cell CSS properties. + the cell CSS properties + + + Sets the cell CSS properties. + the cell CSS properties + + this + + instance + + + + Gets the own CSS properties. + the own CSS properties + + + Sets the own CSS properties. + the own CSS properties + + this + + instance + + + + Sets the language attribute. + the lang attribute + + + Gets the language attribute. + the lang attribute + + + Interface for all the element wrapper classes (such as SpanWrapper, TableWrapper,...). + + + + Wrapper for the + span + element. + + + + The children of the span element. + + + Adds a child span. + the span element to add + + + Adds a child image. + the img element to add + + + Adds a child block element. + the block element to add + + + Adds a collection of lead elements as children. + the collection to add + + + Gets a list of all the child elements. + the child elements + + + + Wrapper for the + tr + element. + + + + The cells in the row. + + + Adds a cell to the row. + the cell + + + Gets the cells of the row. + the cells + + + + Wrapper for the + table + element. + + + + The body rows of the table. + + + The header rows. + + + The footer rows. + + + The current position in the body of the table (row / column). + + + The current position in the header of the table (row / column). + + + The current position in the footer of the table (row / column). + + + The number of columns. + + + The direction value. + + + The caption value. + + + The lang attribute value. + + + The footer lang attribute value. + + + The header lang attribute value. + + + Gets the number of rows. + the number of rows + + + Adds a new body row. + + + Adds a new header row. + + + Adds a new footer row. + + + Adds a new cell to the header rows. + the cell + + + Adds a new cell to the footer rows. + the cell + + + Adds a new cell to the body rows. + the cell + + + Adds a cell to a table. + the cell + the table + the applicable table row shift (current col / row position). + + + Sets the table's caption. + the caption to be set + + + + Renders all the rows to a + + object. + + the colgroups helper class + the table + + + Gets the column widths. + the colgroups helper class + the column widths + + + + Wrapper for the + td + / + th + element. + + + + The column index. + + + The cell. + + + + Creates a new + + instance. + + the column index + the cell + + + + Properties that will be used by the + . + + + + Default maximum number of layouts. + + + The media device description. + + + The font provider. + + + The tag worker factory. + + + The CSS applier factory. + + + The outline handler. + + + The base URI. + + + The resource retriever. + + + Indicates whether an AcroForm should be created. + + + Character set used in conversion of input streams + + + Indicates whether the document should be opened in immediate flush or not + + + Maximum number of layouts. + + + Meta info that will be added to the events thrown by html2Pdf. + + + + Instantiates a new + + instance. + + + + + Instantiates a new + + instance based on another + + instance + (copy constructor). + + + the other + + instance + + + + Gets the media device description. + + Gets the media device description. + + The properties of the multimedia device are taken into account when creating the SVG and + when processing the properties of the СSS. + + the media device description + + + Sets the media device description. + + Sets the media device description. + + The properties of the multimedia device are taken into account when creating the SVG and + when processing the properties of the СSS. + + the media device description + + the + + instance + + + + Gets the font provider. + + Gets the font provider. + + Please note that + + instances cannot be reused across several documents + and thus as soon as you set this property, this + + instance becomes only useful + for a single HTML conversion. + + the font provider + + + Sets the font provider. + + Sets the font provider. + + Please note that + + instances cannot be reused across several documents + and thus as soon as you set this property, this + + instance becomes only useful + for a single HTML conversion. + + the font provider + + the + + instance + + + + Gets maximum number of layouts. + layouts limit + + + Sets maximum number of layouts. + layouts limit + + the + + instance + + + + Gets the TagWorkerFactory instance. + + Gets the TagWorkerFactory instance. + + The tagWorkerFactory is used to create + + , which in turn + are used to convert the HTML tags to the PDF elements. + + the TagWorkerFactory + + + Sets the TagWorkerFactory. + + Sets the TagWorkerFactory. + + The tagWorkerFactory is used to create + + , which in turn + are used to convert the HTML tags to the PDF elements. + + the TagWorkerFactory + + the + + instance + + + + Gets the CSS applier factory. + + Gets the CSS applier factory. + + The cssApplierFactory is used to create + + , which in turn + are used to convert the CSS properties to the PDF properties. + + the CSS applier factory + + + Sets the CSS applier factory. + + Sets the CSS applier factory. + + The cssApplierFactory is used to create + + , which in turn + are used to convert the CSS properties to the PDF properties. + + the CSS applier factory + + the + + instance + + + + Gets the base URI. + + Gets the base URI. + + Base URI is used to resolve other URI. + + the base URI + + + Sets the base URI. + + Sets the base URI. + + Base URI is used to resolve other URI. + + the base URI + + the + + instance + + + + Gets the resource retriever. + + Gets the resource retriever. + + The resourceRetriever is used to retrieve data from resources by URL. + + the resource retriever + + + Sets the resource retriever. + + Sets the resource retriever. + + The resourceRetriever is used to retrieve data from resources by URL. + + the resource retriever + + the + + instance + + + + Check if the createAcroForm flag is set. + + Check if the createAcroForm flag is set. + + If createAcroForm is set, then when the form is encountered in HTML, AcroForm will be created, otherwise + a visually identical, but not functional element will be created. Please bare in mind that the created + Acroform may visually differ a bit from the HTML one. + + the createAcroForm flag + + + Sets the createAcroForm value. + + Sets the createAcroForm value. + + If createAcroForm is set, then when the form is encountered in HTML, AcroForm will be created, otherwise + a visually identical, but not functional element will be created. Please bare in mind that the created + Acroform may visually differ a bit from the HTML one. + + true if an AcroForm needs to be created + + the + + instance + + + + Gets the outline handler. + + Gets the outline handler. + + If outlineHandler is specified, then outlines will be created in the PDF + for HTML tags specified in outlineHandler. + + Please note that + + is not thread safe, thus + as soon as you have set this property, this + + instance cannot be used in + converting multiple HTMLs simultaneously. + + the outline handler + + + Sets the outline handler. + + Sets the outline handler. + + If outlineHandler is specified, then outlines will be created in the PDF + for HTML tags specified in outlineHandler. + + Please note that + + is not thread safe, thus + as soon as you have set this property, this + + instance cannot be used in + converting multiple HTMLs simultaneously. + + the outline handler + + the + + instance + + + + Gets the encoding charset. + + Gets the encoding charset. + + Charset is used to correctly decode an HTML file. + + the charset + + + Sets the encoding charset. + + Sets the encoding charset. + + Charset is used to correctly decode an HTML file. + + the charset + + the + + instance + + + + Checks if immediateFlush is set. + + Checks if immediateFlush is set. + + This is used for + + methods and will be + overwritten to false if a page-counter declaration is present in the CSS of the HTML being converted. + Has no effect when used in conjunction with + + or + . + + true if immediateFlush is set, false if not + + + Set the immediate flush property of the layout document. + + Set the immediate flush property of the layout document. + + This is used for + + methods and will be + overwritten to false if a page-counter declaration is present in the CSS of the HTML being converted. + Has no effect when used in conjunction with + + or + . + + the immediate flush value + + the + + instance + + + + Gets html meta info. + + Gets html meta info. + + This meta info will be used to determine event origin. + + + converter's + + + + + Sets html meta info. + + Sets html meta info. + + This meta info will be used to determine event origin. + + meta info to set + + the + + instance + + + + Interface to be implemented by all types of CSS appliers. + + + Applies styles to an element. + the processor context + the styles + the tag worker for the element + + + + + interface is used for instantiating new + + objects. + + + + + Returns a + + instance constructed based on the parameters of a node. + + a node + a CSS applier based on the parameters of a node + + + + + implementation for Block elements. + + + + + + implementation for Body elements. + + + + + + implementation for a captionelement. + + + + + + implementation for column groups. + + + + + + implementation for columns. + + + + + + implementation for linear-gradient elements in content CSS property. + + + + The default width of the div content in the points, and this will be 300 pixels. + + + The default height of the div content in the points, and this will be 150 pixels. + + + + A factory for creating + + objects. + + + + The default mapping of CSS keywords and CSS appliers. + + + + Creates a new + + instance. + + + + + Gets + + instance. + + default instance that is used if custom css appliers are not configured + + + Gets a custom CSS applier. + + Gets a custom CSS applier. + This method needs to be overridden because the default CSS applier + factory will always return + . + + the key + the custom CSS applier + + + Gets the css applier class. + the mapping + the tag + the css applier class creator + + + Class that contains the default mapping between CSS keys and CSS appliers. + + + + Creates a new + + instance. + + + + The default mapping. + + + Gets the default CSS applier mapping. + the default CSS applier mapping + + + + + implementation for elements with display flex. + + + + + + implementation for table rows. + + + + + + implementation for Dl elements. + + + + + + implementation for hr elements. + + + + + + implementation for Html elements. + + + + + + implementation for Li elements. + + + + + + implementation for page margin box containers. + + + + Parses the page and margin boxes properties (like margins, paddings, etc). + + a + + containing the styles + + a measurement expressed in em + a measurement expressed in rem (root em) + the default values + the containing block + the top prop name + the right prop name + the bottom prop name + the left prop name + an array with a top, right, bottom, and top float value + + + Parses the box value. + a measurement expressed in em + a measurement expressed in rem (root em) + the dimension size + a float value + + + + + implementation for input's placeholder. + + + + + + implementation for Span elements. + + + + Applies styles to child elements. + the element + the CSS mapping + the processor context + the styles container + + + + + implementation for table elements. + + + + + + implementation for Td elements. + + + + + + implementation for Tr elements. + + + + + + implementation for Ul en Ol elements. + + + + Utilities class to apply backgrounds. + + + + Creates a new + + instance. + + + + Applies background to an element. + the CSS properties + the processor context + the element + + + Implementation of the Image class when used in the context of HTML to PDF conversion. + + + + In iText, we use user unit for the image sizes (and by default + one user unit = one point), whereas images are usually measured + in pixels. + + + + + Creates a new + + instance. + + + background-image property. + + instance. + + + background-repeat property. + + instance. + + + background-position property. + + instance. + + + background-blend-mode property. + + instance. + + + background-clip property. + + instance. + + + background-origin property. + + instance. + + + + + Creates a new + + instance. + + + background-image property. + + instance. + + + background-repeat property. + + instance. + + + background-position property. + + instance. + + + background-blend-mode property. + + instance. + + + background-clip property. + + instance. + + + background-origin property. + + instance. + + + + Utilities class to apply border styles. + + + + Creates a new + + instance. + + + + Applies borders to an element. + the CSS properties + the Processor context + the element + + + Gets the array that defines the borders. + the styles mapping + the em value + the root em value + the borders array + + + + Creates a + + instance based on specific properties. + + the border width + the border style + the border color + the em value + the root em value + the border + + + Gets the array that defines the borders. + the styles mapping + the em value + the root em value + the borders array + + + Utilities class to process counters. + + + Processes counters. + the CSS properties + the processor context + + + Starts processing counters. + + Starts processing counters. Pushes current counter values to counters if necessary. + Usually it is expected that this method should be called before processing children of the element. + + the processor context + the element which counters shall be processed + + + Ends processing counters. + + Ends processing counters. Pops values of given counter list from counters if necessary. + Usually it is expected that this method should be called after processing cheldren of the element. + + the processor context + the element which counters shall be processed + + + Utilities class to apply flex properties. + + + Applies properties to a flex item. + the map of the CSS properties + the context of the converter processor + the element to set the properties + + + Applies properties to a flex container. + the CSS properties + the element + + + Utilities class to apply float values to elements. + + + + Creates a new + + instance. + + + + Applies a float value (left, right, or both) to an element. + the CSS properties + the processor context + the element + + + Utilities class to apply font styles. + + + The logger. + + + + Creates a + + instance. + + + + Applies font styles to an element. + the CSS props + the processor context + the styles container + the element + + + The Class HyphenationApplierUtil. + + + The Constant HYPHENATE_BEFORE. + + + The Constant HYPHENATE_AFTER. + + + + Creates a new + + instance. + + + + Applies hyphenation to an element. + the CSS props + the processor context + the styles container + the element + + + Utilities class to apply list styles to an element. + + + The Constant LIST_ITEM_MARKER_SIZE_COEFFICIENT. + + The Constant LIST_ITEM_MARKER_SIZE_COEFFICIENT. + The coefficient value of 2/5 is chosen in such a way that the result + of the converting is as similar as possible to the browsers displaying. + + + + The Constant GREEK_ALPHABET_LENGTH. + + + The Constant GREEK_LOWERCASE. + + + The Constant DISC_SYMBOL. + + + The Constant CIRCLE_SYMBOL. + + + The Constant SQUARE_SYMBOL. + + + + Creates a new + + instance. + + + + Applies an image list style to an element. + the CSS properties + the processor context + the element + + + Applies a list style to an element. + the styles container + the CSS properties + the processor context + the element + + + Applies the "disc" list style to an element. + the element + the em value + + + + Sets the list symbol for a + + or + + element. + + + the container element ( + + or + + ) + + the list symbol + + + + Sets the list symbol for a + + or + + element. + + + the container element ( + + or + + ) + + the list numbering type + + + Applies the "square" list style to an element. + the element + the em value + + + Applies the "circle" list style to an element. + the element + the em value + + + Sets the list symbol indentation. + the element + the em value + + + + A factory for creating + HtmlAlphabetSymbol + objects. + + + + The alphabet. + + + + Creates a new + + instance. + + the alphabet + + + + Gets the a property from a + + , or from the + + (if the property) isn't declared for the list item. + + the list item + the list + the property id + the property value + + + Utilities class to apply margins. + + + The logger. + + + + Creates a + + instance. + + + + Applies margins to an element. + the CSS properties + the processor context + the element + + + Applies margins to an element. + the CSS properties + the processor context + the element + value used by default for horizontal dimension + value used by default for vertical dimension + + + Tries set margin if the value isn't "auto". + the margin property + the margin value + the element + the em value + the root em value + value used by default + false if the margin value was "auto" + + + Parses the margin value. + + the margin value as a + + + the em value + the root em value + value used my default + + the margin value as a + + + + + Utilities class to apply opacity. + + + + Creates a new + + instance. + + + + Applies opacity to an element. + the CSS properties + the processor context + the container element + + + Utilities class to apply orphans and widows properties. + + + + Creates a + + instance. + + + + Applies orphans and widows properties to an element. + the CSS properties + to which the property will be applied. + + + The logger. + + + + Creates a new + + instance. + + + + Applies outlines to an element. + the CSS properties + the Processor context + the element + + + + Creates a + + instance based on specific properties. + + the outline width + the outline style + the outline color + the em value + the root em value + the border + + + Utilities class to apply overflow. + + + Creates a new OverflowApplierUtil instance. + + + Applies overflow to an element. + the CSS properties + the element + + + Utilities class to apply a padding. + + + The logger. + + + + Creates a new + + instance. + + + + Applies paddings to an element. + the CSS properties + the processor context + the element + + + Applies paddings to an element. + the CSS properties + the processor context + the element + value used by default for horizontal dimension + value used by default for vertical dimension + + + Utilities class to apply page breaks. + + + + Creates a new + + instance. + + + + Applies page break properties. + the CSS properties + the processor context + the element + + + Processes a page break "before" property. + the processor context + the parent tag worker + the child element + the child tag worker + + + Processes a page break "after" property. + the processor context + the parent tag worker + the child element + the child tag worker + + + + Creates an + + instance. + + the page break value + + the + + instance + + + + Applies a keep with next property to an element. + the CSS properties + the processor context + the element + + + Applies a page break inside property. + the CSS properties + the processor context + the element + + + + A + TagWorker + class for HTML page breaks. + + + + + The + + instance. + + + + + Creates a new + + instance. + + the page break + + + Utilities class to apply a position. + + + The logger. + + + + Creates a new + + instance. + + + + Applies a position to an element. + the CSS properties + the propertiescontext + the element + + + Applies left, right, top, and bottom properties. + the CSS properties + the processor context + the element + the position + + + Applies the "left" property. + the CSS properties + the element + the em value + the root em value + the layout property mapping + + + Applies the "right" property. + the CSS properties + the element + the em value + the root em value + the layout property mapping + + + Applies the "top" property. + the CSS properties + the element + the em value + the root em value + the layout property mapping + + + Applies the "bottom" property. + the CSS properties + the element + the em value + the root em value + the layout property mapping + + + + Utilities class to get widths and mapping related to columns and column groups + as stated in paragraph 17.3 of https://www.w3.org/TR/CSS21/tables.html#q4. + + + + + These inheritable properties should be transferred from <colgroup> + to <col> and then to <td> or <th>. + + + + These properties don't need to be transferred from <colgroup> to <col>. + + + Gets the width. + the resolved CSS properties + the processor context + the width + + + Gets the cell properties. + the resolved CSS properties + the cell properties + + + Gets the own properties. + the resolved css props + the own properties + + + Filters a given map so that it only contains supported keys. + the map + the supported keys + the filtered map + + + + Creates a new + + instance. + + + + Applies a transformation to an element. + the CSS properties + the properties context + the element + + + Convert an angle (presented as radians or degrees) to radians + the angle (as a CSS string) + + + Apply a linear transformation, using a transformation matrix + element [0,0] of the transformation matrix + element [0,1] of the transformation matrix + element [1,0] of the transformation matrix + element [1,1] of the transformation matrix + translation on x-axis + translation on y-axis + + + Apply a linear transformation using a transformation matrix + element [0,0] of the transformation matrix + element [0,1] of the transformation matrix + element [1,0] of the transformation matrix + element [1,1] of the transformation matrix + translation on x-axis + translation on y-axis + + + Apply a linear transformation using a transformation matrix + the transformation matrix (flattened) as array + + + Utilities class to apply vertical alignment values. + + + The Constant ASCENDER_COEFFICIENT. + + + The Constant DESCENDER_COEFFICIENT. + + + + Creates a new + . + + + + Applies vertical alignment to cells. + the CSS properties + the processor context + the element + + + Apply vertical alignment to inline elements. + the CSS properties + the processor context + the styles container + the child elements + + + Calculates the text rise value for <sup> and <sub> tags. + the styles container + the vertical alignment value + the calculated text rise + + + Calculates the text rise for middle alignment. + the styles container + the calculated text rise + + + Calculates the text rise for top alignment. + the styles container + the root font size + the calculated text rise + + + Calculates the text rise for bottom alignment. + the styles container + the root font size + the calculated text rise + + + Calculates text rise for percentage value text rise. + the styles container + the root font size + the vertical alignment value + the calculated text rise + + + Gets the actual value of the line height. + the font size + the root font size + + the line height as a + + + + the actual line height as a + float + + + + Gets the parent font size. + the styles container + the parent font size + + + Utilities class to apply a width or a height to an element. + + + The logger. + + + + Creates a new + + instance. + + + + Applies a width or a height to an element. + the CSS properties + the processor context + the element + + + The Constant BLEED. + + + The Constant BOTH. + + + The Constant BOX_SIZING. + + + The Constant CLEAR. + + + The Constant CONTENT. + + + The Constant COUNTER_INCREMENT. + + + The Constant COUNTER_RESET. + + + The Constant DISPLAY. + + + The Constant LIST_ITEM. + + + The Constant MARKS. + + + The Constant MAX_HEIGHT. + + + The Constant MAX_WIDTH. + + + The Constant MIN_WIDTH. + + + The Constant OBJECT_FIT. + + + The Constant OUTLINE_OFFSET. + + + The Constant OVERFLOW_X. + + + The Constant OVERFLOW_Y. + + + The Constant PADDING_INLINE_START. + + + The Constant PLACEHOLDER. + + + The Constant SIZE. + + + The Constant STYLE. + + + The Constant TABLE_LAYOUT. + + + The Constant VERTICAL_ALIGN. + + + The Constant ABSOLUTE. + + + The Constant BLINK. + + + The Constant BLOCK. + + + The Constant CAPITALIZE. + + + The Constant COLLAPSE. + + + The Constant CROP. + + + The Constant CROSS. + + + The Constant FILL. + + + The Constant FIRST. + + + The Constant FIRST_EXCEPT. + + + The Constant INLINE. + + + The Constant INLINE_BLOCK. + + + The Constant INLINE_TABLE. + + + The Constant INVERT. + + + The Constant JUSTIFY. + + + The Constant LANDSCAPE. + + + The Constant LAST. + + + The Constant LINE_THROUGH. + + + The Constant LOWERCASE. + + + The Constant LTR. + + + The Constant MIDDLE. + + + The Constant NOWRAP. + + + The Constant OVERLINE. + + + The Constant PAGE. + + + The Constant PAGES. + + + The Constant PORTRAIT. + + + The Constant PRE. + + + The Constant PRE_LINE. + + + The Constant PRE_WRAP. + + + The Constant RELATIVE. + + + The Constant RTL. + + + The Constant SCALE_DOWN. + + + The Constant SEPARATE. + + + The Constant SUB. + + + The Constant SUPER. + + + The Constant TABLE. + + + The Constant TABLE_CELL. + + + The Constant TABLE_ROW. + + + The Constant TEXT_BOTTOM. + + + The Constant TEXT_TOP. + + + The Constant UNDERLINE. + + + The Constant UPPERCASE. + + + The Constant OVERFLOW_VALUES. + + + The Constant AFTER. + + + The Constant BEFORE. + + + The Constant FIRST_LETTER. + + + The Constant FIRST_LINE. + + + The Constant SELECTION. + + + The Constant COUNTER. + + + The Constant COUNTERS. + + + The Constant RUNNING. + + + The Constant RUNNING. + + + The Constant TARGET_COUNTER. + + + The Constant TARGET_COUNTERS. + + + The Constant DPI. + + + Class that manages running elements. + + + Registers new running element from HTML document. + the name of the new running element. + a wrapper for the running elements taken out of the normal flow. + + + + Finds the running element that has particular name and should appear on specific page with given occurrence + options. + + + Finds the running element that has particular name and should appear on specific page with given occurrence + options. This would work only if page content was already layouted and flushed (drawn). + + the running element name. + + an option defining which running element should be chosen in case there are multiple + running elements with the same name on the given page. + + the 1-based index of the page for which running element is requested. + + + + with corresponding running element, or + + if no running + element should be displayed for the given page with the given name or occurrence option. + + + + + Wrapper + + serving as a placeholder for running element. + + + + The Class CssContentPropertyResolver. + + + Resolves content. + the styles map + the content container + the CSS context + + a list of + + instances + + + + Resolves content in case of errors. + the content + + the resulting list of + + instances + + + + + + implementation for content text. + + + + The parent. + + + The content. + + + + Creates a new + + instance. + + the parent + the content + + + Class that bundles all the CSS context properties. + + + The root font size value in pt. + + + The counter manager. + + + Indicates if a pages counter or page(s) target-counter is present. + + + Indicates if a non-page(s) target-counter(s) is present. + + + The running elements manager. + + + Gets the root font size. + the root font size in pt + + + Sets the root font size. + the new root font size + + + Sets the root font size. + the new root font size + + + Gets the counter manager. + the counter manager + + + Sets the presence of a pages counter or page(s) target counter. + the new pages counter or page(s) target-counter present + + + Checks if a pages counter or page(s) target-counter is present. + true, if pages counter or page(s) target-counter present + + + Sets the presence of a non-page(s) target-counter(s). + the new non-page(s) target-counter(s) present + + + Checks if a non-page(s) target-counter(s) is present. + true, if non-page(s) target-counter(s) present + + + + Default implementation of the + + interface. + + + + The CSS style sheet. + + + The device description. + + + Css inheritance checker + + + The list of fonts. + + + + Creates a new + + instance. + + the root node + the media device description + the resource resolver + + + + Creates a new + + instance. + + the root node + the processor context + + + Gets the list of fonts. + + the list of + + instances + + + + Resolves content and counter(s) styles of a node given the passed context. + the node + the CSS context (RootFontSize, etc.) + + + + + + Resolves a content property. + the styles map + the content container + the CSS context + + + Collects CSS declarationss. + the root node + the resource resolver + the CSS context + + + Check if a non-page(s) target-counter(s) is mentioned and enables it. + the stylesheet to analyze + the CSS context + + + Check if a pages counter is mentioned and enables it. + the stylesheet to analyze + the CSS context + + + + Wraps a + + into the style sheet if the head child element has a media attribute. + + the head child element + the style sheet + the css style sheet + + + Collects fonts from the style sheet. + + + + Collects fonts from a + . + + the CSS statement + + + Enumeration of css counter and target-counter digits glyph style. + + + Class that manages counters (e.g. for list symbols). + + + The Constant DEFAULT_COUNTER_VALUE. + + + The Constant DEFAULT_INCREMENT_VALUE. + + + Map to store target-counter values. + Map to store target-counter values. First key is target-counter ID. Second key is counter name. + + + Map to store target-counters values. + Map to store target-counters values. First key is target-counters ID. Second key is counter name. + + + + Map to store counters values. + + Map to store counters values. The key is the counter name, the value is the + + with counters values. + + + + Map to store counter values. + Map to store counter values. The key is the counter name, the value is the current counter value. + + + + List of counters that were pushed before processing children of the corresponding element. + + + + Creates a new + + instance. + + + + Clears information about counters. + Clears information about counters. Target-counter(s) information remains. + + + Pushes every current non-null counter to stack of counters. + + Pushes every current non-null counter to stack of counters. + This method should be called when we are about to process child nodes. + + the element which counters shall be pushed + + + Pops every given counter from stack of counters. + + Pops every given counter from stack of counters. + This method should be called when we have finished processing child nodes. + + the element which counters shall be popped + + + Gets target-counter value for specified ID and counterName. + Gets target-counter value for specified ID and counterName. Value is converted according to listSymbolType. + + + ID of the element. The first call adds ID to the Map, which means we require its value. + The second call returns corresponding value if we already encountered corresponding element + + + name of the counter. The first call adds counterName to the Map, + which means we require its value. + The second call returns corresponding value if we already encountered corresponding element + + the list symbol type to convert counter's value. null if conversion is not required. + + target-counter value. + + + Gets target-counter value for specified ID and counterName. + Gets target-counter value for specified ID and counterName. Value is converted according to listSymbolType. + + + ID of the element. The first call adds ID at the Map, + which means we require its value. The second call returns corresponding value + if we already encountered this element + + + name of the counter. The first call adds name at the Map, + which means we require its value. The second call returns corresponding value + if we already encountered this element + + separator to separate counters values. + the list symbol type to convert counter's value. null if conversion is not required. + + target-counter value. + + + Adds counter value to every counter in the Map corresponding to a node ID. + node to take ID and scope from + + + Adds counters value to every counter in the Map corresponding to a node ID. + node to take ID and scope from + + + Resolves a counter. + the counter name + the list symbol type + + the counter value as a + + + + + Resolves counters. + the counter name + the counter separator + the list symbol type + + the counters as a + + + + + Resets the counter. + the counter name + + + Resets the counter. + the counter name + the new value + + + Increments the counter. + the counter name + + + Increments the counter. + the counter name + the increment value + + + + + implementation for a page count element node. + + + + The Constant PAGE_COUNTER_TAG. + + + The parent. + + + Indicates if the node represents the total page count. + + + Checks if the node represents the total page count. + true, if the node represents the total page count + + + Gets glyph style for digits. + name of the glyph style + + + Sets glyph style for digits. + name of the glyph style + + this + + instance + + + + + + implementation for page target-counters. + + + + The target from which page will be taken. + + + + Creates a new + + instance. + + the parent node + the target from which page will be taken. + + + Checks if the node represents the total page count. + true, if the node represents the total page count + + + Utilities class that converts HTML styles to CSS. + + + Maps HTML styles to a specific converter. + + + + Converts a the HTML styles of an element to a list of + + instances. + + the element + + the resulting list of + + instances. + + + + Interface for all the attribute converter classes. + + + Checks if the converter is supported for a specific element. + the element name + true, if the converter is supported + + + + Converts a specific HTML style to a + . + + the element + the value of the HTML style + + a list of + + instances + + + + + + implementation for HTML border styles. + + + + Applies borders to the tables and cells. + the node + the border styles + + + + + implementation for table's cellpadding. + + + + Applies paddings to the table's cells. + the node + cellpadding + + + + + implementation for table's cellspacing. + + + + + + implementation for HTML background color styles. + + + + The supported tags. + + + + + implementation for font color styles. + + + + + + implementation for size properties. + + + + + + implementation for HTML font face styles. + + + + + + implementation for HTML ordered list types. + + + + + + implementation for HTML direction styles (e.g. right to left direction). + + + + + + implementation for HTML width values. + + + + + + implementation for HTML height values. + + + + + + implementation for HTML horizontal alignment styles. + + + + + + implementation for HTML shade styles. + + + + + + implementation for HTML shade styles. + + + + + + implementation for HTML vertical alignment styles. + + + + Utilities class to get the styles of a node. + + + The path to the default CSS file. + + + + The default + + instance. + + + + Gets the styles of a node. + the node + + a list of + + values + + + + Helper class to analyze the CSS stylesheet, e.g. for presence of some constructs + + + Helper method to check if non-page(s) target-counter(s) is present anywhere in the CSS. + + Helper method to check if non-page(s) target-counter(s) is present anywhere in the CSS. + If presence is detected, it may require additional treatment + + CSS stylesheet to analyze + + true in case any non-page(s) target-counter(s) are present in CSS declarations, + or false otherwise + + + + Helper method to check if counter(pages) or counters(pages) is present anywhere in the CSS. + + Helper method to check if counter(pages) or counters(pages) is present anywhere in the CSS. + If the presence is detected, it may require additional treatment + + CSS stylesheet to analyze + + true in case any "pages" counters are present in CSS declarations, + or false otherwise + + + + Runtime exception in case a CSS applier can't be initialized. + + + The message template in case reflection failed. + + + + Creates a new + + instance. + + the message + the class name of the CSS applier + the key + + + Runtime exception that gets thrown if something goes wrong in the HTML to PDF conversion. + + + Message in case one tries to write to a PDF document that isn't in writing mode. + + + Message in case the font provider doesn't know about any fonts. + + + The Constant UnsupportedEncodingException. + + + + Creates a new + + instance. + + the message + + + Runtime exception that gets thrown if a tag worker can't be initialized. + + + Template for the error message in case a tag worker couldn't be instantiated. + + + + Creates a + + instance. + + the message + the class names + the tag + + + + Creates a + + instance. + + the message + the class names + the tag + the cause + + + The HtmlConverter is the class you will use most when converting HTML to PDF. + + The HtmlConverter is the class you will use most when converting HTML to PDF. + It contains a series of static methods that accept HTML as a + + , + + , or + + , and convert it to PDF in the + form of an + + , + + , or a series of + iText elements. It's also possible to write to a + + or + + instance. + + + + Instantiates a new HtmlConverter instance. + + + + Converts a + + containing HTML to an + + containing PDF. + + + the html in the form of a + + + + the PDF as an + + + + + + Converts a + + containing HTML to an + + containing PDF, using specific + . + + + the html in the form of a + + + + the PDF as an + + + + a + + instance + + + + + Converts a + + containing HTML to PDF by writing PDF content + to a + + instance. + + + the html in the form of a + + + + the + + instance + + + + + Converts a + + containing HTML to PDF by writing PDF content + to a + + instance, using specific + . + + + the html in the form of a + + + + the + + instance + + + a + + instance + + + + + Converts a + + containing HTML to objects that + will be added to a + + , using specific + . + + + the html in the form of a + + + + the + + instance + + + a + + instance + + + + + Converts HTML stored in a + + to a PDF + . + + + the + + containing the source HTML + + + the + + containing the resulting PDF + + + + + Converts HTML stored in a + + to a PDF + + , + using specific + . + + + the + + containing the source HTML + + + the + + containing the resulting PDF + + + a + + instance + + + + + Converts HTML obtained from an + + to a PDF written to + an + . + + + the + + with the source HTML + + + the + + for the resulting PDF + + + + + Converts HTML obtained from an + + to a PDF written to + an + . + + + the + + with the source HTML + + + the + + for the resulting PDF + + + a + + instance + + + + + Converts HTML obtained from an + + to objects that + will be added to a + . + + + the + + with the source HTML + + + the + + instance + + + + + Converts HTML obtained from an + + to content that + will be written to a + . + + + the + + with the source HTML + + + the + + containing the resulting PDF + + + + + Converts HTML obtained from an + + to content that + will be written to a + + , using specific + . + + + the + + with the source HTML + + + the + + containing the resulting PDF + + + a + + instance + + + + + Converts HTML obtained from an + + to objects that + will be added to a + + , using specific + . + + + the + + with the source HTML + + + the + + instance + + + a + + instance + + + + + Converts a + + containing HTML to content that + will be written to a + + , returning a + + instance. + + + the html in the form of a + + + + the + + containing the resulting PDF + + + a + + instance + + + + + Converts HTML obtained from an + + to content that + will be written to a + + , returning a + + instance. + + + the + + with the source HTML + + + the + + containing the resulting PDF + + + a + + instance + + + + + Converts a + + containing HTML to content that + will be written to a + + , using specific + + , returning a + + instance. + + + the html in the form of a + + + the pdf writer + + a + + instance + + + a + + instance + + + + + Converts HTML obtained from an + + to content that + will be written to a + + , using specific + + , returning a + + instance. + + the html stream + the pdf writer + + a + + instance + + + a + + instance + + + + + Converts a + + containing HTML to objects that + will be added to a + + , using specific + + , + returning a + + instance. + + + the html in the form of a + + + + the + + instance + + + a + + instance + + + a + + instance + + + + + Converts HTML obtained from an + + to objects that + will be added to a + + , using specific + + , + returning a + + instance. + + + the + + with the source HTML + + + the + + instance + + + a + + instance + + + a + + instance + + + + + Converts a + + containing HTML to a + + of + iText objects ( + + instances). + + + the html in the form of a + + + a list of iText building blocks + + + + Converts HTML obtained from an + + to a + + of + iText objects ( + + instances). + + + the + + with the source HTML + + a list of iText building blocks + + + + Converts a + + containing HTML to a + + of + iText objects ( + + instances), using specific + . + + + the html in the form of a + + + + a + + instance + + a list of iText building blocks + + + + Converts HTML obtained from an + + to a + + of + iText objects ( + + instances), using specific + . + + + the + + with the source HTML + + + a + + instance + + a list of iText building blocks + + + Class that bundles a series of attribute constants. + + + + Creates a new + + instance. + + + + The Constant ALIGN. + + + The Constant ALT. + + + The Constant APPLICATION_NAME. + + + The Constant AUTHOR. + + + The Constant BGCOLOR. + + + The Constant BORDER. + + + The Constant CLASS. + + + The Constant CLASS. + + + The Constant COLOR. + + + The Constant COLS. + + + The Constant COLS. + + + The Constant COLS. + + + The Constant COLSPAN. + + + The Constant CONTENT. + + + The Constant DATA + + + The Constant DESCRIPTION. + + + The Constant DIR. + + + The Constant FACE. + + + The Constant HEIGHT. + + + The Constant HREF. + + + The Constant HSPACE. + + + The Constant ID. + + + The Constant KEYWORDS. + + + The Constant LABEL. + + + The Constant LANG. + + + The Constant MEDIA. + + + The Constant MULTIPLE. + + + The Constant NAME. + + + The Constant NOSHADE. + + + The Constant NOWRAP. + + + The Constant NUMBER. + + + The Constant ROWS. + + + The Constant ROWS. + + + The Constant ROWS. + + + The Constant ROWSPAN. + + + The Constant SCOPE. + + + The Constant SELECTED. + + + The Constant SIZE. + + + The Constant SPAN. + + + The Constant SRC. + + + The Constant STYLE. + + + The Constant TYPE. + + + The Constant VALIGN. + + + The Constant VALUE. + + + The Constant VSPACE. + + + The Constant WIDTH. + + + The Constant TITLE. + + + The Constant _1. + + + The Constant A. + + + The Constant a. + + + The Constant BOTTOM. + + + The Constant BUTTON. + + + The Constant CENTER. + + + The Constant CHECKBOX. + + + The Constant CHECKED. + + + The Constant DATE. + + + The Constant DATETIME. + + + The Constant DATETIME_LOCAL. + + + The Constant EMAIL. + + + The Constant FILE. + + + The Constant HIDDEN. + + + The Constant I. + + + The Constant i. + + + The Constant IMAGE. + + + The Constant LEFT. + + + The Constant LTR. + + + The Constant MIDDLE. + + + The Constant MONTH. + + + The Constant PASSWORD. + + + The Constant PLACEHOLDER. + + + The Constant RADIO. + + + The Constant RANGE. + + + The Constant RESET. + + + The Constant RIGHT. + + + The Constant RTL. + + + The Constant SEARCH. + + + The Constant START + + + The Constant SUBMIT. + + + The Constant TEL. + + + The Constant TEXT. + + + The Constant TIME. + + + The Constant TOP. + + + The Constant URL + + + The Constant WEEK + + + The Constant INPUT_TYPE_VALUES. + + + Utilities class with HTML-related functionality. + + + The Constant DISC_SYMBOL. + + + The Constant CIRCLE_SYMBOL. + + + The Constant SQUARE_SYMBOL. + + + Symbols which are used to write numbers in Latin. + + + Symbols which are used to write numbers in Greek. + + + Symbols which are used to write numbers in Roman. + + + Symbols which are used to write numbers in Georgian. + + + Symbols which are used to write numbers in Armenian. + + + Symbols which are used to write numbers by default. + + + The Constant MAX_ROMAN_NUMBER. + + + + Creates a new + + instance. + + + + Converts number according to given glyph style. + style of the glyphs + number to be converted + converted number + + + Gets a string which contains all glyphs which can be used in number according to given glyph style. + + style of the glyphs + string of all number glyphs + + + Gets enum representation of given digits glyph style. + style of the glyphs + + + + equivalent of given glyph style + + + + Class that bundles a series of tag constants. + + + + Creates a new + + instance. + + + + The Constant A. + + + The Constant ABBR. + + + The Constant ADDRESS. + + + The Constant ARTICLE. + + + The Constant ASIDE. + + + The Constant B. + + + The Constant BDI. + + + The Constant BDO. + + + The Constant BIG. + + + The Constant BLOCKQUOTE. + + + The Constant BODY. + + + The Constant BR. + + + The Constant BUTTON. + + + The Constant CAPTION. + + + The Constant CENTER. + + + The Constant CITE. + + + The Constant CODE. + + + The Constant COL. + + + The Constant COLGROUP. + + + The Constant DD. + + + The Constant DEL. + + + The Constant DFN. + + + The Constant DL. + + + The Constant DT. + + + The Constant DIV. + + + The Constant EM. + + + The Constant FIELDSET. + + + The Constant FIGCAPTION. + + + The Constant FIGURE. + + + The Constant FONT. + + + The Constant FOOTER. + + + The Constant FORM. + + + The Constant H1. + + + The Constant H2. + + + The Constant H3. + + + The Constant H4. + + + The Constant H5. + + + The Constant H6. + + + The Constant HR. + + + The Constant HEAD. + + + The Constant HEADER. + + + The Constant HTML. + + + The Constant I. + + + The Constant IMG. + + + The Constant INPUT. + + + The Constant INS. + + + The Constant KBD. + + + The Constant LABEL. + + + The Constant LEGEND. + + + The Constant LI. + + + The Constant LINK. + + + The Constant MAIN. + + + The Constant MARK. + + + The Constant MARQUEE. + + + The Constant META. + + + The Constant NAV. + + + The Constant OBJECT + + + The Constant OL. + + + The Constant OPTION. + + + The Constant OPTION. + + + The Constant P. + + + The Constant PRE. + + + The Constant Q. + + + The Constant S. + + + The Constant SVG. + + + The Constant SAMP. + + + The Constant SCRIPT. + + + The Constant SECTION. + + + The Constant SELECT. + + + The Constant SMALL. + + + The Constant SPAN. + + + The Constant STRIKE. + + + The Constant STRONG. + + + The Constant STYLE. + + + The Constant SUB. + + + The Constant SUP. + + + The Constant TABLE. + + + The Constant TBODY. + + + The Constant TEXTAREA. + + + The Constant TD. + + + The Constant TFOOT. + + + The Constant TH. + + + The Constant THEAD. + + + The Constant TIME. + + + The Constant TITLE. + + + The Constant TR. + + + The Constant TT. + + + The Constant U. + + + The Constant UL. + + + The Constant VAR. + + + Class that bundles all the error message templates as constants. + + + The Constant CANNOT_RESOLVE_TARGET_COUNTER_VALUE. + + + The Constant CUSTOM_RENDERER_IS_SET_FOR_HTML_DOCUMENT. + + + The Constant ACROFORM_NOT_SUPPORTED_FOR_SELECT. + + + The Constant CONTENT_PROPERTY_INVALID. + + + The Constant CSS_PROPERTY_IN_PERCENTS_NOT_SUPPORTED. + + + The Constant ERROR_LOADING_FONT. + + + The Constant ERROR_PARSING_CSS_SELECTOR. + + + The Constant ERROR_RESOLVING_PARENT_STYLES. + + + The Constant ERROR_WHILE_LAYOUT_OF_FORM_FIELD. + + + The Constant EXCEEDED_THE_MAXIMUM_NUMBER_OF_RELAYOUTS. + + + The constant FLEX_PROPERTY_IS_NOT_SUPPORTED_YET. + + + The Constant ERROR_WHILE_LAYOUT_OF_FORM_FIELD_WITH_TYPE. + + + The Constant INPUT_FIELD_DOES_NOT_FIT. + + + The Constant INPUT_TYPE_IS_INVALID. + + + The Constant INPUT_TYPE_IS_NOT_SUPPORTED. + + + The Constant INVALID_CSS_PROPERTY_DECLARATION. + + + The Constant INVALID_CSS_PROPERTY_DECLARATION. + + + The Constant MARGIN_VALUE_IN_PERCENT_NOT_SUPPORTED. + + + The Constant NOT_SUPPORTED_LIST_STYLE_TYPE. + + + The Constant NOT_SUPPORTED_TH_SCOPE_TYPE. + + + The Constant NO_CONSUMER_FOUND_FOR_CONTENT. + + + The Constant NO_CSS_APPLIER_FOUND_FOR_TAG. + + + The Constant NO_IPROPERTYCONTAINER_RESULT_FOR_THE_TAG. + + + The Constant NO_WORKER_FOUND_FOR_TAG. + + + The Constant PADDING_VALUE_IN_PERCENT_NOT_SUPPORTED. + + + The Constant PAGE_SIZE_VALUE_IS_INVALID. + + + The Constant PDF_DOCUMENT_NOT_PRESENT. + + + The Constant QUOTES_PROPERTY_INVALID. + + + The Constant TEXT_DECORATION_BLINK_NOT_SUPPORTED. + + + The Constant HSL_COLOR_NOT_SUPPORTED. + + + The Constant UNABLE_TO_PROCESS_EXTERNAL_CSS_FILE. + + + The Constant UNABLE_TO_PROCESS_SVG. + + + The Constant UNABLE_TO_RESOLVE_COUNTER. + + + The Constant UNABLE_TO_RETRIEVE_FONT. + + + The Constant UNABLE_TO_RETRIEVE_IMAGE_WITH_GIVEN_BASE_URI. + + + The Constant UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI. + + + The Constant UNEXPECTED_VALUE_OF_OBJECT_FIT_PROPERTY. + + + The Constant UNKNOWN_MARGIN_BOX_CHILD. + + + The Constant WORKER_UNABLE_TO_PROCESS_IT_S_TEXT_CONTENT. + + + The Constant WORKER_UNABLE_TO_PROCESS_OTHER_WORKER. + + + The Constant ELEMENT_DOES_NOT_FIT_CURRENT_AREA. + + + Class that creates ProcessorContext with IMetaInfo. + + + Crates ProcessorContext instances with IMetaInfo. + + the + + instance with IMetaInfo. + + + a new + + instance with IMetaInfo. + + + + + The default + + for pdfHTML, that, as opposed to + the font provider in iText 7's styled-xml-parser, also includes a + series of fonts that are shipped with the add-on. + + + + The path to the shipped fonts. + + + The file names of the shipped fonts. + + + The logger. + + + + Creates a new + + instance. + + + + + Creates a new + + instance. + + use true if you want to register the standard Type 1 fonts (can't be embedded) + + use true if you want to register the shipped fonts (can be embedded) + use true if you want to register the system fonts (can require quite some resources) + + + + + Creates a new + + instance. + + use true if you want to register the standard Type 1 fonts (can't be embedded) + + use true if you want to register the shipped fonts (can be embedded) + use true if you want to register the system fonts (can require quite some resources) + + default font family + + + Adds the shipped fonts. + + a unicode + + to load characters + + + + This method loads a list of noto fonts from pdfCalligraph (if present in the classpath!) into FontProvider. + + + This method loads a list of noto fonts from pdfCalligraph (if present in the classpath!) into FontProvider. + The list is the following (each font is represented in regular and bold types): NotoSansArabic, NotoSansGurmukhi, + NotoSansOriya, NotoSerifBengali, NotoSerifDevanagari, NotoSerifGujarati, NotoSerifHebrew, NotoSerifKannada, + NotoSerifKhmer, NotoSerifMalayalam, NotoSerifTamil, NotoSerifTelugu, NotoSerifThai. + If it's needed to have a DefaultFontProvider without typography fonts loaded, + create an extension of DefaultFontProvider and override this method so it does nothing and only returns null. + + + a unicode + + that excludes the loaded from pdfCalligraph fonts, + i.e. the unicode range that is to be rendered with any other font contained in this FontProvider + + + + Utilities class that resolves form field names. + + + The default base name of a field: "Field". + + + The separator between a field name and an index. + + + A map containing all the base field names, mapped to the current index. + + + + Creates a new + + instance. + + + + Resolves a proposed field name to a valid field name. + the proposed name + the valid name + + + Resets the map containing all the field names. + + + Normalizes a field name. + the proposed field name + the normalized name + + + Resolves a normalized form name. + the proposed name + the resolved name + + + Utilities class that resolves radio's checked property value. + + + A map containing all the radio group names, mapped to the corresponded checked radio field. + + + + Creates a new + + instance. + + + + Checks the radio field. + the name of the radio group the radio field belongs to + the radio field to be checked + + + + Extends + + to also support SVG images + + + + + Creates a new + + instance. + + + Creates a new + + instance. + If + + is a string that represents an absolute URI with any schema + except "file" - resources url values will be resolved exactly as "new URL(baseUrl, uriString)". Otherwise base URI + will be handled as path in local file system. + + If empty string or relative URI string is passed as base URI, then it will be resolved against current working + directory of this application instance. + + base URI against which all relative resource URIs will be resolved + + + + instance for the current HTML to PDF conversion process + + + + + Creates a new + + instance. + + + Creates a new + + instance. + If + + is a string that represents an absolute URI with any schema + except "file" - resources url values will be resolved exactly as "new URL(baseUrl, uriString)". Otherwise base URI + will be handled as path in local file system. + + If empty string or relative URI string is passed as base URI, then it will be resolved against current working + directory of this application instance. + + base URI against which all relative resource URIs will be resolved + + + + instance for the current HTML to PDF conversion process + + the resource retriever with the help of which data from resources will be retrieved + + + + + Retrieve image as either + + , or + . + + either link to file or base64 encoded stream + PdfXObject on success, otherwise null + + + Utility class for handling operations related to SVG + + + + Creates a new + + instance based on + + which is used to resolve a variety of resources. + + the resource resolver + + + + Create an + Image + layout object tied to the passed + PdfDocument + using the SVG processing result. + + Processing result containing the SVG information + pdf that shall contain the image + image layout object + + + + Create an + + tied to the passed + PdfDocument + using the SVG processing result. + + Processing result containing the SVG information + pdf that shall contain the image + PdfFormXObject instance + + + + Class that allows to map keys (html tags, css attributes) to the + corresponding tag processors (a tag worker or a CSS applier). + + + + The default display key. + + + The actual mapping. + + + + Creates a new + + instance. + + + + Add a new tag to the map. + the key + the class instance that maps to the tag + + + Add a new tag to the map. + the key + the display value + the class instance that maps to the tag + + + Gets the class that maps to a specific tag. + the key + the class that maps to the tag + + + Gets the class that maps to a specific tag. + the key + the display value + the class that maps to the tag + + + Ensure that a mapping for a specific key exists. + the key + the map + + + diff --git a/Bin/itext.io.dll b/Bin/itext.io.dll new file mode 100644 index 000000000..ec6fdc660 Binary files /dev/null and b/Bin/itext.io.dll differ diff --git a/Bin/itext.io.dll.refresh b/Bin/itext.io.dll.refresh new file mode 100644 index 000000000..01a8fcf66 --- /dev/null +++ b/Bin/itext.io.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.io.dll \ No newline at end of file diff --git a/Bin/itext.io.xml b/Bin/itext.io.xml new file mode 100644 index 000000000..932ea02e9 --- /dev/null +++ b/Bin/itext.io.xml @@ -0,0 +1,6917 @@ + + + + itext.io + + + + Came from GIFEncoder initially. + + Came from GIFEncoder initially. + Modified - to allow for output compressed data without the block counts + which breakup the compressed data stream for GIF. + + + + note this also indicates gif format BITFile. + + + destination for output data + GIF LZW requires block counts for output data + + + Bit reading helpers. + + + + Input byte buffer, consist of a ring-buffer and a "slack" region where bytes from the start of + the ring-buffer are copied. + + + + Input stream is finished. + + + Pre-fetched bits. + + + Current bit-reading position in accumulator. + + + Offset of next item in intBuffer. + + + + Advances the Read buffer by 5 bytes to make room for reading next 24 bits. + + + Reads the specified number of bits from Read Buffer. + + + + + Internal buffer used for efficient byte-by-byte reading. + + + Number of decoded but still unused bytes in internal buffer. + + + Next unused byte offset. + + + Decoder state. + + + + + + + + + + + + Unchecked exception used internally. + + + Common context lookup table for all context modes. + + + API for Brotli decompression. + + + Static Huffman code for the code length code lengths. + + + Decodes a number in the range [0..255], by reading 1 - 11 bits. + + + Decodes the next Huffman code from bit-stream. + + + Reads next metablock header. + decoding state + + + Actual decompress implementation. + + + + + Utilities for building Huffman decoding tables. + + + + Maximum possible Huffman table size for an alphabet size of 704, max code length 15 and root + table bits 8. + + + + + + histogram of bit lengths for the remaining symbols, + code length of the next processed symbol. + table width of the next 2nd level table. + + + Builds Huffman lookup table assuming code lengths are in symbol order. + + + Contains a collection of huffman trees with the same alphabet size. + + + The maximal alphabet size in this group. + + + Storage for Huffman lookup tables. + + + + Offsets of distinct lookup tables in + + storage. + + + + Initializes the Huffman tree group. + POJO to be initialised + the maximal alphabet size in this group + number of Huffman codes + + + Decodes Huffman trees from input stream and constructs lookup tables. + target POJO + data source + + + Byte-to-int conversion magic. + + + Translates bytes to ints. + + Translates bytes to ints. + NB: intLen == 4 * byteSize! + NB: intLen should be less or equal to intBuffer length. + + + + + Enumeration of decoding state-machine. + + + Associate input with decoder state. + uninitialized state without associated input + compressed data source + + + Transformations on dictionary words. + + + A set of utility methods. + + + + + + Encodes data in the CCITT G4 FAX format. + + + Creates a new encoder. + the line width + + + Encodes a number of lines. + the data to be encoded + the offset into the data + the size of the data to be encoded + + + Encodes a full image. + the data to encode + the image width + the image height + the encoded image + + + Encodes a number of lines. + the data to be encoded + the number of lines to encode + + + Closes the encoder and returns the encoded data. + the encoded data + + + + Class to read a JBIG2 file at a basic level: understand all the segments, + understand what segments belong to which pages, how many pages there are, + what the width and height of each page is, and global segments if there + are any. + + + Class to read a JBIG2 file at a basic level: understand all the segments, + understand what segments belong to which pages, how many pages there are, + what the width and height of each page is, and global segments if there + are any. Or: the minimum required to be able to take a normal sequential + or random-access organized file, and be able to embed JBIG2 pages as images + in a PDF. + + + + Inner class that holds information about a JBIG2 segment. + + + Inner class that holds information about a JBIG2 page. + + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but I am putting the needed segments in SEQUENTIAL organization. + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but I am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + + True if the bytes represents embedded data, false otherwise + a byte array + + + + Modified from original LZWCompressor to change interface to passing a + buffer of data to be compressed. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF + + + reserved clear code based on code size + + + reserved end of data code based on code size + + + current number bits output for each code + + + limit at which current number of bits code size has to be increased + + + the prefix code which represents the predecessor string to current input point + + + output destination for bit codes + + + general purpose LZW string table + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature + + + destination for compressed data + the initial code size for the LZW compressor + flag indicating that TIFF lzw fudge needs to be applied + + + The data to be compressed to output stream + The offset at which the data starts + The length of the data being compressed + + + + Indicate to compressor that no more data to go so write out + any remaining buffered data. + + + + General purpose LZW String Table. + + General purpose LZW String Table. + Extracted from GIFEncoder by Adam Doppelt + Comments added by Robin Luiten + expandCode added by Robin Luiten + The strLen_ table to give quick access to the lenght of an expanded + code for use by the expandCode method added by Robin. + + + + codesize + Reserved Codes + + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + value of -1 indicates no predecessor [used in initialization] + + the byte [character] to add to the string store which follows + the predecessor string specified the index. + + + 0xFFFF if no space in table left for addition of predecessor + index and byte b. Else return the code allocated for combination index + b. + + + + index to prefix string + the character that follws the index prefix + + b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + + the size of code to be preallocated for the + string store. + + + + + If expanded data doesn't fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. + + + If expanded data doesn't fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to expandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Successive negative return values should be negated and + added together for next skip parameter value with same code. + + buffer to place expanded data into + offset to place expanded data + + the code to expand to the byte array it represents. + PRECONDITION This code must already be in the LZSS + + + is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + + + the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + Writes a PNG image. + + + A list of constants used in class TIFFImage. + + + subfile data descriptor + + + reduced resolution version + + + one page of many + + + transparency mask + + + +kind of data in subfile + + + full resolution image data + + + reduced size image data + + + one page of many + + + image width in pixels + + + image height in pixels + + + bits per channel (sample) + + + data compression technique + + + dump mode + + + CCITT modified Huffman RLE + + + CCITT Group 3 fax encoding + + + CCITT Group 4 fax encoding + + + Lempel-Ziv & Welch + + + !6.0 JPEG + + + %JPEG DCT compression + + + NeXT 2-bit RLE + + + #1 w/ word alignment + + + Macintosh RLE + + + ThunderScan RLE + + + IT8 CT w/padding + + + IT8 Linework RLE + + + IT8 Monochrome picture + + + IT8 Binary line art + + + Pixar companded 10bit LZW + + + Pixar companded 11bit ZIP + + + Deflate compression + + + Deflate compression, as recognized by Adobe + + + Kodak DCS encoding + + + ISO JBIG + + + SGI Log Luminance RLE + + + SGI Log 24-bit packed + + + photometric interpretation + + + min value is white + + + min value is black + + + RGB color model + + + color map indexed + + + $holdout mask + + + !color separations + + + !CCIR 601 + + + !1976 CIE L*a*b + + + CIE Log2(L) + + + CIE Log2(L) (u',v') + + + +thresholding used on data + + + b&w art scan + + + or dithered scan + + + usually floyd-steinberg + + + +dithering matrix width + + + +dithering matrix height + + + data order within a byte + + + most significant -> least + + + least significant -> most + + + name of doc. + name of doc. image is from + + + info about image + + + scanner manufacturer name + + + scanner model name/number + + + offsets to data strips + + + +image orientation + + + row 0 top, col 0 lhs + + + row 0 top, col 0 rhs + + + row 0 bottom, col 0 rhs + + + row 0 bottom, col 0 lhs + + + row 0 lhs, col 0 top + + + row 0 rhs, col 0 top + + + row 0 rhs, col 0 bottom + + + row 0 lhs, col 0 bottom + + + samples per pixel + + + rows per strip of data + + + bytes counts for strips + + + +minimum sample value + + + +maximum sample value + + + pixels/resolution in x + + + pixels/resolution in y + + + storage organization + + + single image plane + + + separate planes of data + + + page name image is from + + + x page offset of image lhs + + + y page offset of image lhs + + + +byte offset to free block + + + +sizes of free blocks + + + $gray scale curve accuracy + + + tenths of a unit + + + hundredths of a unit + + + thousandths of a unit + + + ten-thousandths of a unit + + + hundred-thousandths + + + $gray scale response curve + + + 32 flag bits + + + 2-dimensional coding + + + data not compressed + + + fill to byte boundary + + + 32 flag bits + + + data not compressed + + + fill to byte boundary + + + units of resolutions + + + no meaningful units + + + english + + + metric + + + page numbers of multi-page + + + $color curve accuracy + + + tenths of a unit + + + hundredths of a unit + + + thousandths of a unit + + + ten-thousandths of a unit + + + hundred-thousandths + + + !colorimetry info + + + name and release + + + creation date and time + + + creator of image + + + machine where created + + + prediction scheme w/ LZW + + + no predictor + + + horizontal differencing + + + image white point + + + !primary chromaticities + + + RGB map for pallette image + + + !highlight+shadow info + + + !rows/data tile + + + !cols/data tile + + + !offsets to data tiles + + + !byte counts for tiles + + + lines w/ wrong pixel count + + + regenerated line info + + + no errors detected + + + receiver regenerated lines + + + uncorrected errors exist + + + max consecutive bad lines + + + subimage descriptors + + + !inks in separated image + + + !cyan-magenta-yellow-black + + + !ascii names of inks + + + !number of inks + + + !0% and 100% dot codes + + + !separation target + + + !info about extra samples + + + !unspecified data + + + !associated alpha data + + + !unassociated alpha data + + + !data sample format + + + !unsigned integer data + + + !signed integer data + + + !IEEE floating point data + + + !untyped data + + + !complex signed int + + + !complex ieee floating + + + !variable MinSampleValue + + + !variable MaxSampleValue + + + %JPEG table stream + + + !JPEG processing algorithm + + + !baseline sequential + + + !Huffman coded lossless + + + !pointer to SOI marker + + + !JFIF stream length + + + !restart interval length + + + !lossless proc predictor + + + !lossless point transform + + + !Q matrice offsets + + + !DCT table offsets + + + !AC coefficient offsets + + + !RGB -> YCbCr transform + + + !YCbCr subsampling factors + + + !subsample positioning + + + !as in PostScript Level 2 + + + !as in CCIR 601-1 + + + !colorimetry info + + + image reference points + + + region-xform tack point + + + warp quadrilateral + + + affine transformation mat + + + $use ExtraSamples + + + $use SampleFormat + + + z depth of image + + + z depth/data tile + + + full image size in x + + + full image size in y + + + texture map format + + + s & t wrap modes + + + cotan(fov) for env. + cotan(fov) for env. maps + + + W2S + + + W2C + + + + device serial number + tag 33405 is a private tag registered to Eastman Kodak + + + + tag 33432 is listed in the 6.0 spec w/ unknown ownership + + + IPTC TAG from RichTIFF specifications + + + site name + + + color seq. + color seq. [RGB,CMYK,etc] + + + DDES Header + + + raster scanline padding + + + # of bits in short run + + + # of bits in long run + + + LW colortable + + + BP/BL image color switch + + + BP/BL bg color switch + + + BP/BL image color value + + + BP/BL bg color value + + + MP pixel intensity value + + + HC transparency switch + + + color character. + color character. table + + + Sequence Frame Count + + + + ICC profile data + tag 34750 is a private tag registered to Adobe? + + + + tag 34377 is private tag registered to Adobe for PhotoShop + + + + JBIG options + tag 34750 is a private tag registered to Pixel Magic + + + + encoded Class 2 ses. + encoded Class 2 ses. parms + + + received SubAddr string + + + receive time (secs) + + + Sample value to Nits + + + + unknown use + tag 34929 is a private tag registered to FedEx + + + + + hue shift correction data + tag 65535 is an undefined tag used by Eastman Kodak + + + + + A class representing an Image File Directory (IFD) from a TIFF 6.0 + stream. + + + A class representing an Image File Directory (IFD) from a TIFF 6.0 + stream. The TIFF file format is described in more detail in the + comments for the TIFFDescriptor class. +
    + A TIFF IFD consists of a set of TIFFField tags. Methods are + provided to query the set of tags and to obtain the raw field + array. In addition, convenience methods are provided for acquiring + the values of tags that contain a single value that fits into a + byte, int, long, float, or double. +
    + Every TIFF file is made up of one or more public IFDs that are + joined in a linked list, rooted in the file header. A file may + also contain so-called private IFDs that are referenced from + tag data and do not appear in the main list. +
    + This class is not a committed part of the JAI API. It may + be removed or changed in future releases of JAI. +
    + +
    + + A boolean storing the endianness of the stream. + + + The number of entries in the IFD. + + + An array of TIFFFields. + + + A Hashtable indexing the fields by tag number. + + + The offset of this IFD. + + + The offset of the next IFD. + + + The default constructor. + + + Constructs a TIFFDirectory from a SeekableStream. + + Constructs a TIFFDirectory from a SeekableStream. + The directory parameter specifies which directory to read from + the linked list present in the stream; directory 0 is normally + read but it is possible to store multiple images in a single + TIFF file by maintaining multiple directories. + + a SeekableStream to read from. + the index of the directory to read. + + + Constructs a TIFFDirectory by reading a SeekableStream. + + Constructs a TIFFDirectory by reading a SeekableStream. + The ifd_offset parameter specifies the stream offset from which + to begin reading; this mechanism is sometimes used to store + private IFDs within a TIFF file that are not part of the normal + sequence of IFDs. + + a SeekableStream to read from. + the long byte offset of the directory. + + the index of the directory to read beyond the + one at the current stream offset; zero indicates the IFD + at the current offset. + + + + Returns the number of directory entries. + The number of directory entries + + + + Returns the value of a given tag as a TIFFField, + or null if the tag is not present. + + The tag + The value of the given tag as a TIFFField or null + + + Returns true if a tag appears in the directory. + The tag + True if the tag appears in the directory, false otherwise + + + + Returns an ordered array of integers indicating the tags + values. + + an ordered array of integers indicating the tags + + + + Returns an array of TIFFFields containing all the fields + in this directory. + + an array of TIFFFields containing all the fields in this directory + + + + Returns the value of a particular index of a given tag as a + byte. + + + Returns the value of a particular index of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + The tag + The index + the value of a particular index of a given tag as a byte + + + + Returns the value of index 0 of a given tag as a + byte. + + + Returns the value of index 0 of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + The tag + The value of index 0 of the given tag as a byte + + + + Returns the value of a particular index of a given tag as a + long. + + + Returns the value of a particular index of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + The tag + The index + The value of the given index of the given tag as a long + + + + Returns the value of index 0 of a given tag as a + long. + + + Returns the value of index 0 of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + The tag + The value of index 0 of the given tag as a long + + + + Returns the value of a particular index of a given tag as a + float. + + + Returns the value of a particular index of a given tag as a + float. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + The tag + The index + The value of the given index of the given tag as a float + + + Returns the value of index 0 of a given tag as a float. + + Returns the value of index 0 of a given tag as a float. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + The tag + The value of index 0 of the given tag as a float + + + + Returns the value of a particular index of a given tag as a + double. + + + Returns the value of a particular index of a given tag as a + double. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + The tag + The index + The value of the given index of the given tag as a double + + + Returns the value of index 0 of a given tag as a double. + + Returns the value of index 0 of a given tag as a double. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + The tag + The value of index 0 of the given tag as a double + + + + Returns the number of image directories (subimages) stored in a + given TIFF file, represented by a SeekableStream. + + RandomAccessFileOrArray + + The number of image directories (subimages) stored + in a given TIFF file + + + + + Returns a boolean indicating whether the byte order used in the + TIFF file is big-endian (i.e. whether the byte order is from + the most significant to the least significant) + + + + + if the byte order used in the TIFF file is big-endian + + + + Returns the offset of the IFD corresponding to this TIFFDirectory. + the offset of the IFD corresponding to this TIFFDirectory. + + + + Returns the offset of the next IFD after the IFD corresponding to this + TIFFDirectory. + + + the offset of the next IFD after the IFD corresponding to this + TIFFDirectory. + + + + Class that can decode TIFF files. + + + The fill order of the compressed data bytes. + width + height + + + Reverses the bits in the array + the bits to reverse + + + Class that can decompress TIFF files. + + + The logical order of bits within a byte. + + The logical order of bits within a byte. +
    +            1 = MSB-to-LSB
    +            2 = LSB-to-MSB (flipped)
    +            
    +
    +
    + + Uncompressed mode flag: 1 if uncompressed, 0 if not. + + + + EOL padding flag: 1 if fill bits have been added before an EOL such + that the EOL ends on a byte boundary, 0 otherwise. + + + + Coding dimensionality: 1 for 2-dimensional, 0 for 1-dimensional. + + + + Invokes the superclass method and then sets instance variables on + the basis of the metadata set on this decompressor. + + The fill order + The compression algorithm + The T4 options + The T6 options + + + A class representing a field in a TIFF 6.0 Image File Directory. + + A class representing a field in a TIFF 6.0 Image File Directory. + The TIFF file format is described in more detail in the + comments for the TIFFDescriptor class. + A field in a TIFF Image File Directory (IFD). A field is defined + as a sequence of values of identical data type. TIFF 6.0 defines + 12 data types, which are mapped internally onto the Java data types + byte, int, long, float, and double. + This class is not a committed part of the JAI API. It may + be removed or changed in future releases of JAI. + + + + + Flag for 8 bit unsigned integers. + + + Flag for null-terminated ASCII strings. + + + Flag for 16 bit unsigned integers. + + + Flag for 32 bit unsigned integers. + + + Flag for pairs of 32 bit unsigned integers. + + + Flag for 8 bit signed integers. + + + Flag for 8 bit uninterpreted bytes. + + + Flag for 16 bit signed integers. + + + Flag for 32 bit signed integers. + + + Flag for pairs of 32 bit signed integers. + + + Flag for 32 bit IEEE floats. + + + Flag for 64 bit IEEE doubles. + + + The tag number. + + + The tag type. + + + The number of data items present in the field. + + + The field data. + + + The default constructor. + + + Constructs a TIFFField with arbitrary data. + + Constructs a TIFFField with arbitrary data. The data + parameter must be an array of a Java type appropriate for the + type of the TIFF field. Since there is no available 32-bit + unsigned data type, long is used. The mapping between types is + as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TIFF type Java type
    TIFF_BYTE byte
    TIFF_ASCII String
    TIFF_SHORT char
    TIFF_LONG long
    TIFF_RATIONAL long[2]
    TIFF_SBYTE byte
    TIFF_UNDEFINED byte
    TIFF_SSHORT short
    TIFF_SLONG int
    TIFF_SRATIONAL int[2]
    TIFF_FLOAT float
    TIFF_DOUBLE double
    +
    + the tag number + the tag type + the number of data items present in the field + the field data +
    + + Returns the tag number + the tag number, between 0 and 65535. + + + Returns the type of the data stored in the IFD. + + Returns the type of the data stored in the IFD. + For a TIFF6.0 file, the value will equal one of the + TIFF_ constants defined in this class. For future + revisions of TIFF, higher values are possible. + + The type of the data stored in the IFD + + + Returns the number of elements in the IFD. + The number of elements in the IFD + + + Returns the data as an uninterpreted array of bytes. + + Returns the data as an uninterpreted array of bytes. + The type of the field must be one of TIFF_BYTE, TIFF_SBYTE, + or TIFF_UNDEFINED; + For data in TIFF_BYTE format, the application must take + care when promoting the data to longer integral types + to avoid sign extension. + A ClassCastException will be thrown if the field is not + of type TIFF_BYTE, TIFF_SBYTE, or TIFF_UNDEFINED. + + the data as an uninterpreted array of bytes + + + + Returns TIFF_SHORT data as an array of chars (unsigned 16-bit + integers). + + + Returns TIFF_SHORT data as an array of chars (unsigned 16-bit + integers). + A ClassCastException will be thrown if the field is not + of type TIFF_SHORT. + + TIFF_SHORT data as an array of chars + + + + Returns TIFF_SSHORT data as an array of shorts (signed 16-bit + integers). + + + Returns TIFF_SSHORT data as an array of shorts (signed 16-bit + integers). + A ClassCastException will be thrown if the field is not + of type TIFF_SSHORT. + + TIFF_SSHORT data as an array of shorts (signed 16-bit integers). + + + + Returns TIFF_SLONG data as an array of ints (signed 32-bit + integers). + + + Returns TIFF_SLONG data as an array of ints (signed 32-bit + integers). + A ClassCastException will be thrown if the field is not + of type TIFF_SLONG. + + TIFF_SLONG data as an array of ints (signed 32-bit integers). + + + + Returns TIFF_LONG data as an array of longs (signed 64-bit + integers). + + + Returns TIFF_LONG data as an array of longs (signed 64-bit + integers). + A ClassCastException will be thrown if the field is not + of type TIFF_LONG. + + TIFF_LONG data as an array of longs (signed 64-bit integers). + + + Returns TIFF_FLOAT data as an array of floats. + + Returns TIFF_FLOAT data as an array of floats. + A ClassCastException will be thrown if the field is not + of type TIFF_FLOAT. + + TIFF_FLOAT data as an array of floats. + + + Returns TIFF_DOUBLE data as an array of doubles. + + Returns TIFF_DOUBLE data as an array of doubles. + A ClassCastException will be thrown if the field is not + of type TIFF_DOUBLE. + + TIFF_DOUBLE data as an array of doubles. + + + Returns TIFF_ASCII data as an array of strings. + + Returns TIFF_ASCII data as an array of strings. + A ClassCastException will be thrown if the field is not + of type TIFF_ASCII. + + TIFF_ASCII data as an array of strings. + + + Returns TIFF_SRATIONAL data as an array of 2-element arrays of ints. + + Returns TIFF_SRATIONAL data as an array of 2-element arrays of ints. + A ClassCastException will be thrown if the field is not + of type TIFF_SRATIONAL. + + TIFF_SRATIONAL data as an array of 2-element arrays of ints. + + + Returns TIFF_RATIONAL data as an array of 2-element arrays of longs. + + Returns TIFF_RATIONAL data as an array of 2-element arrays of longs. + A ClassCastException will be thrown if the field is not + of type TIFF_RATTIONAL. + + TIFF_RATIONAL data as an array of 2-element arrays of longs. + + + + Returns data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, + TIFF_SSHORT, or TIFF_SLONG format as an int. + + + Returns data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, + TIFF_SSHORT, or TIFF_SLONG format as an int. + TIFF_BYTE and TIFF_UNDEFINED data are treated as unsigned; + that is, no sign extension will take place and the returned + value will be in the range [0, 255]. TIFF_SBYTE data will + be returned in the range [-128, 127]. + A ClassCastException will be thrown if the field is not of + type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, + TIFF_SSHORT, or TIFF_SLONG. + + The index + + data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, TIFF_SSHORT, + or TIFF_SLONG format as an int. + + + + + Returns data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, + TIFF_SSHORT, TIFF_SLONG, or TIFF_LONG format as a long. + + + Returns data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, + TIFF_SSHORT, TIFF_SLONG, or TIFF_LONG format as a long. + TIFF_BYTE and TIFF_UNDEFINED data are treated as unsigned; + that is, no sign extension will take place and the returned + value will be in the range [0, 255]. TIFF_SBYTE data will + be returned in the range [-128, 127]. + A ClassCastException will be thrown if the field is not of + type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, + TIFF_SSHORT, TIFF_SLONG, or TIFF_LONG. + + The index + + data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG, + or TIFF_LONG format as a long. + + + + Returns data in any numerical format as a float. + + Returns data in any numerical format as a float. Data in + TIFF_SRATIONAL or TIFF_RATIONAL format are evaluated by + dividing the numerator into the denominator using + double-precision arithmetic and then truncating to single + precision. Data in TIFF_SLONG, TIFF_LONG, or TIFF_DOUBLE + format may suffer from truncation. + A ClassCastException will be thrown if the field is + of type TIFF_UNDEFINED or TIFF_ASCII. + + The index + data in any numerical format as a float. + + + Returns data in any numerical format as a double. + + Returns data in any numerical format as a double. Data in + TIFF_SRATIONAL or TIFF_RATIONAL format are evaluated by + dividing the numerator into the denominator using + double-precision arithmetic. + A ClassCastException will be thrown if the field is of + type TIFF_UNDEFINED or TIFF_ASCII. + + The index + data in any numerical format as a double. + + + Returns a TIFF_ASCII data item as a String. + + Returns a TIFF_ASCII data item as a String. + A ClassCastException will be thrown if the field is not + of type TIFF_ASCII. + + The index + a TIFF_ASCII data item as a String. + + + + Returns a TIFF_SRATIONAL data item as a two-element array + of ints. + + + Returns a TIFF_SRATIONAL data item as a two-element array + of ints. + A ClassCastException will be thrown if the field is not + of type TIFF_SRATIONAL. + + The index + a TIFF_SRATIONAL data item as a two-element array of ints. + + + + Returns a TIFF_RATIONAL data item as a two-element array + of ints. + + + Returns a TIFF_RATIONAL data item as a two-element array + of ints. + A ClassCastException will be thrown if the field is not + of type TIFF_RATIONAL. + + The index + a TIFF_RATIONAL data item as a two-element array of ints + + + + Compares this TIFFField with another + TIFFField by comparing the tags. + + + Compares this TIFFField with another + TIFFField by comparing the tags. + Note: this class has a natural ordering that is inconsistent + with equals(). + + + + A class for performing LZW decoding. + + + Method to decode LZW compressed data. + The compressed data + Array to return the uncompressed data in + The number of rows the compressed data contains + The decoded data + + + Initialize the string table. + + + Write out the string just uncompressed. + the byte string for uncompressed write out + + + Add a new string to the string table. + + the byte string at the end of which the new string + will be written and which will be added to the string table + + the byte to be written to the end of the old string + + + Add a new string to the string table. + the byte string which will be added to the string table + + + Append newString to the end of oldString. + the byte string at the end of which the new string will be written + the byte to be written to the end of the old string + the byte string which is the sum of the new string and the old string + + + Exports images as TIFF. + + + Inner class class containing information about a field. + + + Inner class containing info about a field. + + + Inner class containing info about a field. + + + Inner class containing info about a field. + + + Inner class containing info about a field. + + + Inner class containing info about a field. + + + Inner class containing info about a field. + + + Inner class containing info about an ASCII field. + + + Class used to represented the International Color Consortium profile + + + Construct an icc profile from the passed byte[], using the passed number of components. + byte[] containing the raw icc profile data + number of components the profile contains + IccProfile constructed from the data + + + Construct an icc profile from the passed byte[], using the passed number of components. + byte[] containing the raw icc profile data + IccProfile constructed from the data + + + Construct an icc profile from the passed random-access file or array. + random-access file or array containing the profile + IccProfile constructed from the data + + + Construct an icc profile from the passed InputStream. + inputstream containing the profile + IccProfile constructed from the data + + + Construct an icc profile from the file found at the passed path + path to the file contaning the profile + IccProfile constructed from the data + + + Get the Color space name of the icc profile found in the data. + byte[] containing the icc profile + String containing the color space of the profile + + + Get the device class of the icc profile found in the data. + byte[] containing the icc profile + String containing the device class of the profile + + + Get the number of color components of the icc profile found in the data. + byte[] containing the icc profile + Number of color components + + + Get the icc color profile data. + byte[] containing the data + + + Get the number of color components in the profile. + number of components + + + This file is a helper class for internal usage only. + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + Exception class for exceptions in io module. + + + Object for more details + + + Creates a new IOException. + the detail message. + + + Creates a new IOException. + + the cause (which is saved for later retrieval by + + method). + + + + Creates a new IOException. + the detail message. + an object for more details. + + + Creates a new IOException. + the detail message. + + the cause (which is saved for later retrieval by + + method). + + + + Creates a new instance of IOException. + the detail message. + + the cause (which is saved for later retrieval by + + method). + + an object for more details. + + + + + + Gets additional params for Exception message. + params for exception message. + + + Sets additional params for Exception message. + additional params. + object itself. + + + Class containing constants to be used in exceptions in the IO module. + + + List items for the linked list that builds the new CID font. + + + Remember the current offset and increment by item's size in bytes. + increment offset by item's size + + + Emit the byte stream for this item. + byte array + + + Fix up cross references to this item (applies only to markers). + + + Set the value of an offset item that was initially unknown. + + Set the value of an offset item that was initially unknown. + It will be fixed up latex by a call to xref on some marker. + + offset to set + + + A range item. + + + An index-offset item for the list. + + An index-offset item for the list. + The size denotes the required size in the CFF. A positive + value means that we need a specific size in bytes (for offset arrays) + and a negative value means that this is a dict item that uses a + variable-size representation. + + + + an unknown offset in a dictionary for the list. + + an unknown offset in a dictionary for the list. + We will fix up the offset later; for now, assume it's large. + + + + Card24 item. + + + Card32 item. + + + A SID or Card16 item. + + + A Card8 item. + + + A dictionary number on the list. + + A dictionary number on the list. + This implementation is inefficient: it doesn't use the variable-length + representation. + + + + An offset-marker item for the list. + + An offset-marker item for the list. + It is used to mark an offset and to set the offset list item. + + + + a utility that creates a range item for an entire index + where the index is + a range item representing the entire index + + + get a single CID font. + + get a single CID font. The PDF architecture (1.4) + supports 16-bit strings only with CID CFF fonts, not + in Type-1 CFF fonts, so we convert the font to CID if + it is in the Type-1 format. + Two other tasks that we need to do are to select + only a single font from the CFF package (this again is + a PDF restriction) and to subset the CharStrings glyph + description. + + name of the font + byte array represents the CID font + + + A random Access File or an array + + + This Class subsets a CFF Type Font. + + This Class subsets a CFF Type Font. The subset is preformed for CID fonts and NON CID fonts. + The Charstring is subsetted for both types. For CID fonts only the FDArray which are used are embedded. + The Lsubroutines of the FDArrays used are subsetted as well. The Subroutine subset supports both Type1 and Type2 + formatting although only tested on Type2 Format. + For Non CID the Lsubroutines are subsetted. On both types the Gsubroutines is subsetted. + A font which was not of CID type is transformed into CID as a part of the subset process. + The CID synthetic creation was written by Sivan Toledo (sivan@math.tau.ac.il) + + Oren Manor (manorore@post.tau.ac.il) and Ygal Blum (blumygal@post.tau.ac.il) + + + The Strings in this array represent Type1/Type2 operator names + + + The Strings in this array represent Type1/Type2 escape operator names + + + Operator codes for unused CharStrings and unused local and global Subrs + + + + A Map containing the glyphs used in the text after being converted + to glyph number by the CMap + + + + The GlyphsUsed keys as an list + + + A Set for keeping the FDArrays being used by the font + + + A Maps array for keeping the subroutines used in each FontDict + + + The SubroutinesUsed Maps as lists + + + A Map for keeping the Global subroutines used in the font + + + The Global SubroutinesUsed Maps as lists + + + A Map for keeping the subroutines used in a non-cid font + + + The SubroutinesUsed Map as list + + + An array of the new Indexes for the local Subr. + An array of the new Indexes for the local Subr. One index for each FontDict + + + The new subroutines index for a non-cid font + + + The new global subroutines index of the font + + + The new CharString of the font + + + The bias for the global subroutines + + + The linked list for generating the new font stream + + + Number of arguments to the stem operators in a subroutine calculated recursively + + + C'tor for CFFFontSubset + - The font file + + + Calculates the length of the charset according to its format + The Charset Offset + Number of glyphs in the font + the length of the Charset + + + Function calculates the number of ranges in the Charset + The number of glyphs in the font + The format of the Charset + The number of ranges in the Charset data structure + + + Read the FDSelect of the font and compute the array and its length + The index of the font being processed + + + Function reads the FDSelect and builds the FDArrayUsed Map According to the glyphs used + the Number of font being processed + + + Read the FDArray count, offsize and Offset array + the Number of font being processed + + + + The Process function extracts one font out of the CFF file and returns a + subset version of the original. + + - The name of the font to be taken out of the CFF + The new font stream + + + + The Process function extracts one font out of the CFF file and returns a + subset version of the original with the first name. + + The new font stream + + + + Function calcs bias according to the CharString type and the count + of the subrs + + The offset to the relevant subrs index + the font + The calculated Bias + + + Function uses BuildNewIndex to create the new index of the subset charstrings. + the font + + + Function builds the new local and global subsrs indices. + + Function builds the new local and global subsrs indices. IF CID then All of + the FD Array lsubrs will be subsetted. + + the font + + + + The function finds for the FD array processed the local subr offset and its + offset array. + + the font + The FDARRAY processed + + + Function uses ReadAsubr on the glyph used to build the LSubr and Gsubr Map. + + Function uses ReadAsubr on the glyph used to build the LSubr and Gsubr Map. + The Map (of the lsubr only) is then scanned recursively for Lsubr and Gsubrs + calls. + + the font + FD array processed. 0 indicates function was called by non CID font + the offset to the subr index to calc the bias + the offset array of the subr index + Map of the subrs used + list of the subrs used + + + + Function scans the Glsubr used list to find recursive calls + to Gsubrs and adds to Map and list + + the font + + + The function reads a subrs (glyph info) between begin and end. + + The function reads a subrs (glyph info) between begin and end. + Adds calls to a Lsubr to the hSubr and lSubrs. + Adds calls to a Gsubr to the hGSubr and lGSubrs. + + the start point of the subr + the end point of the subr + the bias of the Global Subrs + the bias of the Local Subrs + the subroutines used as set + the subroutines used as list + the offsets array of the subroutines + + + + Function Checks how the current operator effects the run time stack after being run + An operator may increase or decrease the stack size + + + + Function checks the key and return the change to the stack after the operator + The change in the stack. 2-> flush the stack + + + Empty the Type2 Stack + + + Pop one element from the stack + + + Add an item to the stack + + + The function reads the next command after the file pointer is set + + + The function reads the subroutine and returns the number of the hint in it. + + The function reads the subroutine and returns the number of the hint in it. + If a call to another subroutine is found the function calls recursively. + + the start point of the subr + the end point of the subr + the bias of the Local Subrs + the bias of the Global Subrs + The Offsets array of the subroutines + The number of hints in the subroutine read. + + + Function builds the new offset array, object array and assembles the index. + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + + the offset array of the original index + the Map of the used objects + the operator inserted into the data stream for unused entries + the new index subset version + + + Function builds the new offset array, object array and assembles the index. + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + + the offset array of the original index + the operator inserted into the data stream for unused entries + the new index subset version + + + + Function creates the new index, inserting the count,offsetsize,offset array + and object array. + + the subsetted offset array + the subsetted object array + the new index created + + + The function builds the new output stream according to the subset process + the font + the subsetted font stream + + + Function Copies the header from the original fileto the output list + + + Function Build the header of an index + the count field of the index + the offsize field of the index + the first offset of the index + + + Function adds the keys into the TopDict + OffsetItem for the FDArray + OffsetItem for the FDSelect + OffsetItem for the CharSet + OffsetItem for the CharString + + + + Function takes the original string item and adds the new strings + to accommodate the CID rules + + the font + + + Function creates new FDSelect for non-CID fonts. + + Function creates new FDSelect for non-CID fonts. + The FDSelect built uses a single range for all glyphs + + OffsetItem for the FDSelect + the number of glyphs in the font + + + Function creates new CharSet for non-CID fonts. + + Function creates new CharSet for non-CID fonts. + The CharSet built uses a single range for all glyphs + + OffsetItem for the CharSet + the number of glyphs in the font + + + Function creates new FDArray for non-CID fonts. + + Function creates new FDArray for non-CID fonts. + The FDArray built has only the "Private" operator that points to the font's + original private dict + + OffsetItem for the FDArray + OffsetItem for the Private Dict + the font + + + Function reconstructs the FDArray, PrivateDict and LSubr for CID fonts + the font + + + Function subsets the FDArray and builds the new one with new offsets + The font + OffsetItem Array (one for each FDArray) + + + Function Adds the new private dicts (only for the FDs used) to the list + the font + OffsetItem array one element for each private + IndexBaseItem array one element for each private + OffsetItem array one element for each private + + + Function Adds the new LSubrs dicts (only for the FDs used) to the list + The index of the font + The IndexBaseItem array for the linked list + OffsetItem array for the linked list + + + + Calculates how many byte it took to write the offset for the subrs in a specific + private dict. + + The Offset for the private dict + The size of the private dict + The size of the offset of the subrs in the private dict + + + Function computes the size of an index + The offset for the computed index + The size of the index + + + + The function creates a private dict for a font that was not CID + All the keys are copied as is except for the subrs key + + the font + The OffsetItem for the subrs of the private + + + + the function marks the beginning of the subrs index and adds the subsetted subrs + index to the output list. + + the font + IndexBaseItem for the private that's referencing to the subrs + OffsetItem for the subrs + + + Returns the CID to which specified GID is mapped. + glyph identifier + CID value + + + Returns the CID to which specified GID is mapped. + index of font for which cid-gid mapping is to be identified + glyph identifier + CID value + + + Creates glyph-to-character id array. + index of font for which charsets data is to be parsed + number of glyphs in the font + the offset to charsets data + + + Checks if its a valid CJKFont font. + the font name. + the encoding. + + + + if it is CJKFont. + + + + CMap name. + + + CMap name. + CMap to convert Unicode value to CID. + + + + Checks whether the + + was built with corresponding cmap name. + + a CMAP + true, if the CMapEncoding was built with the cmap. Otherwise false. + + + psoares + + + psoares + + + Decode byte sequence. + byteCodeBytes + number of bytes to skip before starting to return chars from the sequence + number of bytes to process + string that contains decoded representation of the given sequence + + + psoares + + + + Returns a list containing sequential pairs of code space beginning and endings: + (begincodespacerange1, endcodespacerange1, begincodespacerange2, endcodespacerange1, ...) + + + list of + byte[] + that contain code space ranges + + + + psoares + + + Commands have this type. + + + Holds value of property tokeniser. + + + Creates a new instance of PdfContentParser + the tokeniser with the content + + + Parses a single command from the content. + + Parses a single command from the content. Each command is output as an array of arguments + having the command itself as the last element. The returned array will be empty if the + end of content was reached. + + + an + ArrayList + to use. It will be cleared before using. + + + + Reads a dictionary. + + Reads a dictionary. The tokeniser must be positioned past the + "<<" + token. + + the dictionary + + + Reads an array. + Reads an array. The tokeniser must be positioned past the "[" token. + an array + + + Reads a pdf object. + the pdf object + + + Reads the next token skipping over the comments. + + + + if a token was read, + + if the end of content was reached. + + + + Gets an hex string in the format "<HHHH>". + the number + the hex string + + + psoares + + + psoares + + + + Return String representation of + value + field. + + + + This class represents a CMap file. + Ben Litchfield (ben@benlitchfield.com) + + + Creates a new instance of CMap. + + + This will tell if this cmap has any two byte mappings. + true If there are any two byte mappings, false otherwise. + + + This will perform a lookup into the map. + The code used to lookup. + The offset into the byte array. + The length of the data we are getting. + The string that matches the lookup. + + + psoares + + + psoares + + + Font descriptor flags + + + Represents Open Type head.macStyle bits. + + Represents Open Type head.macStyle bits. + + https://www.microsoft.com/typography/otspec/head.htm + + + + Convert from Open Type font width class notation. + + Convert from Open Type font width class notation. + + https://www.microsoft.com/typography/otspec/os2.htm#wdc + + Open Type font width. + + one of the + + constants. + + + + Undefined font style. + + + Normal font style. + + + Bold font style. + + + Italic font style. + + + Bold-Italic font style. + + + + Class containing families for + . + + + Class containing families for + . + This class was made for com.itextpdf.io.font.FontRegisterProvider. + + + + + Font family for + + , + + , + + and + . + + + + + Font family for + + , + + , + + and + . + + + + + Font family for + . + + + + + Font family for + . + + + + + Font family for + + , + + , + + and + . + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + The code pages possible for a True Type font. + + + Gets code page description based on ulCodePageRange bit settings (OS/2 table). + + Gets code page description based on ulCodePageRange bit settings (OS/2 table). + See https://www.microsoft.com/typography/unicode/ulcp.htm for more details. + + index from ulCodePageRange bit settings (OS/2 table). From 0 to 63. + code bage description. + + + + Checks if the font with the given name and encoding is one + of the predefined CID fonts. + + the font name. + + + + if it is CJKFont. + + + + Finds a CJK font family which is compatible to the given CMap. + a name of the CMap for which compatible font is searched. + a CJK font name if there's known compatible font for the given cmap name, or null otherwise. + + + + Finds all CMap names that belong to the same registry to which a given + font belongs. + + a name of the font for which CMap's are searched. + a set of CMap names corresponding to the given font. + + + Parses CMap with a given name producing it in a form of cid to unicode mapping. + a CMap name. It is expected that CMap identified by this name defines unicode to cid mapping. + + an object for convenient mapping from cid to unicode. If no CMap was found for provided name an exception is thrown. + + + + + Clears the cache by removing fonts that were added via + . + + + Clears the cache by removing fonts that were added via + . + + Be aware that in multithreading environment this method call will affect the result of + . + This in its turn affects creation of fonts via factories when + cached + argument is set to true (which is by default). + + + + A not defined character in a custom PDF encoding. + + + Base font encoding. + + + + + if the font must use its built in encoding. + + + + if the font must use its built in encoding. In that case + the + encoding + is only used to map a char to the position inside the font, not to the expected char name. + + + + Mapping map from unicode to simple code according to the encoding. + + + Encoding names. + + + Encodings unicode differences + + + This encoding will base on font encoding (FontSpecific encoding in Type 1 terminology) + created font specific encoding + + + Gets unicode value for corresponding font's char code. + font's char code + -1, if the char code unsupported or valid unicode. + + + Sets a new value in the differences array. + + Sets a new value in the differences array. + See + . + + position to replace + new difference value + + + + Converts a + String + to a + byte + array according to the encoding. + + + Converts a + String + to a + byte + array according to the encoding. + String could contain a unicode symbols or font specific codes. + + + the + String + to be converted. + + + an array of + byte + representing the conversion according to the encoding + + + + + Converts a unicode symbol or font specific code + to + byte + according to the encoding. + + a unicode symbol or FontSpecif code to be converted. + + a + byte + representing the conversion according to the encoding + + + + + Check whether a unicode symbol or font specific code can be converted + to + byte + according to the encoding. + + a unicode symbol or font specific code to be checked. + + + + if + ch + could be encoded. + + + + + Check whether a + byte + code can be converted + to unicode symbol according to the encoding. + + a byte code to be checked. + + + + if + + could be decoded. + + + + + Checks whether the + + was built with corresponding encoding. + + an encoding + true, if the FontEncoding was built with the encoding. Otherwise false. + + + Normalize the encoding names. + + Normalize the encoding names. "winansi" is changed to "Cp1252" and + "macroman" is changed to "MacRoman". + + the encoding to be normalized + the normalized encoding + + + Gets typo (a.k.a. sTypo or OS/2) vertical metric corresponding to ascender. + + Gets typo (a.k.a. sTypo or OS/2) vertical metric corresponding to ascender. + + Typo vertical metrics are the primary source for iText ascender/descender calculations. + + typo ascender value in normalized 1000-units + + + Gets typo (a.k.a. sTypo or OS/2) vertical metric corresponding to descender. + + Gets typo (a.k.a. sTypo or OS/2) vertical metric corresponding to descender. + + Typo vertical metrics are the primary source for iText ascender/descender calculations. + + typo descender value in normalized 1000-units + + + Gets the capital letters height. + + Gets the capital letters height. + + This property defines the vertical coordinate of the top of flat capital letters, + measured from the baseline. + + cap height in 1000-units + + + Sets typo (a.k.a. sTypo or OS/2) vertical metric corresponding to ascender. + + Sets typo (a.k.a. sTypo or OS/2) vertical metric corresponding to ascender. + + Typo vertical metrics are the primary source for iText ascender/descender calculations. + + typo ascender value in normalized 1000-units + + + Sets typo (a.k.a. sTypo or OS/2) vertical metric corresponding to descender. + + Sets typo (a.k.a. sTypo or OS/2) vertical metric corresponding to descender. + + Typo vertical metrics are the primary source for iText ascender/descender calculations. + + typo descender value in normalized 1000-units + + + Sets the capital letters height. + + Sets the capital letters height. + + This property defines the vertical coordinate of the top of flat capital letters, + measured from the baseline. + + cap height in 1000-units + + + Extracts the names of the font in all the languages available. + the name id to retrieve in OpenType notation + + not empty + String[][] + if any names exists, otherwise + . + + + + Sets font weight. + + integer form 100 to 900. See + . + + + + Gets font stretch in css notation (font-stretch property). + + One of + + values. + + + + Sets font stretch in css notation (font-stretch property). + + + . + + + + Sets Open Type head.macStyle. + + Sets Open Type head.macStyle. + + + + macStyle flag + + + The font's encoding name. + + The font's encoding name. This encoding is 'StandardEncoding' or 'AdobeStandardEncoding' for a font + that can be totally encoded according to the characters names. For all other names the font is treated as symbolic. + + + + Get glyph's width. + a unicode symbol or FontSpecif code. + Gets width in normalized 1000 units. + + + Get glyph's bbox. + a unicode symbol or FontSpecif code. + Gets bbox in normalized 1000 units. + + + Gets the kerning between two glyphs. + the first unicode value + the second unicode value + the kerning to be applied + + + Gets the kerning between two glyphs. + the first glyph + the second glyph + the kerning to be applied + + + + Checks whether the + + was built with corresponding fontName. + + + Checks whether the + + was built with corresponding fontName. + Default value is false unless overridden. + + a font name or path to a font program + true, if the FontProgram was built with the fontProgram. Otherwise false. + + + Gets the name without the modifiers Bold, Italic or BoldItalic. + the full name of the font + the name without the modifiers Bold, Italic or BoldItalic + + + Sets typo ascender. + + Sets typo ascender. See also + . + + typo ascender value in 1000-units + + + Sets typo descender. + + Sets typo descender. See also + . + + typo descender value in 1000-units + + + Sets the capital letters height. + + Sets the capital letters height. See also + . + + cap height in 1000-units + + + Sets the PostScript italic angle. + + Sets the PostScript italic angle. + + Italic angle in counter-clockwise degrees from the vertical. Zero for upright text, negative for text that leans to the right (forward). + + in counter-clockwise degrees from the vertical + + + Sets font weight. + + integer form 100 to 900. See + . + + + + Sets font width in css notation (font-stretch property) + + + . + + + + Sets a preferred font family name. + a preferred font family name. + + + Sets the PostScript name of the font. + + Sets the PostScript name of the font. + + If full name is null, it will be set as well. + + the PostScript name of the font, shall not be null or empty. + + + Base font descriptor. + + + Provides methods for creating various types of fonts. + + + This is the default value of the cached variable. + + + Creates a new standard Helvetica font program file. + + a + + object with Helvetica font description + + + + Creates a new font program. + + Creates a new font program. This font program can be one of the 14 built in fonts, + a Type1 font referred to by an AFM or PFM file, a TrueType font or + a CJK font from the Adobe Asian Font Pack. + Fonts in TrueType Collections are addressed by index such as "msgothic.ttc,1". + This would get the second font (indexes start at 0), in this case "MS PGothic". + + The fonts are cached and if they already exist they are extracted from the cache, + not parsed again. + + + the name of the font or its location on file + + returns a new + + . This font program may come from the cache + + + + Creates a new font program. + + Creates a new font program. This font program can be one of the 14 built in fonts, + a Type1 font referred to by an AFM or PFM file, a TrueType font or + a CJK font from the Adobe Asian Font Pack. + Fonts in TrueType Collections are addressed by index such as "msgothic.ttc,1". + This would get the second font (indexes start at 0), in this case "MS PGothic". + + The fonts are cached and if they already exist they are extracted from the cache, + not parsed again. + + + the name of the font or its location on file + whether to to cache this font program after it has been loaded + + returns a new + + . This font program may come from the cache + + + + Creates a new font program. + + Creates a new font program. This font program can be one of the 14 built in fonts, + a Type1 font referred to by an AFM or PFM file, a TrueType font or + a CJK font from the Adobe Asian Font Pack. + Fonts in TrueType Collections are addressed by index such as "msgothic.ttc,1". + This would get the second font (indexes start at 0), in this case "MS PGothic". + + The fonts are cached and if they already exist they are extracted from the cache, + not parsed again. + + + the byte contents of the font program + + returns a new + + . This font program may come from the cache + + + + Creates a new font program. + + Creates a new font program. This font program can be one of the 14 built in fonts, + a Type 1 font referred to by an AFM or PFM file, a TrueType font or + a CJK font from the Adobe Asian Font Pack. + Fonts in TrueType Collections are addressed by index such as "msgothic.ttc,1". + This would get the second font (indexes start at 0), in this case "MS PGothic". + + The fonts are cached and if they already exist they are extracted from the cache, + not parsed again. + + + the byte contents of the font program + whether to to cache this font program + + returns a new + + . This font program may come from the cache + + + + Creates a new Type 1 font by the byte contents of the corresponding AFM/PFM and PFB files + the contents of the AFM or PFM metrics file + the contents of the PFB file + + created + + instance + + + + Creates a new Type 1 font by the byte contents of the corresponding AFM/PFM and PFB files + the contents of the AFM or PFM metrics file + the contents of the PFB file + + specifies whether to cache the created + + or not + + + created + + instance + + + + Creates a new Type 1 font by the corresponding AFM/PFM and PFB files + path to the AFM or PFM metrics file + path to the contents of the PFB file + + created + + instance + + + + Creates a new Type 1 font by the corresponding AFM/PFM and PFB files + path to the AFM or PFM metrics file + path to the contents of the PFB file + + specifies whether to cache the created + + or not + + + created + + instance + + + + Creates a new TrueType font program from ttc (TrueType Collection) file. + location of TrueType Collection file (*.ttc) + the index of the font file from the collection to be read + + true if the font comes from the cache or is added to + the cache if new, false if the font is always created new + + + returns a new + + instance. This font may come from the cache but only if cached + is true, otherwise it will always be created new + + + + Creates a new TrueType font program from ttc (TrueType Collection) file bytes. + the content of a TrueType Collection file (*.ttc) + the index of the font file from the collection to be read + + true if the font comes from the cache or is added to + the cache if new, false if the font is always created new + + + returns a new + + instance. This font may come from the cache but only if cached + is true, otherwise it will always be created new + + + + Creates a FontProgram from the font file that has been previously registered. + + either a font alias, if the font file has been registered with an alias, + or just a font name otherwise + + + the style of the font to look for. Possible values are listed in + . + See + + , + + , + + , + + , + + + whether to try to get the font program from cache + + created + + + + + Creates a FontProgram from the font file that has been previously registered. + + either a font alias, if the font file has been registered with an alias, + or just a font name otherwise + + + the style of the font to look for. Possible values are listed in + . + See + + , + + , + + , + + , + + + + created + + + + + Creates a FontProgram from the font file that has been previously registered. + + either a font alias, if the font file has been registered with an alias, + or just a font name otherwise + + + created + + + + + Register a font by giving explicitly the font family and name. + the font family + the font name + the font path + + + Registers a .ttf, .otf, .afm, .pfm, or a .ttc font file. + + Registers a .ttf, .otf, .afm, .pfm, or a .ttc font file. + In case if TrueType Collection (.ttc), an additional parameter may be specified defining the index of the font + to be registered, e.g. "path/to/font/collection.ttc,0". The index is zero-based. + + the path to a font file + + + Register a font file and use an alias for the font contained in it. + the path to a font file + the alias you want to use for the font + + + Register all the fonts in a directory. + the directory + the number of fonts registered + + + Register fonts in some probable directories. + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + + the number of fonts registered + + + Gets a set of registered font names. + a set of registered fonts + + + Gets a set of registered font names. + a set of registered font families + + + Checks if a certain font is registered. + the name of the font that has to be checked. + true if the font is found + + + Clears registered font cache + + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this class first and then create fonts in your code using one of the getFont method + without having to enter a path as parameter. + + + + This is a map of postscriptfontnames of fonts and the path of their font file. + + + This is a map of fontfamilies. + + + Creates new FontRegisterProvider + + + Constructs a Font-object. + the name of the font + the style of this font + the Font constructed based on the parameters + + + Constructs a Font-object. + the name of the font + the style of this font + + true if the font comes from the cache or is added to + the cache if new, false if the font is always created new + + the Font constructed based on the parameters + + + Register a font by giving explicitly the font family and name. + the font family + the font name + the font path + + + Register a font file, either .ttf or .otf, .afm or a font from TrueType Collection. + + Register a font file, either .ttf or .otf, .afm or a font from TrueType Collection. + If a TrueType Collection is registered, an additional index of the font program can be specified + + the path to a ttf- or ttc-file + + + Register a font file and use an alias for the font contained in it. + the path to a font file + the alias you want to use for the font + + + Register all the fonts in a directory. + the directory + the number of fonts registered + + + Register all the fonts in a directory and possibly its subdirectories. + the directory + recursively scan subdirectories if true + the number of fonts registered + + + Register fonts in some probable directories. + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + + the number of fonts registered + + + Gets a set of registered font names. + a set of registered fonts + + + Gets a set of registered font names. + a set of registered font families + + + Checks if a certain font is registered. + the name of the font that has to be checked. + true if the font is found + + + + Classes implementing this interface can create custom encodings or + replace existing ones. + + + Classes implementing this interface can create custom encodings or + replace existing ones. It is used in the context of PdfEncoding. + + Paulo Soares + + + Converts an Unicode string to a byte array according to some encoding. + the Unicode string + + the requested encoding. It's mainly of use if the same class + supports more than one encoding. + + the conversion or null if no conversion is supported + + + Converts an Unicode char to a byte array according to some encoding. + the Unicode char + + the requested encoding. It's mainly of use if the same class + supports more than one encoding. + + the conversion or null if no conversion is supported + + + Converts a byte array to an Unicode string according to some encoding. + the input byte array + + the requested encoding. It's mainly of use if the same class + supports more than one encoding. + + the conversion or null if no conversion is supported + + + The components of table 'head'. + + + The components of table 'hhea'. + + + The components of table 'OS/2'. + + + The italic angle. + + The italic angle. It is usually extracted from the 'post' table or in it's + absence with the code: +
    +            -Math.atan2(hhea.caretSlopeRun, hhea.caretSlopeRise) * 180 / Math.PI
    +            
    +
    +
    + + true if all the glyphs have the same width. + + + The map containing the code information for the table 'cmap', encoding 1.0. + + The map containing the code information for the table 'cmap', encoding 1.0. + The key is the code and the value is an + int[2] + where position 0 + is the glyph number and position 1 is the glyph width normalized to 1000 units. + + + + + The map containing the code information for the table 'cmap', encoding 3.1 in Unicode. + + The map containing the code information for the table 'cmap', encoding 3.1 in Unicode. + The key is the code and the value is an + int[2] + where position 0 + is the glyph number and position 1 is the glyph width normalized to 1000 units. + + + + + The file name. + + + The file in use. + + + The index for the TTC font. + + The index for the TTC font. It is -1 + int + for a TTF file. + + + + The offset from the start of the file to the table directory. + + The offset from the start of the file to the table directory. + It is 0 for TTF and may vary for TTC depending on the chosen font. + + + + The font name. + The font name. This name is usually extracted from the table 'name' with the 'Name ID' 6. + + + All the names of the Names-Table. + + + Indicate, that the font contains 'CFF ' table. + + + Offset to 'CFF ' table. + + + Length of 'CFF ' table. + + + Contains the location of the several tables. + + Contains the location of the several tables. The key is the name of + the table and the value is an int[2] where position 0 + is the offset from the start of the file and position 1 is the length + of the table. + + + + Gets the Postscript font name. + + + + If this font file is using the Compact Font File Format, then this method + will return the raw bytes needed for the font stream. + + + If this font file is using the Compact Font File Format, then this method + will return the raw bytes needed for the font stream. If this method is + ever made public: make sure to add a test if (cff == true). + + a byte array + + + Reads the font data. + if true, all tables will be read, otherwise only 'head', 'name', and 'os/2'. + + + Gets the name from a composed TTC file name. + + Gets the name from a composed TTC file name. + If I have for input "myfont.ttc,2" the return will + be "myfont.ttc". + + the full name + the simple file name + + + Reads the glyphs widths. + + Reads the glyphs widths. The widths are extracted from the table 'hmtx'. + The glyphs are normalized to 1000 units (TrueTypeFont.UNITS_NORMALIZATION). + Depends on + + and + . + + + + Reads the kerning information from the 'kern' table. + + + . + + + + Read the glyf bboxes from 'glyf' table. + + + + + + + Extracts the names of the font in all the languages available. + + + Read horizontal header, table 'hhea'. + + + Read font header, table 'head'. + + + Reads the windows metrics table. + + Reads the windows metrics table. The metrics are extracted from the table 'OS/2'. + Depends on + + property. + + + + Reads the several maps from the table 'cmap'. + + Reads the several maps from the table 'cmap'. The maps of interest are 1.0 for symbolic + fonts and 3.1 for all others. A symbolic font is defined as having the map 3.0. + Depends from + readGlyphWidths(). + + + + + Reads a String from the font file as bytes using the Cp1252 + encoding. + + the length of bytes to read + the String read + + + Reads a Unicode String from the font file. + Reads a Unicode String from the font file. Each character is represented by two bytes. + the length of bytes to read. The String will have length/2 characters. + the String read. + + + Gets a glyph width. + the glyph to get the width of + the width of the glyph in normalized 1000 units (TrueTypeFont.UNITS_NORMALIZATION) + + + The information in the maps of the table 'cmap' is coded in several formats. + + The information in the maps of the table 'cmap' is coded in several formats. + Format 0 is the Apple standard character to glyph index mapping table. + + a HashMap representing this map + + + The information in the maps of the table 'cmap' is coded in several formats. + + The information in the maps of the table 'cmap' is coded in several formats. + Format 4 is the Microsoft standard character to glyph index mapping table. + + a HashMap representing this map + + + The information in the maps of the table 'cmap' is coded in several formats. + + The information in the maps of the table 'cmap' is coded in several formats. + Format 6 is a trimmed table mapping. It is similar to format 0 but can have + less than 256 entries. + + a HashMap representing this map + + + Checks if given glyph line at the given position matches given rule. + glyph line to be checked + rule to be compared with a given line + glyph line position + true if given glyph line at the given position matches given rule + + + Checks if given glyph line at the given position matches given rule. + glyph line to be checked + rule to be compared with a given line + true if given glyph line matches given rule + + + Retrieves the position lookup records. + + Retrieves the position lookup records. Each record specifies a position in the context glyph + sequence and a LookupListIndex to the position lookup that is applied at that position. + + + an array of + . + + + + Gets the length of the context glyph sequence defined by this rule + length of the context + + + Checks if glyph line element matches element from input sequence of the rule. + + Checks if glyph line element matches element from input sequence of the rule. +

    + NOTE: rules do not contain the first element of the input sequence, the first element is defined by rule + position in substitution table. Therefore atIdx shall not be 0. +
    + glyph code id + + index in the rule sequence. Shall be: 0 < atIdx < + + + + + + if glyph matches element + +
    + + Gets the length of the lookahead context glyph sequence defined by this rule + length of the lookahead context + + + Gets the length of the backtrack context glyph sequence defined by this rule + length of the backtrack context + + + Checks if glyph line element matches element from lookahead sequence of the rule. + glyph code id + + index in rule sequence. Shall be: 0 <= atIdx < + + + + + + if glyph matches element from lookahead sequence + + + + Checks if glyph line element matches element from backtrack sequence of the rule. + glyph code id + + index in rule sequence. Shall be: 0 <= atIdx < + + + + + + if glyph matches element from backtrack sequence + + + + Retrieves the substitution lookup records. + + Retrieves the substitution lookup records. Each record specifies a position in the context glyph + sequence and a LookupListIndex to the substitution lookup that is applied at that position. + + + an array of + . + + + + Gets a most preferable context rule that matches the line at current position. + + Gets a most preferable context rule that matches the line at current position. If no matching context rule is + found, it returns null. +

    + NOTE: if matching context rule is found, the GlyphLine.start and GlyphLine.end + will be changed in such way that they will point at start and end of the matching context glyph sequence + inside the glyph line. +
    + a line, which is to be checked if it matches some context. + matching context rule or null, if none was found. +
    + + Gets a set of rules, which start with given glyph id. + id of the first glyph in the sequence + + a list of + + instances. The list will be empty if there are no rules + that start with a given glyph id + + + + Checks if given glyph line matches given rule. + glyph line to be checked + rule to be compared with a given glyph line + + either index which corresponds to the last glyph of the matching context inside the glyph line + if context matches, or -1 if context doesn't match + + + + psoares + + + Palash Ray + + + Construct a non-mark Glyph, retrieving characters from unicode. + code representation of the glyph in the font file + normalized width of the glyph + utf-32 representation of glyph if appears. Correct value is > -1 + + + Construct a non-mark Glyph, using the codepoint of the characters as unicode point. + code representation of the glyph in the font file + normalized width of the glyph + The Unicode text represented by this Glyph. + + + Construct a non-mark Glyph, retrieving characters from unicode. + code representation of the glyph in the font file + normalized width of the glyph + utf-32 representation of glyph if appears. Correct value is > -1 + The normalized bounding box of this Glyph. + + + Construct a non-mark Glyph object with id -1 and characters retrieved from unicode. + normalized width of the glyph + utf-32 representation of glyph if appears. Correct value is > -1 + + + Construct a glyph object form the passed arguments. + code representation of the glyph in the font file + normalized width of the glyph + utf-32 representation of glyph if appears. Correct value is > -1 + + The Unicode text represented by this Glyph. + if null is passed, the unicode value is used to retrieve the chars. + + True if the glyph is a Mark + + + Copy a Glyph. + Glyph to copy + + + Copy a Glyph and assign new placement and advance offsets and a new index delta to base glyph + Glyph to copy + x - placement offset + y - placement offset + x - advance offset + y - advance offset + Index delta to base glyph. If after a glyph there are several anchored glyphs we should know we to find base glyph. + + + + Copy a glyph and assign the copied glyph a new unicode point and characters + glyph to copy + new unicode point + + + Two Glyphs are equal if their unicode characters, code and normalized width are equal. + The object + True if this equals obj cast to Glyph, false otherwise. + + + Gets a Unicode string corresponding to this glyph. + + Gets a Unicode string corresponding to this glyph. In general case it might consist of many characters. + If this glyph does not have a valid unicode ( + + ), then a string consisting of a special + Unicode '\ufffd' character is returned. + + the Unicode string that corresponds to this glyph + + + Gets Unicode char sequence corresponding to this glyph. + + Gets Unicode char sequence corresponding to this glyph. In general case it might consist of many characters. + If this glyph does not have a valid unicode ( + + ), then a special + Unicode '\ufffd' character is returned. + + the Unicode char sequence that corresponds to this glyph + + + Create a new line of Glyphs. + list containing the glyphs + + + Create a new line of Glyphs from a slice of a List of Glyphs. + list of Glyphs to slice + starting index of the slice + terminating index of the slice + + + Create a new line of Glyphs from a slice of a List of Glyphs, and add the actual text. + list of Glyphs to slice + corresponding list containing the actual text the glyphs represent + starting index of the slice + terminating index of the slice + + + Copy a line of Glyphs. + line of Glyphs to copy + + + Copy a slice of a line of Glyphs + line of Glyphs to copy + starting index of the slice + terminating index of the slice + + + Get the unicode string representation of the GlyphLine slice. + starting index of the slice + terminating index of the slice + String containing the unicode representation of the slice. + + + Copy a slice of this Glyphline. + leftmost index of the slice + rightmost index of the slice + new GlyphLine containing the copied slice + + + Add a line to the current one. + + Add a line to the current one. + The glyphs from the start till the end points will be copied. + The same is true for the actual text. + + the line that should be added to the current one + + + Replaces the current content with the other line's content. + the line with the content to be set to the current one + + + Parses an OpenTypeFont file and reads the Glyph Substitution Table. + + Parses an OpenTypeFont file and reads the Glyph Substitution Table. This table governs how two or more Glyphs should be merged + to a single Glyph. This is especially useful for Asian languages like Bangla, Hindi, etc. + + This has been written according to the OPenTypeFont specifications. This may be found here. + + Palash Ray + + + Parses an OpenTypeFont file and reads the Glyph Substitution Table. + + Parses an OpenTypeFont file and reads the Glyph Substitution Table. This table governs how two or more Glyphs should be merged + to a single Glyph. This is especially useful for Asian languages like Bangla, Hindi, etc. + + This has been written according to the OPenTypeFont specifications. This may be found here. + + Palash Ray + + + Lookup Type 1: Single Adjustment Positioning Subtable + + + + Lookup Type 2: + Pair Adjustment Positioning Subtable + + + + + Lookup Type 4: + MarkToBase Attachment Positioning Subtable + + + + + Lookup Type 5: + MarkToLigature Attachment Positioning Subtable + + + + + Lookup Type 6: + MarkToMark Attachment Positioning Subtable + + + + + Lookup Type 7: + Contextual Positioning Subtables + + + + + Lookup Type 8: + Chaining Contextual Positioning Subtable + + + + LookupType 1: Single Substitution Subtable + psoares + + + LookupType 2: Multiple Substitution Subtable + + + LookupType 3: Alternate Substitution Subtable + psoares + + + LookupType 4: Ligature Substitution Subtable + psoares + + + The key is the first character. + + The key is the first character. The first element in the int array is the + output ligature + + + + LookupType 5: Contextual Substitution Subtable + + + LookupType 6: Chaining Contextual Substitution Subtable + + + Constants corresponding to language tags in the OTF specification. + + Constants corresponding to language tags in the OTF specification. + Extracted from the specification, as published by Microsoft + here. + Note that tags in OTF always consist of exactly 4 bytes. Shorter + identifiers are padded with spaces as necessary. + + Matthias Valvekens + + + Contextual Substitution Subtable: Simple context glyph substitution + + + Contextual Substitution Subtable: Class-based context glyph substitution + + + Contextual Substitution Subtable: Coverage-based context glyph substitution + + + Chaining Contextual Substitution Subtable: Simple Chaining Context Glyph Substitution + + + Chaining Contextual Substitution Subtable: Class-based Chaining Context Glyph Substitution + + + Chaining Contextual Substitution Subtable: Coverage-based Chaining Context Glyph Substitution + + + Chaining Context Positioning Format 1: Simple Glyph Contexts + + + Chained Contexts Positioning Format 2: Class-based Glyph Contexts + + + Chained Contexts Positioning Format 3: Coverage-based Glyph Contexts + + + psoares + + + Palash Ray + + + This is the starting point of the class. + + This is the starting point of the class. A sub-class must call this + method to start getting call backs to the + + method. + + + + The Unicode encoding with horizontal writing. + + + The Unicode encoding with vertical writing. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + This is the encoding to be used to output text in Unicode. + + + This is the encoding to be used to output text for Identity-H/V CMaps. + + + + This is the default encoding to be used for converting Strings into + bytes and vice versa. + + + This is the default encoding to be used for converting Strings into + bytes and vice versa. The default encoding is PDF_DOC_ENCODING. + + + + + Converts a + String + to a + byte + array according + to the font's encoding. + + the encoding + + the + String + to be converted + + + an array of + byte + representing the conversion according to the font's encoding + + + + + Converts a + String + to a + byte + array according + to the font's encoding. + + the encoding + + the + char + to be converted + + + an array of + byte + representing the conversion according to the font's encoding + + + + + Converts a + byte + array to a + String + according + to the some encoding. + + the bytes to convert + the encoding + + the converted + String + + + + + Checks is + + only has PDF_DOC_ENCODING characters. + + + the + String + to test + + + + + if only PDF_DOC_ENCODING characters are present + + + + Adds an extra encoding. + the name of the encoding. The encoding recognition is case insensitive + the conversion class + + + Converts a PFM file into an AFM file. + + + Creates a new instance of Pfm2afm + + + Converts a PFM file into an AFM file. + the PFM file + the AFM file + + + Translate table from 1004 to psstd. + + Translate table from 1004 to psstd. 1004 is an extension of the + Windows translate table used in PM. + + + + Windows character names. + + Windows character names. Give a name to the used locations + for when the all flag is specified. + + + + Use this class for working with true type collection font (*.ttc) + + + + Creates a new + + instance by its bytes. + + the byte contents of the collection + + + + Creates a new + + instance by its file path. + + the path of the collection + + + method return TrueTypeFont by ttc index + the index for the TTC font + TrueTypeFont + + + returns the number of fonts in True Type Collection (file or bytes array) + returns the number of fonts + + + + Indicates if fonts created by the call to + + will be cached or not. + + true if the created fonts will be cached, false otherwise + + + + Sets if fonts created by the call to + + will be cached or not. + + true if the created fonts will be cached, false otherwise + + + The map containing the kerning information. + + The map containing the kerning information. It represents the content of + table 'kern'. The key is an Integer where the top 16 bits + are the glyph number for the first character and the lower 16 bits are the + glyph number for the second character. The value is the amount of kerning in + normalized 1000 units as an Integer. This value is usually negative. + + + + Gets the kerning between two glyphs. + the first glyph + the second glyph + the kerning to be applied + + + The offset from the start of the file to the table directory. + + The offset from the start of the file to the table directory. + It is 0 for TTF and may vary for TTC depending on the chosen font. + + directory Offset + + + + Maps a set of glyph CIDs (as used in PDF file) to corresponding GID values + (as a glyph primary identifier in the font file). + + + Maps a set of glyph CIDs (as used in PDF file) to corresponding GID values + (as a glyph primary identifier in the font file). + This call is only meaningful for fonts that return true for + . + For other types of fonts, GID and CID are always the same, so that call would essentially + return a set of the same values. + + a set of glyph CIDs + a set of glyph ids corresponding to the passed glyph CIDs + + + Gets the code pages supported by the font. + the code pages supported by the font + + + The method will update usedGlyphs with additional range or with all glyphs if there is no subset. + + + The method will update usedGlyphs with additional range or with all glyphs if there is no subset. + This set of used glyphs can be used for building width array and ToUnicode CMAP. + + + a set of integers, which are glyph ids that denote used glyphs. + This set is updated inside of the method if needed. + + subset status + additional subset ranges + + + + Normalizes given ranges by making sure that first values in pairs are lower than second values and merges overlapping + ranges in one. + + + a + + of integer arrays, which are constituted by pairs of ints that denote + each range limits. Each integer array size shall be a multiple of two. + + single merged array consisting of pairs of integers, each of them denoting a range. + + + Subsets a True Type font by removing the unneeded glyphs from the font. + Paulo Soares + + + Contains the location of the several tables. + + Contains the location of the several tables. The key is the name of + the table and the value is an + int[3] + where position 0 + is the checksum, position 1 is the offset from the start of the file + and position 2 is the length of the table. + + + + The file in use. + + + The file name. + + + Creates a new TrueTypeFontSubSet + The offset from the start of the file to the table directory + the file name of the font + the glyphs used + + + Does the actual work of subsetting the font. + the subset font + + + + Reads a + String + from the font file as bytes using the Cp1252 encoding. + + the length of bytes to read + + the + String + read + + + + Represents the section KernPairs in the AFM file. + + Represents the section KernPairs in the AFM file. + Key is uni1 << 32 + uni2. Value is kerning value. + + + + Types of records in a PFB file. + Types of records in a PFB file. ASCII is 1 and BINARY is 2. They have to appear in the PFB file in this sequence. + + + + Checks if the font has any kerning pairs. + + + + if the font has any kerning pairs. + + + + Sets the kerning between two Unicode chars. + the first unicode char. + the second unicode char. + the kerning to apply in normalized 1000 units. + + + + if the kerning was applied, + + otherwise. + + + + Find glyph by glyph name. + Glyph name + Glyph instance if found, otherwise null. + + + Creates a new Type1 font file. + the AFM file if the input is made with a byte array + the PFB file if the input is made with a byte array + the name of one of the 14 built-in fonts or the location of an AFM file. The file must end in '.afm' + + + + Helper class to deal with unsigned primitives in java + + + Accumulates data we may need to reconstruct a single font. + + Accumulates data we may need to reconstruct a single font. One per font + created for a TTC. + + + + Fixed memory block for woff2 out. + + + Output interface for the woff2 decoding. + + Output interface for the woff2 decoding. + Writes to arbitrary offsets are supported to facilitate updating offset + table and checksums after tables are ready. Reading the current size is + supported so a 'loca' table can be built up while writing glyphs. + By default limits size to kDefaultMaxSize. + + + + + Creates instance of + + + url of the image + indicates that the source image does not have a header + + + + Creates instance of + + + contents of the image + indicates that the source image does not have a header + + + True if the bitmap image does not contain a header + + + Process the passed Image data as a BMP image. + + Process the passed Image data as a BMP image. + Image is loaded and all image attributes are initialized and/or updated + + the image to process as a BMP image + + + Gets an instance of an Image from + the to convert + if different from null the transparency pixels are replaced by this color + + RawImage + + + + Gets an instance of an Image from a . + + the to convert + + if different from null the transparency + pixels are replaced by this color + + if true the image is treated as black and white + an object of type ImgRaw + + + + Converts a .NET image to a Native(PNG, JPG, GIF, WMF) image + + + + + + + Load data by URL. + + Load data by URL. url must be not null. + Note, this method doesn't check if data or url is null. + + + + Reads image source and fills GifImage object with parameters (frames, width, height) + GifImage + + + Reads image source and fills GifImage object with parameters (frames, width, height) + GifImage + the last frame of the gif image should be read + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + number of bytes stored in "buffer" + + + Reads next frame image + + + Reads Graphics Control Extension values + + + + Skips variable length blocks up to and including + next zero length block. + + + + a static that is used for attributing a unique id to each image. + + + Is the number of components used to encode colorspace. + + + Gets the number of components used to encode colorspace. + the number of components used to encode colorspace + + + Sets the number of components used to encode colorspace. + the number of components used to encode colorspace + + + Checks if image can be inline + if the image can be inline + + + Load data from URL. + + Load data from URL. url must be not null. + Note, this method doesn't check if data or url is null. + + + + Creates a new serial id. + the new serialId + + + Create an ImageData instance representing the image from the image bytes. + byte representation of the image. + whether to recover from a image error (for TIFF-images) + The created ImageData object. + + + Create an ImageData instance representing the image from the image bytes. + byte representation of the image. + The created ImageData object. + + + Create an ImageData instance representing the image from the file located at the specified url. + location of the image + whether to recover from a image error (for TIFF-images) + The created ImageData object. + + + Create an ImageData instance representing the image from the file located at the specified url. + location of the image + The created ImageData object. + + + Create an ImageData instance representing the image from the specified file. + filename of the file containing the image + whether to recover from a image error (for TIFF-images) + The created ImageData object. + + + Create an ImageData instance representing the image from the specified file. + filename of the file containing the image + The created ImageData object. + + + Create an ImageData instance from the passed parameters. + width of the image in pixels + height of the image in pixels + whether to reverse the bits stored in data (TIFF images). + Type of CCITT encoding + colour space parameters + array containing raw image data + array containing transparency information + created ImageData object. + + + Create an ImageData instance from the passed parameters. + width of the image in pixels + height of the image in pixels + colour space components + bits per colour. + array containing raw image data + array containing transparency information + created ImageData object. + + + Gets an instance of an Image from a java.awt.Image + the java.awt.Image to convert + if different from null the transparency pixels are replaced by this color + RawImage + + + Gets an instance of an Image from a java.awt.Image. + the java.awt.Image to convert + if different from null the transparency pixels are replaced by this color + if true the image is treated as black and white + RawImage + + + Get a bitmap ImageData instance from the specified url. + location of the image. + Whether the image contains a header. + created ImageData + + + Get a bitmap ImageData instance from the provided bytes. + array containing the raw image data + Whether the image contains a header. + created ImageData + + + Return a GifImage object. + Return a GifImage object. This object cannot be added to a document + array containing the raw image data + GifImageData instance. + + + Returns a specified frame of the gif image + url of gif image + number of frame to be returned, 1-based + GifImageData instance. + + + Returns a specified frame of the gif image + byte array of gif image + number of frame to be returned, 1-based + GifImageData instance + + + Returns List of gif image frames + byte array of gif image + array of frame numbers of gif image, 1-based + all frames of gif image + + + Returns List of gif image frames + url of gif image + array of frame numbers of gif image, 1-based + all frames of gif image + + + Returns List of gif image frames + byte array of gif image + all frames of gif image + + + Returns List of gif image frames + url of gif image + all frames of gif image + + + + Create an + + instance from a Jpeg image url + + URL + the created JPEG image + + + Checks if the type of image (based on first 8 bytes) is supported by factory. + + Checks if the type of image (based on first 8 bytes) is supported by factory. +
    + Note: if this method returns + + it doesn't means that + + won't throw exception +
    + image raw bytes + + + + if first eight bytes are recognised by factory as valid image type and + + otherwise + +
    + + Checks if the type of image (based on first 8 bytes) is supported by factory. + + Checks if the type of image (based on first 8 bytes) is supported by factory. +
    + Note: if this method returns + + it doesn't means that + + won't throw exception +
    + image URL + + + + if first eight bytes are recognised by factory as valid image type and + + otherwise + +
    + + Checks if the type of image is supported by factory. + + Checks if the type of image is supported by factory. +
    + Note: if this method returns + + it doesn't means that + + won't throw exception +
    + image type + + + + if image type is supported and + + otherwise + +
    + + Helper class that detects image type by magic bytes + + + Detect image type by magic bytes given the byte array source. + image bytes + + detected image type, see + + . Returns + + if image type is unknown + + + + Detect image type by magic bytes given the source URL. + image URL + + detected image type, see + + . Returns + + if image type is unknown + + + + Detect image type by magic bytes given the input stream. + image stream + + detected image type, see + + . Returns + + if image type is unknown + + + + Gets the number of pages in a JBIG2 image. + a byte array containing a JBIG2 image + the number of pages + + + Gets the number of pages in a JBIG2 image. + + a + RandomAccessFileOrArray + containing a JBIG2 image + + the number of pages + + + + Gets a byte array that can be used as a /JBIG2Globals, + or null if not applicable to the given jbig2. + + an random access file or array + a byte array + + + This method checks if the image is a valid JPEG and processes some parameters. + + + This is a type of marker. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value + + + Marker value + + + Marker value + + + Marker value for Photoshop IRB + + + sequence that is used in all Jpeg files + + + sequence preceding Photoshop resolution data + + + Process the passed Image data as a JPEG image. + + Process the passed Image data as a JPEG image. + Image is loaded and all image attributes are initialized and/or updated. + + the image to process as a JPEG image + + + This method checks if the image is a valid JPEG and processes some parameters. + + + Reads a short from the InputStream. + the InputStream + an int + + + Returns a type of marker. + an int + a type: VALID_MARKER, UNSUPPORTED_MARKER or NOPARAM_MARKER + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + Gets an int from an InputStream. + an InputStream + the value of an int + + + Gets a word from an InputStream. + an InputStream + the value of an int + + + Gets a String from an InputStream. + an InputStream + the value of an int + + + Pure two-dimensional encoding (Group 4) + + + Pure one-dimensional encoding (Group 3, 1-D) + + + Mixed one- and two-dimensional encoding (Group 3, 2-D) + + + + A flag indicating whether 1-bits are to be interpreted as black pixels + and 0-bits as white pixels, + + + + + A flag indicating whether the filter expects extra 0-bits before each + encoded line so that the line begins on a byte boundary. + + + + + A flag indicating whether end-of-line bit patterns are required to be + present in the encoding. + + + + + A flag indicating whether the filter expects the encoded data to be + terminated by an end-of-block pattern, overriding the Rows parameter. + + + A flag indicating whether the filter expects the encoded data to be + terminated by an end-of-block pattern, overriding the Rows parameter. The + use of this flag will set the key /EndOfBlock to false. + + + + Update original image with Raw Image parameters. + to update its parameters with Raw Image parameters. + the exact width of the image + the exact height of the image + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component. Must be 1,2,4 or 8 + the image data + + + Gets the number of pages the TIFF document has. + + a + RandomAccessFileOrArray + containing a TIFF image. + + the number of pages. + + + Gets the number of pages the TIFF document has. + a byte array containing a TIFF image. + the number of pages. + + + Processes the ImageData as a TIFF image. + image to process. + + + Class containing constants to be used in logging. + + + A RandomAccessSource that is based on an underlying byte array + + + + Fill + ByteBuffer + from the end. + + + Fill + ByteBuffer + from the end. + Set byte at + capacity() - size() - 1 + position. + + + + byte. + + + + ByteBuffer. + + + + + Fill + ByteBuffer + from the end. + + + Fill + ByteBuffer + from the end. + Set bytes from + capacity() - size() - b.length + position. + + + + byte. + + + + ByteBuffer. + + + + Constructs a new OffsetRandomAccessSource + the source + + + + + + + + + + + + Does nothing - the underlying source is not closed + + + + A RandomAccessSource that is based on a set of underlying sources, + treating the sources as if they were a contiguous block of data. + + + + The underlying sources (along with some meta data to quickly determine where each source begins and ends) + + + + Cached value to make multiple reads from the same underlying source more efficient + + + Cached size of the underlying channel + + + + Constructs a new + + based on the specified set of sources + + the sources used to build this group + + + For a given offset, return the index of the source that contains the specified offset. + + For a given offset, return the index of the source that contains the specified offset. + This is an optimization feature to help optimize the access of the correct source without having to iterate + through every single source each time. It is safe to always return 0, in which case the full set of sources + will be searched. + Subclasses should override this method if they are able to compute the source index more efficiently + (for example + + takes advantage of fixed size page buffers to compute the index) + + the offset + the index of the input source that contains the specified offset, or 0 if unknown + + + + Returns the SourceEntry that contains the byte at the specified offset + sourceReleased is called as a notification callback so subclasses can take care of cleanup + when the source is no longer the active source + + the offset of the byte to look for + the SourceEntry that contains the byte at the specified offset + + + Called when a given source is no longer the active source. + Called when a given source is no longer the active source. This gives subclasses the abilty to release resources, if appropriate. + + the source that is no longer the active source + + + Called when a given source is about to become the active source. + Called when a given source is about to become the active source. This gives subclasses the abilty to retrieve resources, if appropriate. + + the source that is about to become the active source + + + + + The source that contains the byte at position is retrieved, the correct offset into that source computed, then the value + from that offset in the underlying source is returned. + + + + + + + + + + + +
    + Closes all of the underlying sources. +
    +
    + + Used to track each source, along with useful meta data + + + The underlying source + + + The first byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The last byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The index of this source in the GroupedRandomAccessSource + + + Standard constructor + the index + the source + the offset of the source in the GroupedRandomAccessSource + + + Given an absolute offset (in the GroupedRandomAccessSource coordinates), calculate the effective offset in the underlying source + + the offset in the parent GroupedRandomAccessSource + the effective offset in the underlying source + + + A RandomAccessSource that is wraps another RandomAccessSource but does not propagate close(). + + A RandomAccessSource that is wraps another RandomAccessSource but does not propagate close(). This is useful when + passing a RandomAccessSource to a method that would normally close the source. + + + + The source + + + Constructs a new IndependentRandomAccessSource object + the source + + + + + + + + + + + + Does nothing - the underlying source is not closed + + + Represents an abstract source that bytes can be read from. + + Represents an abstract source that bytes can be read from. This class forms the foundation for all byte input in iText. + Implementations do not keep track of a current 'position', but rather provide absolute get methods. Tracking position + should be handled in classes that use RandomAccessSource internally (via composition). + + + + Gets a byte at the specified position + byte position + the byte, or -1 if EOF is reached + + + Read an array of bytes of specified length from the specified position of source to the buffer applying the offset. + + + Read an array of bytes of specified length from the specified position of source to the buffer applying the offset. + If the number of bytes requested cannot be read, all the possible bytes will be read to the buffer, + and the number of actually read bytes will be returned. + + the position in the RandomAccessSource to read from + output buffer + offset into the output buffer where results will be placed + the number of bytes to read + the number of bytes actually read, or -1 if the file is at EOF + + + Gets the length of the source + the length of this source + + + Closes this source. + Closes this source. The underlying data structure or source (if any) will also be closed + + + Streams are closed automatically. + + + + Creates a PdfTokenizer for the specified + . + + + Creates a PdfTokenizer for the specified + . + The beginning of the file is read to determine the location of the header, and the data source is adjusted + as necessary to account for any junk that occurs in the byte source before the header + + the source + + + Resolve escape symbols or hexadecimal symbols. + + Resolve escape symbols or hexadecimal symbols. + + NOTE Due to PdfReference 1.7 part 3.2.3 String value contain ASCII characters, + so we can convert it directly to byte array. + + string bytes to be decoded + given start index + given end index + + true if given string is hex-encoded, e.g. '<69546578…>'. + False otherwise, e.g. '((iText( some version)…)' + + + byte[] for decrypting or for creating + . + + + + Resolve escape symbols or hexadecimal symbols. + + Resolve escape symbols or hexadecimal symbols. +
    + NOTE Due to PdfReference 1.7 part 3.2.3 String value contain ASCII characters, + so we can convert it directly to byte array. +
    + string bytes to be decoded + + true if given string is hex-encoded, e.g. '<69546578…>'. + False otherwise, e.g. '((iText( some version)…)' + + + byte[] for decrypting or for creating + . + +
    + + Is a certain character a whitespace? Currently checks on the following: '0', '9', '10', '12', '13', '32'. + + + Is a certain character a whitespace? Currently checks on the following: '0', '9', '10', '12', '13', '32'. +
    + The same as calling + isWhiteSpace(ch, true). +
    + int + boolean +
    + + Checks whether a character is a whitespace. + Checks whether a character is a whitespace. Currently checks on the following: '0', '9', '10', '12', '13', '32'. + + int + boolean + boolean + + + Helper method to handle content errors. + + Helper method to handle content errors. Add file position to + PdfRuntimeException. + + message. + error params. + + + + Checks whether + + equals to 'trailer'. + + for check + true, if line is equals to 'trailer', otherwise false + + + Reads data into the provided byte[]. + + Reads data into the provided byte[]. Checks on leading whitespace. + See + isWhiteSpace(int) + or + isWhiteSpace(int, boolean) + for a list of whitespace characters. +
    + The same as calling + readLineSegment(input, true). +
    + + a + + to which the result of reading will be saved + + true, if something was read or if the end of the input stream is not reached +
    + + Reads data into the provided byte[]. + + Reads data into the provided byte[]. Checks on leading whitespace. + See + isWhiteSpace(int) + or + isWhiteSpace(int, boolean) + for a list of whitespace characters. + + + a + + to which the result of reading will be saved + + + boolean to indicate whether '0' is whitespace or not. + If in doubt, use true or overloaded method + readLineSegment(input) + + true, if something was read or if the end of the input stream is not reached + + + Check whether line starts with object declaration. + tokenizer, built by single line. + object number and generation if check is successful, otherwise - null. + + + + A RandomAccessSource that uses a + + as it's source + Note: Unlike most of the RandomAccessSource implementations, this class is not thread safe + + + + The source + + + The length of the underling RAF. + + The length of the underling RAF. Note that the length is cached at construction time to avoid the possibility + of + + s when reading the length. + + + + Creates this object + the source for this RandomAccessSource + + + + + + + + + + + Note: the length is determined when the + + is constructed. + + + + Note: the length is determined when the + + is constructed. If the file length changes + after construction, that change will not be reflected in this call. + + + + Closes the underlying RandomAccessFile + + + Class that is used to unify reading from random access files and arrays. + + + When true the file access is not done through a memory mapped file. + + When true the file access is not done through a memory mapped file. Use it if the file + is too big to be mapped in your address space. + + + + The source that backs this object + + + The physical location in the underlying byte source. + + + the pushed back byte, if any + + + Whether there is a pushed back byte + + + Creates a RandomAccessFileOrArray that wraps the specified byte source. + + Creates a RandomAccessFileOrArray that wraps the specified byte source. The byte source will be closed when + this RandomAccessFileOrArray is closed. + + the byte source to wrap + + + Creates an independent view of this object (with it's own file pointer and push back queue). + + Creates an independent view of this object (with it's own file pointer and push back queue). Closing the new object will not close this object. + Closing this object will have adverse effect on the view. + + the new view + + + Creates the view of the byte source of this object. + + Creates the view of the byte source of this object. Closing the view won't affect this object. + Closing source will have adverse effect on the view. + + the byte source view. + + + Pushes a byte back. + Pushes a byte back. The next get() will return this byte instead of the value from the underlying data source + + the byte to push + + + Reads a single byte + the byte, or -1 if EOF is reached + + + Reads the specified amount of bytes to the buffer applying the offset. + destination buffer + offset at which to start storing characters + maximum number of characters to read + the number of bytes actually read or -1 in case of EOF + + + Reads the bytes to the buffer. + Reads the bytes to the buffer. This method will try to read as many bytes as the buffer can hold. + + the destination buffer + the number of bytes actually read + + + + + + + + + Make an attempt to skip the specified amount of bytes in source. + + Make an attempt to skip the specified amount of bytes in source. + However it may skip less amount of bytes. Possibly zero. + + the number of bytes to skip + the actual number of bytes skipped + + + + + + Closes the underlying source. + + + Gets the total amount of bytes in the source. + source's size. + + + Sets the current position in the source to the specified index. + the position to set + + + Gets the current position of the source considering the pushed byte to the source. + + the index of last read byte in the source in + or the index of last read byte in source - 1 in case byte was pushed. + + + + + + + + + + + + + + + + Reads a signed 16-bit number from this stream in little-endian order. + + Reads a signed 16-bit number from this stream in little-endian order. + The method reads two + bytes from this stream, starting at the current stream pointer. + If the two bytes read, in order, are + b1 + and + b2 + , where each of the two values is + between + 0 + and + 255 + , inclusive, then the + result is equal to: +
    +            (short)((b2 << 8) | b1)
    +            
    + + This method blocks until the two bytes are read, the end of the + stream is detected, or an exception is thrown. +
    + + the next two bytes of this stream, interpreted as a signed + 16-bit number. + +
    + + + + + Reads an unsigned 16-bit number from this stream in little-endian order. + + Reads an unsigned 16-bit number from this stream in little-endian order. + This method reads + two bytes from the stream, starting at the current stream pointer. + If the bytes read, in order, are + b1 + and + b2 + , where + 0 <= b1, b2 <= 255 + , + then the result is equal to: +
    +            (b2 << 8) | b1
    +            
    + + This method blocks until the two bytes are read, the end of the + stream is detected, or an exception is thrown. +
    + + the next two bytes of this stream, interpreted as an + unsigned 16-bit integer. + +
    + + + + + Reads a Unicode character from this stream in little-endian order. + + Reads a Unicode character from this stream in little-endian order. + This method reads two + bytes from the stream, starting at the current stream pointer. + If the bytes read, in order, are + b1 + and + b2 + , where + 0 <= b1, b2 <= 255 + , + then the result is equal to: +
    +            (char)((b2 << 8) | b1)
    +            
    + + This method blocks until the two bytes are read, the end of the + stream is detected, or an exception is thrown. +
    + the next two bytes of this stream as a Unicode character. +
    + + + + + Reads a signed 32-bit integer from this stream in little-endian order. + + Reads a signed 32-bit integer from this stream in little-endian order. + This method reads 4 + bytes from the stream, starting at the current stream pointer. + If the bytes read, in order, are + b1 + , + b2 + , + b3 + , and + b4 + , where + 0 <= b1, b2, b3, b4 <= 255 + , + then the result is equal to: +
    +            (b4 << 24) | (b3 << 16) + (b2 << 8) + b1
    +            
    + + This method blocks until the four bytes are read, the end of the + stream is detected, or an exception is thrown. +
    + + the next four bytes of this stream, interpreted as an + int. + +
    + + Reads an unsigned 32-bit integer from this stream. + + Reads an unsigned 32-bit integer from this stream. This method reads 4 + bytes from the stream, starting at the current stream pointer. + If the bytes read, in order, are + b1 + , + b2 + , + b3 + , and + b4 + , where + 0 <= b1, b2, b3, b4 <= 255 + , + then the result is equal to: +
    +            (b1 << 24) | (b2 << 16) + (b3 << 8) + b4
    +            
    + + This method blocks until the four bytes are read, the end of the + stream is detected, or an exception is thrown. +
    + + the next four bytes of this stream, interpreted as a + long. + +
    + + + + + + + + + + + + + + + Reads a + String + from the font file as bytes using the given encoding. + + the length of bytes to read + the given encoding + + the + String + read + + + + + Factory to create + + objects based on various types of sources + + + + The default value for the forceRead flag + + + + Whether the full content of the source should be read into memory at construction + + + + Whether the underlying file should have a RW lock on it or just an R lock + + + + Creates a factory that will give preference to accessing the underling data source using memory mapped files + + + + Determines the default value for the forceRead flag + + true if by default the full content will be read, false otherwise + + + Determines whether the full content of the source will be read into memory + + true if the full content will be read, false otherwise + this object (this allows chaining of method calls) + + + + Determines whether + + should be used as the primary data access mechanism + + + whether + + should be used as the primary data access mechanism + + this object (this allows chaining of method calls) + + + + Creates a + + based on a byte array + + the byte array + + the newly created + + + + + + Creates a + + based on a URL. The data available at the URL is read into memory and used + as the source for the + + + the url to read from + + the newly created + + + + + + Creates or extracts a + + based on a + + + If the InputStream is an instance of + + then extracts the source from it. + Otherwise The full content of the InputStream is read into memory and used + as the source for the + + + the stream to read from + + the newly created or extracted + + + + + + Creates a + + based on an + + + The full content of the InputStream is read into memory and used + as the source for the + + + the stream to read from + + the newly created + + + + + + Creates a + + based on a filename string. + If the filename describes a URL, a URL based source is created + If the filename describes a file on disk, the contents may be read into memory (if + forceRead + is true), + opened using memory mapped file channel (if usePlainRandomAccess is false), or + opened using + + access (if usePlainRandomAccess is true) + This call will automatically fail over to using + + if the memory map operation fails + + + the name of the file or resource to create the + + for + + + the newly created + + + + + + Creates a new + + by reading the specified file/resource into memory + + the name of the resource to read + + the newly created + + + + + + Creates a new + + by reading the specified file/resource into memory + + the name of the resource to read + + the newly created + + + + + + An input stream that uses a + + as + its underlying source. + + + + The source. + + + The current position in the source. + + + Creates an input stream based on the source. + The source. + + + + + + + + + + A RandomAccessSource that wraps another RandomAccessSource and provides a window of it at a specific offset and over + a specific length. + + + A RandomAccessSource that wraps another RandomAccessSource and provides a window of it at a specific offset and over + a specific length. Position 0 becomes the offset position in the underlying source. + + + + The source + + + The amount to offset the source by + + + The length + + + Constructs a new OffsetRandomAccessSource that extends to the end of the underlying source + the source + the amount of the offset to use + + + Constructs a new OffsetRandomAccessSource with an explicit length + the source + the amount of the offset to use + the number of bytes to be included in this RAS + + + + + Note that the position will be adjusted to read from the corrected location in the underlying source + + + + + + Note that the position will be adjusted to read from the corrected location in the underlying source + + + + + + Note that the length will be adjusted to read from the corrected location in the underlying source + + + + + + + This file is a helper class for internal usage only. + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in the future. + + + + Shortens byte array. + the byte array + the new length of bytes array + the shortened byte array + + + Converts a collection to an int array. + the collection + the int array + + + Creates a hash of the given byte array. + the byte array + the byte array + + + Fills an array with the given value. + the int array + the number of a value + the int array + + + Fills an array with the given value. + the float array + the number of a value + the float array + + + Fills an array with the given value. + the array + the value of type + the type of the implementation + + + Clones int array. + the int array + the int array + + + Gets the index of object. + the object array + the object key + the index of object + + + + Checks if the command, passed as parameter, is executable and the output version text contains + expected text + + a string command to execute + an expected version text line + + boolean result of checking: true - the required command is executable and the output version + text is correct + + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + A helper to FlateDecode. + the input data + + true to read a correct stream. false + to try to read a corrupted stream + + the decoded data + + + Decodes a stream that has the FlateDecode filter. + the input data + the decoded data + + + + This method provides support for general purpose decompression using the + popular ZLIB compression library. + + the input data bytes + the buffer for the uncompressed data + + + A utility class that is used as an interface to run 3rd-party tool Ghostscript. + + A utility class that is used as an interface to run 3rd-party tool Ghostscript. + Ghostscript is an interpreter for the PostScript language and PDF files, it allows to render them + as images. + + The Ghostscript needs to be installed independently on the system. This class provides a convenient + way to run it by passing a terminal command. The command can either be specified explicitly or by a mean + of environment variable + . + + + + The name of the environment variable with the command to execute Ghostscript operations. + + + + Creates new instance that will rely on Ghostscript execution command defined by + + environment variable. + + + + Creates new instance that will rely on Ghostscript execution command defined as passed argument. + the Ghostscript execution command; if null - environment variables will be used instead + + + + Returns a command that is used to run the utility. + + Returns a command that is used to run the utility. + This command doesn't contain command parameters. Parameters are added on specific + methods invocation. + + a string command + + + Runs Ghostscript to render the PDF's pages as PNG images. + Path to the PDF file to be rendered + Path to the output directory, in which the rendered pages will be stored + + String which defines the name of the resultant images. This string will be + concatenated with the number of the rendered page from the start of the + PDF in "-%03d" format, e.g. "-011" for the eleventh rendered page and so on. + This number may not correspond to the actual page number: for example, + if the passed pageList equals to "5,3", then images with postfixes "-001.png" + and "-002.png" will be created: the former for the third page, the latter + for the fifth page. "%" sign in the passed name is prohibited. + + + + Runs Ghostscript to render the PDF's pages as PNG images. + Path to the PDF file to be rendered + Path to the output directory, in which the rendered pages will be stored + + String which defines the name of the resultant images. This string will be + concatenated with the number of the rendered page from the start of the + PDF in "-%03d" format, e.g. "-011" for the eleventh rendered page and so on. + This number may not correspond to the actual page number: for example, + if the passed pageList equals to "5,3", then images with postfixes "-001.png" + and "-002.png" will be created: the former for the third page, the latter + for the fifth page. "%" sign in the passed name is prohibited. + + + String with numbers of the required pages to be rendered as images. + This string should be formatted as a string with numbers, separated by commas, + without whitespaces. Can be null, if it is required to render all the PDF's pages. + + + + + Exceptions thrown when errors occur during generation and comparison of images obtained on the basis of pdf + files. + + + + + Creates a new + . + + the detail message. + + + + This class is a convenience method to sequentially calculate hash code of the + object based on the field values. + + + This class is a convenience method to sequentially calculate hash code of the + object based on the field values. The result depends on the order of elements + appended. The exact formula is the same as for + . + If you need order independent hash code just summate, multiply or XOR all + elements. + + Suppose we have class: +
    
    +            class Thing {
    +            long id;
    +            String name;
    +            float weight;
    +            }
    +            
    + The hash code calculation can be expressed in 2 forms. + + For maximum performance: +
    
    +            public int hashCode() {
    +            int hashCode = HashCode.EMPTY_HASH_CODE;
    +            hashCode = HashCode.combine(hashCode, id);
    +            hashCode = HashCode.combine(hashCode, name);
    +            hashCode = HashCode.combine(hashCode, weight);
    +            return hashCode;
    +            }
    +            
    + + For convenience: +
    
    +            public int hashCode() {
    +            return new HashCode().append(id).append(name).append(weight).hashCode();
    +            }
    +            
    +
    + +
    + + The hashCode value before any data is appended, equals to 1. + + + + Returns accumulated hashCode + + + Combines hashCode of previous elements sequence and value's hashCode. + previous hashCode value + new element + combined hashCode + + + Combines hashCode of previous elements sequence and value's hashCode. + previous hashCode value + new element + combined hashCode + + + Combines hashCode of previous elements sequence and value's hashCode. + previous hashCode value + new element + combined hashCode + + + Combines hashCode of previous elements sequence and value's hashCode. + previous hashCode value + new element + combined hashCode + + + Combines hashCode of previous elements sequence and value's hashCode. + previous hashCode value + new element + combined hashCode + + + Combines hashCode of previous elements sequence and value's hashCode. + previous hashCode value + new element + combined hashCode + + + Appends value's hashCode to the current hashCode. + new element + this + + + Appends value's hashCode to the current hashCode. + new element + this + + + Appends value's hashCode to the current hashCode. + new element + this + + + Appends value's hashCode to the current hashCode. + new element + this + + + Appends value's hashCode to the current hashCode. + new element + this + + + Appends value's hashCode to the current hashCode. + new element + this + + + The name of the environment variable with the command to execute Ghostscript operations. + + + The name of the environment variable with the command to execute ImageMagic comparison operations. + + + + Runs ghostscript to create images of pdfs. + Path to the pdf file. + Path to the output directory + Path to the generated image + + + Runs ghostscript to create images of specified pages of pdfs. + Path to the pdf file. + Path to the output directory + Path to the generated image + + Number of the required page of pdf to extract as image. Can be null, + if it is required to extract all pages as images + + + + Runs imageMagick to visually compare images and generate difference output. + Path to the output image file + Path to the cmp image file + Path to the difference output image file + boolean result of comparing: true - images are visually equal + + + Runs imageMagick to visually compare images with the specified fuzziness value and generate difference output. + + Path to the output image file + Path to the cmp image file + Path to the difference output image file + fuzziness value to compare images. Can be null, if it is not required to use fuzziness + + boolean result of comparing: true - images are visually equal + + + + Checks if the specified by input parameter tool's system variable is correctly specified + and the specified tool can be executed. + + the keyword specifying the tool (GhostScript or ImageMagick) + + boolean result of checking: true - System variable is correctly specified + and the specified tool can be executed + + + + + Exceptions thrown when errors occur during generation and comparison of images obtained on the basis of pdf + files. + + + + + Creates a new + . + + the detail message. + + + + A helper data class, which aggregates true/false result of ImageMagick comparing + as well as the number of different pixels. + + + + Creates an instance that contains ImageMagick comparing result information. + true, if the compared images are equal. + number of different pixels. + + + Returns image compare boolean value. + true if the compared images are equal. + + + Getter for a different pixels count. + Returns a a different pixels count. + + + A utility class that is used as an interface to run 3rd-party tool ImageMagick. + + A utility class that is used as an interface to run 3rd-party tool ImageMagick. + ImageMagick among other things allows to compare images and this class provides means to utilize this feature. + + The ImageMagick needs to be installed independently on the system. This class provides a convenient + way to run it by passing a terminal command. The command can either be specified explicitly or by a mean + of environment variable + . + + + + The name of the environment variable with the command to execute ImageMagic comparison operations. + + + + + Creates new instance that will rely on ImageMagick execution command defined by + + environment variable. + + + + Creates new instance that will rely on ImageMagick execution command defined as passed argument. + the ImageMagick execution command; if null - environment variables will be used instead + + + + Returns a command that is used to run the utility. + + Returns a command that is used to run the utility. + This command doesn't contain command parameters. Parameters are added on specific + methods invocation. + + a string command + + + Runs imageMagick to visually compare images and generate difference output. + Path to the output image file + Path to the cmp image file + Path to the difference output image file + boolean result of comparing: true - images are visually equal + + + Runs imageMagick to visually compare images with the specified fuzziness value and generate difference output. + + Path to the output image file + Path to the cmp image file + Path to the difference output image file + + String fuzziness value to compare images. Should be formatted as string with integer + or decimal number. Can be null, if it is not required to use fuzziness + + boolean result of comparing: true - images are visually equal + + + + Runs imageMagick to visually compare images with the specified fuzziness value and given threshold + and generate difference output. + + Path to the output image file + Path to the cmp image file + Path to the difference output image file + + String fuzziness value to compare images. Should be formatted as string with integer + or decimal number. Can be null, if it is not required to use fuzziness + + Long value of accepted threshold. + boolean result of comparing: true - images are visually equal + + + Runs imageMagick to visually compare images with the specified fuzziness value and generate difference output. + + + Runs imageMagick to visually compare images with the specified fuzziness value and generate difference output. + This method returns an object of + + , containing comparing result information, + such as boolean result value and the number of different pixels. + + Path to the output image file + Path to the cmp image file + Path to the difference output image file + + String fuzziness value to compare images. Should be formatted as string with integer + or decimal number. Can be null, if it is not required to use fuzziness + + + an object of + + . containing comparing result information. + + + + A hash map that uses primitive ints for the key rather than objects. + + A hash map that uses primitive ints for the key rather than objects. + + Note that this class is for internal optimization purposes only, and may + not be supported in future releases of Jakarta Commons Lang. Utilities of + this sort may be included in future releases of Jakarta Commons Collections. + + Justin Couch + Alex Chaffee (alex@apache.org) + Stephen Colebourne + Bruno Lowagie (change Objects as keys into int values) + Paulo Soares (added extra methods) + + + The total number of entries in the hash table. + + + The hash table data. + + + The table is rehashed when its size exceeds this threshold. + + The table is rehashed when its size exceeds this threshold. (The + value of this field is (int)(capacity * loadFactor).) + + + + + The load factor for the hashtable. + + + + + Constructs a new, empty hashtable with a default capacity and load + factor, which is 20 and 0.75 respectively. + + + + + Constructs a new, empty hashtable with the specified initial capacity + and default load factor, which is 0.75. + + the initial capacity of the hashtable. + + + + Constructs a new, empty hashtable with the specified initial + capacity and the specified load factor. + + the initial capacity of the hashtable. + the load factor of the hashtable. + + + Returns the number of keys in this hashtable. + the number of keys in this hashtable. + + + Tests if this hashtable maps no keys to values. + + true if this hashtable maps no keys to values; + false otherwise. + + + + Tests if some key maps into the specified value in this hashtable. + + Tests if some key maps into the specified value in this hashtable. + This operation is more expensive than the containsKey + method. + + Note that this method is identical in functionality to containsValue, + (which is part of the Map interface in the collections framework). + + a value to search for. + + true if and only if some key maps to the + value argument in this hashtable as + determined by the equals method; + false otherwise. + + + + + + + + Returns true if this HashMap maps one or more keys + to this value. + + + Returns true if this HashMap maps one or more keys + to this value. + + Note that this method is identical in functionality to contains + (which predates the Map interface). + + value whose presence in this HashMap is to be tested. + boolean true if the value is contained + + + + Tests if the specified int is a key in this hashtable. + possible key. + + true if and only if the specified int is a + key in this hashtable, as determined by the equals + method; false otherwise. + + + + + Returns the value to which the specified key is mapped in this map. + a key in the hashtable. + + the value to which the key is mapped in this hashtable; + 0 if the key is not mapped to any value in + this hashtable. + + + + + + Increases the capacity of and internally reorganizes this + hashtable, in order to accommodate and access its entries more + efficiently. + + + Increases the capacity of and internally reorganizes this + hashtable, in order to accommodate and access its entries more + efficiently. + + This method is called automatically when the number of keys + in the hashtable exceeds this hashtable's capacity and load + factor. + + + + + Maps the specified key to the specified + value in this hashtable. + + + Maps the specified key to the specified + value in this hashtable. The key cannot be + null. + + The value can be retrieved by calling the get method + with a key that is equal to the original key. + + the hashtable key. + the value. + + the previous value of the specified key in this hashtable, + or null if it did not have one. + + + + + + Removes the key (and its corresponding value) from this + hashtable. + + + Removes the key (and its corresponding value) from this + hashtable. + + This method does nothing if the key is not present in the + hashtable. + + the key that needs to be removed. + + the value to which the key had been mapped in this hashtable, + or null if the key did not have a mapping. + + + + Clears this hashtable so that it contains no keys. + + + + Innerclass that acts as a datastructure to create a new entry in the + table. + + + + Create a new entry with the given values. + The key used to enter this in the table + The value for this key + A reference to the next entry in the table + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + Gets the resource's inputstream. + the full name of the resource. + + the + InputStream + to get the resource or + + if not found. + + + + This file is a helper class for internal usage only. + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + This method is an alternative for the + InputStream.skip() + -method that doesn't seem to work properly for big values of + . + + + the + InputStream + + the number of bytes to skip + + + + Escapes a + byte + array according to the PDF conventions. + + + the + byte + array to escape + + + an escaped + byte + array + + + + + Escapes a + byte + array according to the PDF conventions. + + + the + OutputStream + an escaped + byte + array write to. + + + the + byte + array to escape. + + + + Reads the full content of a stream and returns them in a byte array + the stream to read + a byte array containing all of the bytes from the stream + + + + Copy bytes from the + RandomAccessSource + to + OutputStream. + + + the + RandomAccessSource + copy from. + + start position of source copy from. + length copy to. + + the + OutputStream + copy to. + + + + + Reads + + bytes from an input stream. + + the buffer into which the data is read. + an int specifying the offset into the data. + an int specifying the number of bytes to read. + + + This file is a helper class for internal usage only. + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + Check if the value of a character belongs to a certain interval + that indicates it's the higher part of a surrogate pair. + + the character + true if the character belongs to the interval + + + + Check if the value of a character belongs to a certain interval + that indicates it's the lower part of a surrogate pair. + + the character + true if the character belongs to the interval + + + + Checks if two subsequent characters in a String are + are the higher and the lower character in a surrogate + pair (and therefore eligible for conversion to a UTF 32 character). + + the String with the high and low surrogate characters + the index of the 'high' character in the pair + true if the characters are surrogate pairs + + + + Checks if two subsequent characters in a character array are + are the higher and the lower character in a surrogate + pair (and therefore eligible for conversion to a UTF 32 character). + + the character array with the high and low surrogate characters + the index of the 'high' character in the pair + true if the characters are surrogate pairs + + + + Returns the code point of a UTF32 character corresponding with + a high and a low surrogate value. + + the high surrogate value + the low surrogate value + a code point value + + + Converts a unicode character in a character array to a UTF 32 code point value. + a character array that has the unicode character(s) + the index of the 'high' character + the code point value + + + Converts a unicode character in a String to a UTF32 code point value + a String that has the unicode character(s) + the index of the 'high' character + the codepoint value + + + Converts a UTF32 code point value to a char array with the corresponding character(s). + a Unicode value + the corresponding char array + + + + / + Converts a UTF32 code point sequence to a String with the corresponding character(s). + + a Unicode text sequence + start position of text to convert, inclusive + end position of txt to convert, exclusive + the corresponding characters in a String + + + Converts a UTF32 code point value to a char array with the corresponding character(s). + a Unicode value + the corresponding characters in a char array + + + + Determines if the specified character (Unicode code point) should be regarded + as an ignorable character in a Java identifier or a Unicode identifier. + + + + + Determines if represented Glyph is '\n' or '\r' character. + + + + + Determines if represented Glyph is '\n' or '\r' character. + + + + + Determines if represented Glyph is '\n' or '\r' character. + + + + + Determines if represented Glyph is space or whitespace character. + + + + + Determines if represented Glyph is whitespace character. + + + + + Determines if represented Glyph is ' ' (SPACE) character. + + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + This method makes a valid URL from a given filename. + a given filename + a valid URL + + + + This method makes a normalized URI from a given filename. + + a given filename + a valid Uri + + + + This method makes a normalized URI from a given file. + + a given file + a valid Uri + + + + This method gets the last redirected url. + + an initial url. + + the last redirected url. + + + + This method gets uri string from a file. + + a given filename + a uri string + + + + This method gets normalized uri string from a file. + + a given filename + a normalized uri string + + + + Gets the input stream of connection related to last redirected url. You should manually close input stream after + calling this method to not hold any open resources. + + an initial URL. + + an input stream of connection related to the last redirected url. + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + This method creates a new empty Xml document. + + a new Xml document + + + + Summary description for DeflaterOutputStream. + + + + + Summary description for DeflaterOutputStream. + + +
    +
    diff --git a/Bin/itext.kernel.dll b/Bin/itext.kernel.dll new file mode 100644 index 000000000..ae5c888ea Binary files /dev/null and b/Bin/itext.kernel.dll differ diff --git a/Bin/itext.kernel.dll.refresh b/Bin/itext.kernel.dll.refresh new file mode 100644 index 000000000..c69a05e6b --- /dev/null +++ b/Bin/itext.kernel.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.kernel.dll \ No newline at end of file diff --git a/Bin/itext.kernel.xml b/Bin/itext.kernel.xml new file mode 100644 index 000000000..2ba899f88 --- /dev/null +++ b/Bin/itext.kernel.xml @@ -0,0 +1,39746 @@ + + + + itext.kernel + + + + + Stores an instance of + + related to iText core module. + + + + + Getter for an instance of + + related to iText core module. + + iText core product description + + + + Class represents events notifying that + + was flushed. + + + + Creates a new instance of the flushing event. + is a document to be flushed + + + Prepares document for flushing. + + + Class represents events registered in iText core module. + + + Process pdf event type. + + + Creates an event associated with a general identifier and additional meta data. + is an identifier associated with the event + is an additional meta info + is a string description of the event + + defines when the event should be confirmed to notify that the + associated process has finished successfully + + + + Creates an process pdf event which associated with a general identifier and additional meta data. + + is an identifier associated with the event + is an additional meta info + + defines when the event should be confirmed to notify that the + associated process has finished successfully + + the process pdf event + + + + An event allows to associated some + + with + . + + + + + Creates a new instance of the event associating provided + + with the + appropriate + . + + is a document + is a general identifier to be associated with the document + + + + Creates a new instance of the event associating provided + + with the + appropriate + . + + is a document + is an identifiable element to be associated with the document + + + + Defines an association between + + and + . + + + + Represents a color + + + The color space of the color + + + The color value of the color + + + Creates a Color of certain color space and color value. + + Creates a Color of certain color space and color value. + If color value is set in null, all value components will be initialised with zeroes. + + the color space to which the created Color object relates + the color value of the created Color object + + + Makes a Color of certain color space. + + Makes a Color of certain color space. + All color value components will be initialised with zeroes. + + the color space to which the returned Color object relates + the created Color object. + + + Makes a Color of certain color space and color value. + + Makes a Color of certain color space and color value. + If color value is set in null, all value components will be initialised with zeroes. + + the color space to which the returned Color object relates + the color value of the returned Color object + the created Color object. + + + + Converts + DeviceCmyk + color to + DeviceRgb + color + + the DeviceCmyk color which will be converted to DeviceRgb color + converted color + + + + Converts + DeviceRgb + color to + DeviceCmyk + color + + the DeviceRgb color which will be converted to DeviceCmyk color + converted color + + + Returns the number of color value components + the number of color value components + + + + Returns the + color space + to which the color is related. + + the color space of the color + + + Returns the color value of the color + the color value + + + Sets the color value of the color + new color value + + + Indicates whether the color is equal to the given color. + + Indicates whether the color is equal to the given color. + The + color space + and + color value + are considered during the comparison. + + + + + + + + Class containing predefined + + colors. + + + Class containing predefined + + colors. + Color space specific classes should be used for the advanced handling of colors. + The most common ones are + + , + + and + . + + + + Predefined black DeviceRgb color + + + Predefined blue DeviceRgb color + + + Predefined cyan DeviceRgb color + + + Predefined dark gray DeviceRgb color + + + Predefined gray DeviceRgb color + + + Predefined green DeviceRgb color + + + Predefined light gray DeviceRgb color + + + Predefined magenta DeviceRgb color + + + Predefined orange DeviceRgb color + + + Predefined pink DeviceRgb color + + + Predefined red DeviceRgb color + + + Predefined white DeviceRgb color + + + Predefined yellow DeviceRgb color + + + Color space to specify colors according to CMYK color model. + + + Predefined cyan DeviceCmyk color + + + Predefined magenta DeviceCmyk color + + + Predefined yellow DeviceCmyk color + + + Predefined black DeviceCmyk color + + + Creates DeviceCmyk color with all colorants intensities initialised as zeroes. + + + Creates DeviceCmyk color by intensities of cyan, magenta, yellow and black colorants. + + Creates DeviceCmyk color by intensities of cyan, magenta, yellow and black colorants. + The intensities are considered to be in [0, 100] gap, if not, + the intensity will be considered as 100 (when colorant's value is bigger than 100) + or 0 (when colorant's value is less than 0). + + the intensity of cyan colorant + the intensity of magenta colorant + the intensity of yellow colorant + the intensity of black colorant + + + Creates DeviceCmyk color by intensities of cyan, magenta, yellow and black colorants. + + Creates DeviceCmyk color by intensities of cyan, magenta, yellow and black colorants. + The intensities are considered to be in [0, 1] interval, if not, + the intensity will be considered as 1 (when colorant's value is bigger than 1) + or 0 (when colorant's value is less than 0). + + the intensity of cyan colorant + the intensity of magenta colorant + the intensity of yellow colorant + the intensity of black colorant + + + + Returns + DeviceCmyk + color which is lighter than given one + + the DeviceCmyk color to be made lighter + lighter color + + + + Returns + DeviceCmyk + color which is darker than given one + + the DeviceCmyk color to be made darker + darker color + + + Color space to specify shades of gray color. + + + Predefined white DeviceGray color. + + + Predefined gray DeviceGray color. + + + Predefined black DeviceGray color. + + + Creates DeviceGray color by given grayscale. + + Creates DeviceGray color by given grayscale. + The grayscale is considered to be in [0, 1] interval, if not, + the grayscale will be considered as 1 (when grayscale's value is bigger than 1) + or 0 (when grayscale's value is less than 0). + + the grayscale value + + + Creates DeviceGray color with grayscale value initialised as zero. + + + + Returns + DeviceGray + color which is lighter than given one + + the DeviceGray color to be made lighter + lighter color + + + + Returns + DeviceGray + color which is darker than given one + + the DeviceGray color to be made darker + darker color + + + Creates a color in new DeviceN color space. + the names oif the components + the alternate color space + the function to transform color to the alternate color space + the values for the components of this color + + + Creates a color in a new DeviceN color space. + the names oif the components + the alternate color space + the function to transform color to the alternate color space + the values for the components of this color + + + Color space to specify colors according to RGB color model. + + + Predefined black DeviceRgb color + + + Predefined white DeviceRgb color + + + Predefined red DeviceRgb color + + + Predefined green DeviceRgb color + + + Predefined blue DeviceRgb color + + + Creates DeviceRgb color by intensities of red, green and blue colorants. + + Creates DeviceRgb color by intensities of red, green and blue colorants. + The intensities are considered to be in [0, 255] gap, if not, + the intensity will be considered as 255 (when colorant's value is bigger than 255) + or 0 (when colorant's value is less than 0). + + the intensity of red colorant + the intensity of green colorant + the intensity of blue colorant + + + Creates DeviceRgb color by intensities of red, green and blue colorants. + + Creates DeviceRgb color by intensities of red, green and blue colorants. + The intensities are considered to be in [0, 1] interval, if not, + the intensity will be considered as 1 (when colorant's value is bigger than 1) + or 0 (when colorant's value is less than 0). + + the intensity of red colorant + the intensity of green colorant + the intensity of blue colorant + + + Creates DeviceRgb color with all colorants intensities initialised as zeroes. + + + + Create DeviceRGB color from R, G, B values of System.Drawing.Color +
    + Note, that alpha chanel is ignored, but opacity still can be achieved + in some places by using 'setOpacity' method or 'TransparentColor' class. +
    + the color which RGB values are used +
    + + + Returns + DeviceRgb + color which is lighter than given one + + the DeviceRgb color to be made lighter + lighter color + + + + Returns + DeviceRgb + color which is darker than given one + + the DeviceRgb color to be made darker + darker color + + + Base class for linear gradient builders implementations. + + Base class for linear gradient builders implementations. + + Color transitions for linear gradients are defined by a series of color stops along a gradient + vector. A gradient normal defines how the colors in a vector are painted to the surface. For + a linear gradient, a normal is a line perpendicular to the vector. + + Contains the main logic that works with stop colors and creation of the resulted pdf color object. + + + + The epsilon value used for data creation + + + + Adds the new color stop to the end ( + more info + ). + + + Adds the new color stop to the end ( + more info + ). + Note: if the previously added color stop's offset would have grater offset than the added + one, then the new offset would be normalized to be equal to the previous one. (Comparison + made between relative on coordinates vector offsets. If any of them has + the absolute offset, then the absolute value would converted to relative first.) + + the gradient stop color to add + the current builder instance + + + Set the spread method to use for the gradient + the gradient spread method to set + the current builder instance + + + Get the copy of current color stops list. + Get the copy of current color stops list. Note that the stop colors are not copied here + the copy of current stop colors list + + + Get the current spread method + the current spread method + + + + Builds the + + object representing the linear gradient with specified configuration + that fills the target bounding box. + + the bounding box to be filled in current space + + the transformation from the base coordinates space into + the current space. The + + value is valid and can be used + if there is no transformation from base coordinates to current space + specified, or it is equal to identity transformation. + + + the + + for which the linear gradient would be built. + + + the constructed + + or + + if no color to be applied + or base gradient vector has been specified + + + + Returns the base gradient vector in gradient vector space. + + Returns the base gradient vector in gradient vector space. This vector would be set + as shading coordinates vector and its length would be used to translate all color stops + absolute offsets into the relatives. + + the rectangle to be covered by constructed color in current space + the current canvas transformation + the array of exactly two elements specifying the gradient coordinates vector + + + + Returns the current space to gradient vector space transformations that should be applied + to the shading color. + + + Returns the current space to gradient vector space transformations that should be applied + to the shading color. The transformation should be invertible as the current target + bounding box coordinates should be transformed into the resulted shading space coordinates. + + the rectangle to be covered by constructed color in current space + the current canvas transformation + + the additional transformation to be concatenated to the current for resulted shading + or + + if no additional transformation is specified + + + + Evaluates the minimal domain that covers the box with vector normals. + + Evaluates the minimal domain that covers the box with vector normals. + The domain corresponding to the initial vector is [0, 1]. + + + the array of exactly two elements that describe + the base vector (corresponding to [0,1] domain, that need to be adjusted + to cover the box + + the box that needs to be covered + + the array of two elements in ascending order specifying the calculated covering + domain + + + + Expand the base vector to cover the new domain + + the array of exactly two elements that specifies the domain + that should be covered by the created vector + + + the array of exactly two elements that specifies the base vector + which corresponds to [0, 1] domain + + the array of two + + + The gradient stop color structure representing the stop color configuration. + + The gradient stop color structure representing the stop color configuration. + The stop color consists of: + - + float[] + rgb color array. Values should be in [0, 1] range. All values outside of + this range would be adjusted to the nearest corner of the range. + - + double + offset and + + offset type specifies the coordinate of + the stop color on the targeting gradient coordinates vector + - + double + hint offset and + + hint offset type specifies the color + transition mid point offset between the current color and the next color + + + + + Constructor of stop color with with specified rgb color and default ( + + ) + offset + + the color value + + + Constructor of stop color with with specified rgb color and offset + the color value + + the offset value. Makes sense only if the + + is not + + + the offset's type + + + Constructor that creates the stop with the same color as the another stop and new offset + the gradient stop color from which the color value would be copied + + the new offset. Makes sense only if the + + is not + + + the new offset's type + + + Get the stop color rgb value + the copy of stop's rgb value + + + Get the stop color opacity value + the stop color opacity value + + + Get the offset type + the offset type + + + Get the offset value + the offset value + + + Get the hint offset value + the hint offset value + + + Get the hint offset type + the hint offset type + + + Set the offset specified by its value and type + + the offset's value to be set. Makes sense only if the + + is not + + + the offset's type to be set + + the current + + instance + + + + + Set the color hint specified by its value and type ( + more details + ). + + + the hint offset's value to be set. Makes sense only + if the + + is not + + + the hint offset's type to be set + + the current + + instance + + + + Represents the possible offset type + + + The absolute offset value from the target coordinates vector's start + + + The automatic offset evaluation. + + The automatic offset evaluation. The offset value should be evaluated automatically + based on the whole stop colors list specified for the gradient. The general auto offset + logic should be the next: + - find the previous and the next specified offset or hint offset values + - the sublist of sequent auto offsets should spread evenly between the found values + + + + The relative offset value to the target coordinates vector. + + The relative offset value to the target coordinates vector. The + 0 + value means + the target vector start, the + 1 + value means the target vector end. + + + + Represents the possible hint offset type + + + The absolute hint offset value on the target gradient value + + + The relative hint offset value to the target coordinates vector. + + The relative hint offset value to the target coordinates vector. The + 0 + value + means the target vector start, the + 1 + value means the target vector end. + + + + + The relative hint offset value to the interval between the current gradient stop color + and the next one. + + + + None hint offset specified + + + Represents possible spreading methods for gradient color outside of the coordinates vector + + + Pad the corner colors to fill the necessary area + + + Reflect the coloring to fill the necessary area + + + Repeat the coloring to fill the necessary area + + + No coloring outside of the coordinates vector + + + + The linear gradient builder implementation with direct target gradient vector + and shading transformation ( + more info + ) + + + + Constructs the builder instance + + + + Set coordinates for gradient vector ( + more info + ) + + the x coordinate of the vector start + the y coordinate of the vector start + the x coordinate of the vector end + the y coordinate of the vector end + the current builder instance + + + + Set the linear gradient space transformation which specifies the transformation from + the current coordinates space to gradient vector space + + + Set the linear gradient space transformation which specifies the transformation from + the current coordinates space to gradient vector space + + The current space is the one on which linear gradient will be drawn (as a fill or stroke + color for shapes on PDF canvas). This transformation mainly used for color lines skewing. + + + the + + representing the transformation to set + + the current builder instance + + + + The linear gradient builder with automatic coordinates vector evaluation for the target filled + area based on configured strategy + + + + Create a new instance of the builder + + + + Set the strategy to use the minimal coordinates vector that passes through the central point + of the target rectangle area, rotated by the specified amount of radians counter clockwise + and covers the area to be filled. + + + Set the strategy to use the minimal coordinates vector that passes through the central point + of the target rectangle area, rotated by the specified amount of radians counter clockwise + and covers the area to be filled. Zero angle corresponds to the vector from bottom to top. + + the radians value to rotate the coordinates vector + the current builder instance + + + Set the strategy to predefined one + the strategy to set + the current builder instance + + + Get the last set rotate vector angle + the last set rotate vector angle + + + Get the last set predefined strategy + the last set predefined strategy + + + Is the central rotation angle strategy was set last + + + + if the last strategy that has been set is a custom rotation angle + + + + Specifies the predefined strategies + + + Gradient vector from the middle of the top side to the middle of the bottom side + + + + Evaluates the gradient vector in such way that the first color would be painted + at the top right corner, the last one - at the bottom left corner and the middle color + line would pass through left corners + + + + + Evaluates the gradient vector in such way that the first color would be painted + at the top left corner, the last one - at the bottom right corner and the middle color + line would pass through left corners + + + + Gradient vector from the middle of the right side to the middle of the left side + + + Gradient vector from the middle of the left side to the middle of the right side + + + Gradient vector from the middle of the bottom side to the middle of the top side + + + + Evaluates the gradient vector in such way that the first color would be painted + at the bottom right corner, the last one - at the top left corner and the middle color + line would pass through left corners + + + + + Evaluates the gradient vector in such way that the first color would be painted + at the bottom left corner, the last one - at the top right corner and the middle color + line would pass through left corners + + + + Creates IccBased color. + ICC profile stream. User is responsible for closing the stream. + + + Creates IccBased color. + ICC profile stream. User is responsible for closing the stream. + color value. + + + Creates a color in a new separation color space. + the name for the separation color + the alternative color space + the function to transform color to the alternate colorspace + the color value + + + Creates a color in a new separation color space. + the name for the separation color + the alternative color space + the function to transform color to the alternate colorspace + the color value + + + + This class is a HashMap that contains the names of colors as a key and the + corresponding RGB color as value. + + + This class is a HashMap that contains the names of colors as a key and the + corresponding RGB color as value. (Source: Wikipedia + http://en.wikipedia.org/wiki/Web_colors ) + + + + HashMap containing all the names and corresponding color values. + + + Gives you a DeviceRgb based on a name. + + a name such as black, violet, cornflowerblue or #RGB or + #RRGGBB or RGB or RRGGBB or rgb(R,G,B) + + the corresponding DeviceRgb object. Never returns null. + + + Gives you a DeviceCmyk based on a name. + 'device-cmyk(c, m, y, k)' structure + the corresponding DeviceCmyk object. Never returns null. + + + Gives an array of five floats that contain CMYK values and opacity, each value is between 0 and 1. + + 'device-cmyk(c, m, y, k)' structure + the corresponding array of five floats, or null if parsing failed. + + + Gives an array of four floats that contain RGBA values, each value is between 0 and 1. + + a name such as black, violet, cornflowerblue or #RGB or + #RRGGBB or RGB or RRGGBB or rgb(R,G,B) or rgb(R,G,B,A) + + the corresponding array of four floats, or null if parsing failed. + + + + A web color string without the leading # will be 3 or 6 characters long + and all those characters will be hex digits. + + + A web color string without the leading # will be 3 or 6 characters long + and all those characters will be hex digits. NOTE: colStr must be all + lower case or the current hex letter test will fail. + + + A non-null, lower case string that might describe an RGB color + in hex. + + Is this a web color hex string without the leading #? + + + Creates an AES Cipher with CBC and padding PKCS5/7. + Paulo Soares + + + Creates a new instance of AESCipher + + if true the cipher is initialised for + encryption, if false for decryption + + the key to be used in the cipher + initialization vector to be used in cipher + + + Creates an AES Cipher with CBC and no padding. + Paulo Soares + + + Creates a new instance of AESCipher with CBC and no padding + + if true the cipher is initialised for + encryption, if false for decryption + + the key to be used in the cipher + + + Creates a new instance of AESCipher with CBC and no padding + + if true the cipher is initialised for + encryption, if false for decryption + + the key to be used in the cipher + initialization vector to be used in cipher + + + + Creates a new instance of + + + the byte array containing the key for decryption + offset of the key in the byte array + the length of the key in the byte array + + + Creates a new instance of ARCFOUREncryption + + + + This file is a helper class for internal usage only. + Be aware that it's API and functionality may be changed in future. + + + + + Creates instance which can be an implementation of one of the ASN1 encodings + writing logic. This method also asserts for unexpected ASN1 encodings. + + the underlying stream + ASN1 encoding that will be used for writing. Only DER and BER are allowed as values. + a instance. Exact stream implementation is chosen based on passed encoding. + + + + An initialization vector generator for a CBC block encryption. + An initialization vector generator for a CBC block encryption. It's a random generator based on ARCFOUR. + + Paulo Soares + + + Creates a new instance of IVGenerator + + + Gets a 16 byte random initialization vector. + a 16 byte random initialization vector + + + Gets a random initialization vector. + the length of the initialization vector + a random initialization vector + + + + Creates a new instance of + + + + the + + instance to be used as the destination for the encrypted content + + the byte array containing the key for encryption + offset of the key in the byte array + the length of the key in the byte array + + + + Creates a new instance of + + + + the + + instance to be used as the destination for the encrypted content + + the byte array which is the key for encryption + + + + Writes + + bytes from the specified byte array + starting at offset + + to this output stream. + + + Writes + + bytes from the specified byte array + starting at offset + + to this output stream. + The general contract for + write(b, off, len) + is that + some of the bytes in the array + + are written to the + output stream in order; element + b[off] + is the first + byte written and + b[off+len-1] + is the last byte written + by this operation. + + The + write + method of + OutputStream + calls + the write method of one argument on each of the bytes to be + written out. Subclasses are encouraged to override this method and + provide a more efficient implementation. + + If + + is + + , a + NullPointerException + is thrown. + + If + + is negative, or + + is negative, or + off+len + is greater than the length of the array + + , then an IndexOutOfBoundsException is thrown. + + the data. + the start offset in the data. + the number of bytes to write. + + + + Creates a new instance of + + the target to write encrypted content to + + + + + + Writes + b.length + bytes from the specified byte array + to this output stream. The general contract for + write(b) + is that it should have exactly the same effect as the call + write(b, 0, b.length) + . + + the data. + + + + + + Creates a new instance of OutputStreamStandardEncryption + + the + + to which data will be written + + data to be written + the start offset in data + number of bytes to write + + + + Writes + + bytes from the specified byte array + starting at offset + + to this output stream. + + + Writes + + bytes from the specified byte array + starting at offset + + to this output stream. + The general contract for + write(b, off, len) + is that + some of the bytes in the array + + are written to the + output stream in order; element + b[off] + is the first + byte written and + b[off+len-1] + is the last byte written + by this operation. + + The + write + method of + OutputStream + calls + the write method of one argument on each of the bytes to be + written out. Subclasses are encouraged to override this method and + provide a more efficient implementation. + + If + + is + + , a + NullPointerException + is thrown. + + If + + is negative, or + + is negative, or + off+len + is greater than the length of the array + + , then an IndexOutOfBoundsException is thrown. + + the data. + the start offset in the data. + the number of bytes to write. + + + Aiken Sam (aikensam@ieee.org) + + + The global encryption key + + + The encryption key for a particular object/generation. + + The encryption key for a particular object/generation. + It is recalculated with + + for every object individually based in its object/generation. + + + + + The encryption key length for a particular object/generation + It is recalculated with + + for every object individually based in its object/generation. + + + + Work area to prepare the object/generation bytes + + + + Note: For most of the supported security handlers algorithm to calculate encryption key for particular object + is the same. + + number of particular object for encryption + generation of particular object for encryption + + + Gets bytes of String-value without considering encoding. + + a + + to get bytes from it + + byte array + + + Creates a new instance of StandardDecryption + data to be written + the start offset in data + number of bytes to write + + + Describes abstract event. + + + A type of event. + + + Creates an event of the specified type. + type of event + + + Returns the type of this event. + type of this event + + + + IEventDispatcher implementation that forwards Events to registered + + implementations. + + + + Event dispatcher interface. + + + Adds new event handler. + a type of event to be handled + event handler + + + Dispatches an event. + + the + + to be dispatched + + + + Dispatches a delayed event. + + Dispatches a delayed event. + Sometimes event cannot be handled immediately because event handler has not been set yet. + In this case event is placed into event ques of dispatcher and is waiting until handler is assigned. + + + the + + to be dispatched + + + flag whether + + delayed or not + + + + Checks if event dispatcher as an event handler assigned for a certain event type. + + a type of the + + + true if event dispatcher as an event handler assigned for a certain event type + + + Removes event handler. + + a type of the + + + + event handler + + + + + Remove all event handlers. + + + Interface for handling events. + + Interface for handling events. EventHandlers are added to the + . + + + + Hook for handling events. + + Hook for handling events. Implementations can access the PdfDocument instance + associated to the specified Event or, if available, the PdfPage instance. + + the Event that needs to be processed + + + Event dispatched by PdfDocument. + + + Dispatched after page is created. + + + Dispatched after page is inserted/added into a document. + + + Dispatched after page is removed from a document. + + + Dispatched before page is flushed to a document. + + Dispatched before page is flushed to a document. + This event isn't necessarily dispatched when a successive page has been created. + Keep it in mind when using with highlevel iText API. + + + + The PdfPage associated with this event. + + + The PdfDocument associated with this event. + + + Creates a PdfDocumentEvent. + type of the event that fired this event + document that fired this event + + + Creates a PdfDocumentEvent. + type of the event that fired this event + page that fired this event + + + Returns the PdfDocument associated with this event. + the PdfDocument associated with this event + + + Returns the PdfPage associated with this event. + Returns the PdfPage associated with this event. Warning: this can be null. + the PdfPage associated with this event + + + Bad password exception. + + + Creates a new BadPasswordException. + the detail message. + + the cause (which is saved for later retrieval by + + method). + + + + Creates a new BadPasswordException. + the detail message. + + + Exception class for invalid prev pointer in xref structure. + + + Creates a new instance of InvalidPrevPointerException. + the detail message. + + + Class that bundles all the error message templates as constants. + + + Exception class for exceptions occurred during decompressed pdf streams processing. + + + Creates a new instance of MemoryLimitsAwareException. + the detail message. + + + Creates a new instance of MemoryLimitsAwareException. + + the cause (which is saved for later retrieval by + + method). + + + + Creates a new instance of MemoryLimitsAwareException. + the detail message. + + the cause (which is saved for later retrieval by + + method). + + + + Exception class for exceptions in kernel module. + + + Object for more details + + + Creates a new instance of PdfException. + the detail message. + + + Creates a new instance of PdfException. + + the cause (which is saved for later retrieval by + + method). + + + + Creates a new instance of PdfException. + the detail message. + an object for more details. + + + Creates a new instance of PdfException. + the detail message. + + the cause (which is saved for later retrieval by + + method). + + + + Creates a new instance of PdfException. + the detail message. + + the cause (which is saved for later retrieval by + + method). + + an object for more details. + + + Sets additional params for Exception message. + additional params. + object itself. + + + Gets additional params for Exception message. + array of additional params + + + Exception class for infinite loop in xref structure. + + + Creates a new instance of XrefInfiniteLoopException. + the detail message. + + + This class allow to parse document font's encoding. + + + Returns false, because we cannot rely on an actual font subset and font name. + a font name or path to a font program + return false. + + + Returns false, because we cannot rely on an actual font subset and font name. + a font name or path to a font program + return false. + + + The upper bound value for char code. + + The upper bound value for char code. As for simple fonts char codes are a single byte values, + it may vary from 0 to 255. + + + + false, if the font comes from PdfDocument. + + + true if the font is to be embedded in the PDF. + + + Indicates if all the glyphs and widths for that particular encoding should be included in the document. + + + + Get glyph by unicode + a unicode code point + + + + if it exists or .NOTDEF if supported, otherwise + . + + + + Check whether font contains glyph with specified unicode. + a unicode code point + + true if font contains glyph, represented with the unicode code point, + otherwise false. + + + + Append all supported glyphs and return number of processed chars. + + Append all supported glyphs and return number of processed chars. + Composite font supports surrogate pairs. + + String to convert to glyphs. + from index of the text. + to index of the text. + array for a new glyphs, shall not be null. + number of processed chars from text. + + + Append any single glyph, even notdef. + + Append any single glyph, even notdef. + Returns number of processed chars: 2 in case surrogate pair, otherwise 1. + + String to convert to glyphs. + from index of the text. + array for a new glyph, shall not be null. + number of processed chars: 2 in case surrogate pair, otherwise 1 + + + Converts the text into bytes to be placed in the document. + + Converts the text into bytes to be placed in the document. + The conversion is done according to the font and the encoding and the characters + used are stored. + + the text to convert + the conversion + + + + Decodes sequence of character codes (e.g. from content stream) into a + + + + the string which is interpreted as a sequence of character codes. Note, that + + acts as a storage for char code values specific to given font, therefore + individual character codes must not be interpreted as code units of the UTF-16 encoding + + + the + + containing the glyphs encoded by the passed string + + + + + Decodes sequence of character codes (e.g. from content stream) to sequence of glyphs + and appends them to the passed list. + + the list to the end of which decoded glyphs are to be added + + the string which is interpreted as a sequence of character codes. Note, that + + acts as a storage for char code values specific to given font, therefore + individual character codes must not be interpreted as code units of the UTF-16 encoding + + true if all codes where successfully decoded, false otherwise + + + Returns the width of a certain character of this font in 1000 normalized units. + a certain character. + a width in Text Space. + + + Returns the width of a certain character of this font in points. + a certain character. + the font size. + a width in points. + + + Returns the width of a string of this font in 1000 normalized units. + a string content. + a width of string in Text Space. + + + + Gets the width of a + String + in points. + + + the + String + to get the width of + + the font size + the width in points + + + + Gets the descent of a + String + in points. + + + Gets the descent of a + String + in points. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + + + the + String + to get the descent of + + the font size + the descent in points + + + Gets the descent of a char code in points. + + Gets the descent of a char code in points. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + + the char code to get the descent of + the font size + the descent in points + + + + Gets the ascent of a + String + in points. + + + Gets the ascent of a + String + in points. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + + + the + String + to get the ascent of + + the font size + the ascent in points + + + Gets the ascent of a char code in normalized 1000 units. + + Gets the ascent of a char code in normalized 1000 units. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + + the char code to get the ascent of + the font size + the ascent in points + + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + false to include all the glyphs and widths. + + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. When set to + + only the glyphs used will be included in the font. When set to + + the full font will be included and all subset ranges will be removed. + + new value of property subset + + + + Adds a character range when subsetting. + + Adds a character range when subsetting. The range is an int array + where the first element is the start range inclusive and the second element is the + end range inclusive. Several ranges are allowed in the same array. + Note, #setSubset(true) will be called implicitly + therefore this range is an addition to the used glyphs. + + the character range + + + + Checks whether the + + was built with corresponding fontProgram and encoding or CMAP. + + + Checks whether the + + was built with corresponding fontProgram and encoding or CMAP. + Default value is false unless overridden. + + a font name or path to a font program + an encoding or CMAP + true, if the PdfFont was built with the fontProgram and encoding. Otherwise false. + + + + + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + Adds a unique subset prefix to be added to the font name when the font is embedded and subsetted. + + the original font name. + denotes whether font in question is subsetted, i.e. only used symbols are kept in it. + + denotes whether font in question is embedded into the PDF document. + + the font name prefixed with subset if isSubset and isEmbedded are true, + otherwise original font name is returned intact. + + + + + Create + PdfStream + based on + . + + original font data, must be not null. + + array to generate + Length* + keys, must be not null. + + + the PdfStream containing the font or + + , if there is an error reading the font. + + + + Helper method for making an object indirect, if the object already is indirect. + + Helper method for making an object indirect, if the object already is indirect. + Useful for FontDescriptor and FontFile to make possible immediate flushing. + If there is no PdfDocument, mark the object as + MUST_BE_INDIRECT. + + an object to make indirect. + + if current object isn't indirect, returns + + , otherwise + tree + + + + + This class provides helpful methods for creating fonts ready to be used in a + + + + This class provides helpful methods for creating fonts ready to be used in a + + + Note, just created + + is almost empty until it will be flushed, + because it is impossible to fulfill font data until flush. + + + + This is the default encoding to use. + + + This is the default value of the embeddedStrategy variable. + + + This is the default value of the cached variable. + + + + Creates a new instance of default font, namely + + standard font + with + + encoding. + + + Creates a new instance of default font, namely + + standard font + with + + encoding. + Note, if you want to reuse the same instance of default font, you may use + . + + created font + + + + Creates a + + by already existing font dictionary. + + + Creates a + + by already existing font dictionary. + + Note, the font won't be added to any document, + until you add it to + . + While adding to + + , or to + + the font will be made indirect implicitly. + + + method is strongly recommended if you want to get PdfFont by both + existing font dictionary, or just created and hasn't flushed yet. + + the font dictionary to create the font from + + created + + instance + + + + + Creates a + + instance by the path of the font program file and given encoding + and place it inside the + . + + + Creates a + + instance by the path of the font program file and given encoding + and place it inside the + + . If such + + has already been created + and placed inside the + + , then retries its instance instead of creating. + + will be used as embedding strategy. + + the path of the font program file + + the font encoding. See + + + + the + + to cache the font + + + created + + instance + + + + + Creates a + + instance by the path of the font program file and given encoding + and place it inside the + . + + + Creates a + + instance by the path of the font program file and given encoding + and place it inside the + + . If such + + has already been created + and placed inside the + + , then retries its instance instead of creating. + + the path of the font program file + + the font encoding. See + + + + the + + which will define whether the font will be embedded + + + the + + to cache the font + + + created + + instance + + + + + Creates a + + instance by the path of the font program file + + the path of the font program file + + created + + instance + + + + + Creates a + + instance by the path of the font program file and given encoding. + + the path of the font program file + + the font encoding. See + + + + created + + instance + + + + + Created a + + instance given the path to the font file. + + the font program file + + the + + which will define whether the font will be embedded + + + created + + instance + + + + + Created a + + instance given the path to the font file. + + the font program file + + the encoding of the font to be created. See + + + + the + + which will define whether the font will be embedded + + + created + + instance + + + + + Created a + + instance given the path to the font file. + + the font program file + + the encoding of the font to be created. See + + + + the + + which will define whether the font will be embedded + + indicates whether the font will be cached + + created + + instance + + + + + Created a + + instance given the given underlying + + instance. + + + the font program of the + + instance to be created + + + the encoding of the font to be created. See + + + + the + + which will define whether the font will be embedded + + + created + + instance + + + + + Created a + + instance given the given underlying + + instance. + + + the font program of the + + instance to be created + + + the encoding of the font to be created. See + + + + created + + instance + + + + + Created a + + instance given the given underlying + + instance. + + + the font program of the + + instance to be created + + + created + + instance + + + + + Created a + + instance by the bytes of the underlying font program. + + the bytes of the underlying font program + + the encoding of the font to be created. See + + + + created + + instance + + + + + Created a + + instance by the bytes of the underlying font program. + + the bytes of the underlying font program + + the + + which will define whether the font will be embedded + + + created + + instance + + + + + Created a + + instance by the bytes of the underlying font program. + + the bytes of the underlying font program + + the encoding of the font to be created. See + + + + the + + which will define whether the font will be embedded + + + created + + instance + + + + + Created a + + instance by the bytes of the underlying font program. + + the bytes of the underlying font program + + the encoding of the font to be created. See + + + + the + + which will define whether the font will be embedded + + indicates whether the font will be cached + + created + + instance + + + + + Creates a + + instance from the TrueType Collection represented by its byte + contents. + + the byte contents of the TrueType Collection + the index of the font in the collection, zero-based + + the encoding of the font to be created. See + + + + the + + which will define whether the font will be embedded + + indicates whether the font will be cached + + created + + instance + + + + + Creates a + + instance from the TrueType Collection given by the path to the .ttc file. + + the path of the .ttc file + the index of the font in the collection, zero-based + + the encoding of the font to be created. See + + + + the + + which will define whether the font will be embedded + + indicates whether the font will be cached + + created + + instance + + + + + Creates a new instance of + + + the target document of the new font + indicates whether the font will be colorized + created font + + + + Creates a new instance of + + + the target document of the new font. + the PostScript name of the font, shall not be null or empty. + a preferred font family name. + indicates whether the font will be colorized + created font. + + + + Creates + + based on registered + + 's. + + + Creates + + based on registered + + 's. Required font program is expected to be + previously registered by one of the register method from + . + + Path to font file or Standard font name + + Font encoding from + . + + + the + + which will define whether the font will be embedded. + Note, standard font won't be embedded in any case. + + + Font style from + . + + If true font will be cached for another PdfDocument + + created font if required + + was found among registered, otherwise null. + + + + + + + + + + + + Creates + + based on registered + + 's. + + + Creates + + based on registered + + 's. Required font program is expected to be + previously registered by one of the register method from + . + + Path to font file or Standard font name + + Font encoding from + . + + + the + + which will define whether the font will be embedded. + Note, standard font won't be embedded in any case. + + If true font will be cached for another PdfDocument + + created font if required + + was found among registered, otherwise null. + + + + + + + + + + + + Creates + + based on registered + + 's. + + + Creates + + based on registered + + 's. Required font program is expected to be + previously registered by one of the register method from + . + + Path to font file or Standard font name + + Font encoding from + . + + + the + + which will define whether the font will be embedded. + Note, standard font won't be embedded in any case. + + + created font if required + + was found among registered, otherwise null. + + + + + + + + + + + + Creates + + based on registered + + 's. + + + Creates + + based on registered + + 's. Required font program is expected to be + previously registered by one of the register method from + . + + Path to font file or Standard font name + + Font encoding from + . + + + the + + which will define whether the font will be embedded. + Note, standard font won't be embedded in any case. + + + Font style from + . + + + created font if required + + was found among registered, otherwise null. + + + + + + + + + + + + Creates + + based on registered + + 's. + + + Creates + + based on registered + + 's. Required font program is expected to be + previously registered by one of the register method from + . + + Path to font file or Standard font name + + Font encoding from + . + + + created font if required + + was found among registered, otherwise null. + + + + + + + + + + + + Creates + + based on registered + + 's. + + + Creates + + based on registered + + 's. Required font program is expected to be + previously registered by one of the register method from + . + + Path to font file or Standard font name + + created font if required + + was found among registered, otherwise null. + + + + + + + + + + + Register a font by giving explicitly the font family and name. + the font family + the font name + the font path + + + Registers a .ttf, .otf, .afm, .pfm, or a .ttc font file. + + Registers a .ttf, .otf, .afm, .pfm, or a .ttc font file. + In case if TrueType Collection (.ttc), an additional parameter may be specified defining the index of the font + to be registered, e.g. "path/to/font/collection.ttc,0". The index is zero-based. + + the path to a font file + + + Register a font file and use an alias for the font contained in it. + the path to a font file + the alias you want to use for the font + + + Registers all the fonts in a directory. + the directory path to be registered as a font directory path + the number of fonts registered + + + Register fonts in some probable directories. + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + + the number of fonts registered + + + Gets a set of registered font names. + a set of registered fonts + + + Gets a set of registered font families. + a set of registered font families + + + Checks if a certain font is registered. + the name of the font that has to be checked. + true if the font is found, false otherwise + + + Enum values for font embedding strategies. + + + Force embedding fonts. + Force embedding fonts. It expected to get an exception if the font cannot be embedded. + + + Force not embedding fonts. + + Force not embedding fonts. It is expected to get an exception if the font cannot be + not embedded. + + + + Embedding fonts if possible. + + + Not embedding fonts if possible. + + + Forces the output of the width array. + Forces the output of the width array. Only matters for the 14 built-in fonts. + + + The array used with single byte encodings. + + + Currently only exists for the fonts that are parsed from the document. + + Currently only exists for the fonts that are parsed from the document. + In the future, we might provide possibility to add custom mappings after a font has been created from a font file. + + + + Checks whether the glyph is appendable, i.e. has valid unicode and code values. + + not-null + + + + + Get the font encoding. + + the + + + + + Get the mapping of character codes to unicode values based on /ToUnicode entry of font dictionary. + + + the + + built based on /ToUnicode, or null if /ToUnicode is not available + + + + + + + + + + Gets the state of the property. + value of property forceWidthsOutput + + + + Set to + + to force the generation of the widths array. + + + + + to force the generation of the widths array + + + + Indicates that the font is built in, i.e. it is one of the 14 Standard fonts + + + + in case the font is a Standard font and + + otherwise + + + + + Generates the font descriptor for this font or + + if it is one of the 14 built in fonts. + + + the PdfDictionary containing the font descriptor or + . + + + + Note. + Note. For TrueType FontNames.getStyle() is the same to Subfamily(). So, we shouldn't add style to /BaseFont. + + + + + + + This is the default encoding to use. + + + The code length shall not be greater than 4. + + + CIDFont Type0 (Type1 outlines). + + + CIDFont Type2 (TrueType outlines). + + + Get Unicode mapping name from ordering. + the text ordering to base to unicode mapping on + identifies whether the encoding is horizontal or vertical + Unicode mapping name + + + Get Unicode mapping name from ordering. + the text ordering to base to unicode mapping on + Unicode mapping name + + + + + + + + + Gets CMAP associated with the Pdf Font. + CMAP + + + + Generates the CIDFontType2 dictionary. + the font descriptor dictionary + a name of the font + + true, if the font is CIDFontType2 (TrueType glyphs), + otherwise false, i.e. CIDFontType0 (Type1/CFF glyphs) + + fully initialized CIDFont + + + Creates a ToUnicode CMap to allow copy and paste from Acrobat. + the stream representing this CMap or null + + + + + + + If the embedded flag is + + or if the font is one of the 14 built in types, it returns + + , + otherwise the font is read and output in a PdfStream object. + + + + Low-level API class for Type 3 fonts. + + Low-level API class for Type 3 fonts. + + In Type 3 fonts, glyphs are defined by streams of PDF graphics operators. + These streams are associated with character names. A separate encoding entry + maps character codes to the appropriate character names for the glyphs. + + Note, that this class operates in a special way with glyph space units. + In the code when working with fonts, iText expects that 1000 units of glyph-space correspond + to 1 unit of text space. For Type3 fonts this is not always the case and depends on FontMatrix. + That's why in + + the font matrix and all font metrics in glyph space units + are "normalized" in such way, that 1 to 1000 relation is preserved. This is done on + Type3 font initialization, and is reverted back on font flushing, because the actual content + streams of type3 font glyphs are left with original coordinates based on original font matrix. + See also ISO-32000-2, 9.2.4 "Glyph positioning and metrics": + + "The glyph coordinate system is the space in which an individual character’s glyph is defined. All path + coordinates and metrics shall be interpreted in glyph space. For all font types except Type 3, the units + of glyph space are one-thousandth of a unit of text space; for a Type 3 font, the transformation from + glyph space to text space shall be defined by a font matrix specified in an explicit FontMatrix entry in + the font." + + Note, that because of this when processing Type3 glyphs content streams either process them completely independent + from this class or take this normalization into account. + + To be able to be wrapped with this + + the + + must be indirect. + + + + Used to normalize font metrics expressed in glyph space units. + + Used to normalize font metrics expressed in glyph space units. See + . + + + + Gets the transformation matrix that defines relation between text and glyph spaces. + the font matrix + + + Creates a Type 3 font. + defines whether the glyph color is specified in the glyph descriptions in the font. + + + + Creates a Type 3 font. + the target document of the new font. + the PostScript name of the font, shall not be null or empty. + a preferred font family name. + indicates whether the font will be colorized + + + Creates a Type 3 font based on an existing font dictionary, which must be an indirect object. + a dictionary of type /Font, must have an indirect reference. + + + Sets the PostScript name of the font. + the PostScript name of the font, shall not be null or empty. + + + Sets a preferred font family name. + a preferred font family name. + + + Sets font weight. + + integer form 100 to 900. See + . + + + + Sets cap height. + integer in glyph-space 1000-units + + + Sets the PostScript italic angle. + + Sets the PostScript italic angle. + + Italic angle in counter-clockwise degrees from the vertical. Zero for upright text, negative for text that leans to the right (forward). + + in counter-clockwise degrees from the vertical + + + Sets font width in css notation (font-stretch property) + + + . + + + + Sets Font descriptor flags. + font descriptor flags. + + + + + Returns a + + by unicode. + + glyph unicode + + + + glyph, or + + if this font does not contain glyph for the unicode + + + + Gets count of glyphs in Type 3 font. + number of glyphs. + + + Defines a glyph. + Defines a glyph. If the character was already defined it will return the same content + the character to match this glyph. + the advance this character will have + + the X lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + + + the Y lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + + + the X upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + + + the Y upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + + a content where the glyph can be defined + + + + Gets the first empty code that could be passed to + + + code from 1 to 255 or -1 if all slots are busy. + + + FontProgram class for Type 3 font. + + FontProgram class for Type 3 font. Contains map of + . + Type3Glyphs belong to a particular pdf document. + Note, an instance of Type3Font can not be reused for multiple pdf documents. + + + + Stores glyphs without associated unicode. + + + Creates a Type 3 font program. + defines whether the glyph color is specified in the glyph descriptions in the font. + + + + Returns a glyph by unicode. + glyph unicode + + + + glyph, or + + if this font does not contain glyph for the unicode + + + + Returns a glyph by its code. + Returns a glyph by its code. These glyphs may not have unicode. + glyph code + + + + glyph, or + + if this font does not contain glyph for the code + + + + Returns number of glyphs for this font. + + Returns number of glyphs for this font. + Its also count glyphs without unicode. + See + . + + + + int + number off all glyphs + + + + Sets the PostScript name of the font. + + Sets the PostScript name of the font. + + If full name is null, it will be set as well. + + the PostScript name of the font, shall not be null or empty. + + + Sets a preferred font family name. + a preferred font family name. + + + Sets font weight. + + integer form 100 to 900. See + . + + + + Sets font width in css notation (font-stretch property) + + + . + + + + + + + + + + + + + + + + Sets Font descriptor flags. + + + + . + + + + The content where Type3 glyphs are written to. + + + Creates a Type3Glyph canvas with a new Content Stream. + the document that this canvas is created for + + + Creates a Type3Glyph canvas with a non-empty Content Stream. + + + PdfStream + from existed document. + + + document to which + PdfStream + belongs. + + + + Indicates if the glyph color specified in the glyph description or not. + whether the glyph color is specified in the glyph description or not + + + Writes the width and optionally the bounding box parameters for a glyph + the advance this character will have + + the X lower left corner of the glyph bounding box. If the isColor option is + true the value is ignored + + + the Y lower left corner of the glyph bounding box. If the isColor option is + true the value is ignored + + + the X upper right corner of the glyph bounding box. If the isColor option is + true the value is ignored + + + the Y upper right corner of the glyph bounding box. If the isColor option is + true the value is ignored + + + defines whether the glyph color is specified in the glyph description in the font. + The consequence of value true is that the bounding box parameters are ignored. + + + + Creates Image XObject from image and adds it to canvas. + + Creates Image XObject from image and adds it to canvas. Performs additional checks to make + sure that we only add mask images to not colorized type 3 fonts. + + + the + PdfImageXObject + object + + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + true if to add image as in-line. + created Image XObject or null in case of in-line image (asInline = true). + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The type of affine transformation. + + The type of affine transformation. See + . + + + + The TYPE_UNKNOWN is an initial type value. + + + The min value equivalent to zero. + The min value equivalent to zero. If absolute value less then ZERO it considered as zero. + + + The values of transformation matrix + + + The transformation type + + + Method returns type of affine transformation. + + Method returns type of affine transformation. + + Transform matrix is + m00 m01 m02 + m10 m11 m12 + + According analytic geometry new basis vectors are (m00, m01) and (m10, m11), + translation vector is (m02, m12). Original basis vectors are (1, 0) and (0, 1). + Type transformations classification: + + + + - new basis equals original one and zero translation + + + + - translation vector isn't zero + + + + - vectors length of new basis equals + + + + - vectors length of new basis doesn't equal + + + + - new basis vector orientation differ from original one + + + + - new basis is rotated by 90, 180, 270, or 360 degrees + + + + - new basis is rotated by arbitrary angle + + + + - transformation can't be inversed + + + + the type of this AffineTransform + + + Set this affine transformation to represent a rotation over the passed angle + angle to rotate over in radians + + + + Set this affine transformation to represent a rotation over the passed angle, + using the passed point as the center of rotation + + angle to rotate over in radians + x-coordinate of center of rotation + y-coordinate of center of rotation + + + Get an affine transformation representing a counter-clockwise rotation over the passed angle + angle in radians to rotate over + + + + representing the rotation + + + + + Get an affine transformation representing a counter-clockwise rotation over the passed angle, + using the passed point as the center of rotation + + angle in radians to rotate over + x-coordinate of center of rotation + y-coordinate of center of rotation + + + + representing the rotation + + + + Add a counter-clockwise rotation to this transformation + angle in radians to rotate over + + + + Add a counter-clockwise rotation to this transformation, + using the passed point as the center of rotation + + angle in radians to rotate over + x-coordinate of center of rotation + y-coordinate of center of rotation + + + Multiply matrix of two AffineTransform objects + - the AffineTransform object is a multiplicand + - the AffineTransform object is a multiplier + an AffineTransform object that is a result of t1 multiplied by matrix t2. + + + + Creates a "deep copy" of this AffineTransform, meaning the object returned by this method will be independent + of the object being cloned. + + the copied AffineTransform. + + + Represents a Bezier curve. + + + + If the distance between a point and a line is less than + this constant, then we consider the point lies on the line. + + + + + In the case when neither the line ((x1, y1), (x4, y4)) passes + through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we + use the square of the sum of the distances mentioned below in + compare to this field as the criterion of good approximation. + + + In the case when neither the line ((x1, y1), (x4, y4)) passes + through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we + use the square of the sum of the distances mentioned below in + compare to this field as the criterion of good approximation. + 1. The distance between the line and (x2, y2) + 2. The distance between the line and (x3, y3) + + + + + The Manhattan distance is used in the case when either the line + ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) + or (x1, y1) = (x4, y4). + + + The Manhattan distance is used in the case when either the line + ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) + or (x1, y1) = (x4, y4). The essential observation is that when + the curve is a uniform speed straight line from end to end, the + control points are evenly spaced from beginning to end. Our measure + of how far we deviate from that ideal uses distance of the middle + controls: point 2 should be halfway between points 1 and 3; point 3 + should be halfway between points 2 and 4. + + + + Constructs new bezier curve. + Curve's control points. + + + + + + + You can adjust precision of the approximation by varying the following + parameters: + + , + + , + . + + + + + containing points of piecewise linear approximation + for this bezier curve. + + + + Represents segment from a PDF path. + + + Treat base points as the points which are enough to construct a shape. + + Treat base points as the points which are enough to construct a shape. + E.g. for a bezier curve they are control points, for a line segment - the start and the end points + of the segment. + + + Ordered + + consisting of shape's base points. + + + + Represents a line. + + + Constructs a new zero-length line starting at zero. + + + Constructs a new line based on the given coordinates. + x-coordinate of start point of this Line + y-coordinate of start point of this Line + x-coordinate of end point of this Line + y-coordinate of end point of this Line + + + Constructs a new line based on the given coordinates. + start point of this Line + end point of this Line + + + Represents a line segment in a particular coordinate system. + Represents a line segment in a particular coordinate system. This class is immutable. + + + Start vector of the segment. + + + End vector of the segment. + + + Creates a new line segment. + the start point of a line segment. + the end point of a line segment. + + + the start point + + + the end point + + + the length of this line segment + + + Computes the bounding rectangle for this line segment. + + Computes the bounding rectangle for this line segment. The rectangle has a rotation 0 degrees + with respect to the coordinate system that the line system is in. For example, if a line segment + is 5 unit long and sits at a 37 degree angle from horizontal, the bounding rectangle will have + origin of the lower left hand end point of the segment, with width = 4 and height = 3. + + the bounding rectangle + + + Transforms the segment by the specified matrix + the matrix for the transformation + the transformed segment + + + Checks if a segment contains another segment in itself + a segment to be checked + true if this segment contains other one, false otherwise + + + Checks if a segment contains a given point in itself + a point to be checked + true if this segment contains given point, false otherwise + + + + Keeps all the values of a 3 by 3 matrix and allows you to + do some math with matrices. + + + + the row=1, col=1 position ('a') in the matrix. + + + the row=1, col=2 position ('b') in the matrix. + + + the row=1, col=3 position (always 0 for 2-D) in the matrix. + + + the row=2, col=1 position ('c') in the matrix. + + + the row=2, col=2 position ('d') in the matrix. + + + the row=2, col=3 position (always 0 for 2-D) in the matrix. + + + the row=3, col=1 ('e', or X translation) position in the matrix. + + + the row=3, col=2 ('f', or Y translation) position in the matrix. + + + the row=3, col=3 position (always 1 for 2-D) in the matrix. + + + The values inside the matrix (the identity matrix by default). + + The values inside the matrix (the identity matrix by default). + + For reference, the indeces are as follows: +
    I11 I12 I13 +
    I21 I22 I23 +
    I31 I32 I33 +
    +
    + + constructs a new Matrix with identity. + + + Constructs a matrix that represents translation. + x-axis translation + y-axis translation + + + Creates a Matrix with 9 specified entries. + element at position (1,1) + element at position (1,2) + element at position (1,3) + element at position (2,1) + element at position (2,2) + element at position (2,3) + element at position (3,1) + element at position (3,2) + element at position (3,3) + + + Creates a Matrix with 6 specified entries. + + Creates a Matrix with 6 specified entries. + The third column will always be [0 0 1] + (row, column) + + element at (1,1) + element at (1,2) + element at (2,1) + element at (2,2) + element at (3,1) + element at (3,2) + + + Gets a specific value inside the matrix. + + Gets a specific value inside the matrix. + + For reference, the indeces are as follows: +
    I11 I12 I13 +
    I21 I22 I23 +
    I31 I32 I33 +
    + an array index corresponding with a value inside the matrix + the value at that specific position. +
    + + multiplies this matrix by 'b' and returns the result. + + multiplies this matrix by 'b' and returns the result. + See http://en.wikipedia.org/wiki/Matrix_multiplication + + The matrix to multiply by + the resulting matrix + + + Adds a matrix from this matrix and returns the results. + the matrix to subtract from this matrix + a Matrix object + + + Subtracts a matrix from this matrix and returns the results. + the matrix to subtract from this matrix + a Matrix object + + + Computes the determinant of the matrix. + the determinant of the matrix + + + Checks equality of matrices. + the other Matrix that needs to be compared with this matrix. + true if both matrices are equal + + + + Generates a hash code for this object. + the hash code of this object + + + + Generates a String representation of the matrix. + the values, delimited with tabs and newlines. + + + + NoninvertibleTransformException + Denis M. Kishenko + + + Creates a new NoninvertibleTransformException. + the detail message. + + + + Rotates + + clockwise. + + + the rotated + . + + + + + Creates a "deep copy" of this PageSize, meaning the object returned by this method will be independent + of the object being cloned. + + + Creates a "deep copy" of this PageSize, meaning the object returned by this method will be independent + of the object being cloned. + Note that although the return type of this method is + + , + the actual type of the returned object is + . + + the copied PageSize. + + + Paths define shapes, trajectories, and regions of all sorts. + + Paths define shapes, trajectories, and regions of all sorts. They shall be used + to draw lines, define the shapes of filled areas, and specify boundaries for clipping + other graphics. A path shall be composed of straight and curved line segments, which + may connect to one another or may be disconnected. + + + + + A + + of subpaths forming this path. + + + + Adds the subpath to this path. + The subpath to be added to this path. + + + Adds the subpaths to this path. + + + + of subpaths to be added to this path. + + + + The current point is the trailing endpoint of the segment most recently added to the current path. + + The current point. + + + Begins a new subpath by moving the current point to coordinates (x, y). + x-coordinate of the new point + y-coordinate of the new point + + + Appends a straight line segment from the current point to the point (x, y). + x-coordinate of the new point + y-coordinate of the new point + + + Appends a cubic Bezier curve to the current path. + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3). + + x-coordinate of the first control point + y-coordinate of the first control point + x-coordinate of the second control point + y-coordinate of the second control point + x-coordinate of the third control point + y-coordinate of the third control point + + + Appends a cubic Bezier curve to the current path. + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) using the current point and + (x2, y2) as intermediate control points. Note that current point is both + used as the starting point and a control point + + x-coordinate of the second intermediate control point + y-coordinate of the second intermediate control point + x-coordinate of the ending point + y-coordinate of the ending point + + + Appends a cubic Bezier curve to the current path. + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) using (x1, y1) and + (x3, y3) as control points. Note that (x3, y3) is used both + as both a control point and an ending point + + x-coordinate of the first intermediate control point + y-coordinate of the first intermediate control point + x-coordinate of the second intermediate control point (and ending point) + y-coordinate of the second intermediate control point (and ending point) + + + Appends a rectangle to the current path as a complete subpath. + the rectangle to append to the current path + + + Appends a rectangle to the current path as a complete subpath. + lower left x-coordinate of the rectangle + lower left y-coordinate of the rectangle + width of the rectangle + height of the rectangle + + + Closes the current subpath. + + + Closes all subpathes contained in this path. + + + Adds additional line to each closed subpath and makes the subpath unclosed. + + Adds additional line to each closed subpath and makes the subpath unclosed. + The line connects the last and the first points of the subpaths. + + Indices of modified subpaths. + + + Path is empty if it contains no subpaths. + true in case the path is empty and false otherwise + + + Class that represent rectangle object. + + + Creates new instance. + the x coordinate of lower left point + the y coordinate of lower left point + the width value + the height value + + + Creates new instance of rectangle with (0, 0) as the lower left point. + the width value + the height value + + + + Creates the copy of given + + + + the copied + + + + + Calculates the common rectangle which includes all the input rectangles. + list of input rectangles. + common rectangle. + + + + Gets the rectangle as it looks on the rotated page + and returns the rectangle in coordinates relevant to the true page origin. + + + Gets the rectangle as it looks on the rotated page + and returns the rectangle in coordinates relevant to the true page origin. + This rectangle can be used to add annotations, fields, and other objects + to the rotated page. + + the rectangle as it looks on the rotated page. + the page on which one want to process the rectangle. + the newly created rectangle with translated coordinates. + + + Calculates the bounding box of passed points. + the points which appear inside the area + the bounding box of passed points. + + + Convert rectangle to an array of points + array of four extreme points of rectangle + + + Get the rectangle representation of the intersection between this rectangle and the passed rectangle + + the rectangle to find the intersection with + + the intersection rectangle if the passed rectangles intersects with this rectangle, + a rectangle representing a line if the intersection is along an edge or + a rectangle representing a point if the intersection is a single point, + null otherwise + + + + Check if this rectangle contains the passed rectangle. + + Check if this rectangle contains the passed rectangle. + A rectangle will envelop itself, meaning that for any rectangle + + the expression + rect.contains(rect) + always returns true. + + a rectangle which is to be checked if it is fully contained inside this rectangle. + true if this rectangle contains the passed rectangle, false otherwise. + + + Check if this rectangle and the passed rectangle overlap + a rectangle which is to be checked if it overlaps the passed rectangle + true if there is overlap of some kind + + + Check if this rectangle and the passed rectangle overlap + a rectangle which is to be checked if it overlaps the passed rectangle + + if greater than zero, then this is the maximum distance that one rectangle can go to another, but + they will not overlap, if less than zero, then this is the minimum required distance between the + rectangles so that they do not overlap + + true if there is overlap of some kind + + + Sets the rectangle by the coordinates, specifying its lower left and upper right points. + + Sets the rectangle by the coordinates, specifying its lower left and upper right points. May be used in chain. +
    +
    + Note: this method will normalize coordinates, so the rectangle will have non negative width and height, + and its x and y coordinates specified lower left point. +
    + the X coordinate of lower left point + the Y coordinate of lower left point + the X coordinate of upper right point + the Y coordinate of upper right point + + this + + instance. + +
    + + Gets the X coordinate of lower left point. + the X coordinate of lower left point. + + + Sets the X coordinate of lower left point. + Sets the X coordinate of lower left point. May be used in chain. + the X coordinate of lower left point to be set. + + this + + instance. + + + + Gets the Y coordinate of lower left point. + the Y coordinate of lower left point. + + + Sets the Y coordinate of lower left point. + Sets the Y coordinate of lower left point. May be used in chain. + the Y coordinate of lower left point to be set. + + this + + instance. + + + + Gets the width of rectangle. + the width of rectangle. + + + Sets the width of rectangle. + Sets the width of rectangle. May be used in chain. + the the width of rectangle to be set. + + this + + instance. + + + + Gets the height of rectangle. + the height of rectangle. + + + Sets the height of rectangle. + Sets the height of rectangle. May be used in chain. + the the width of rectangle to be set. + + this + + instance. + + + + Increases the height of rectangle by the given value. + Increases the height of rectangle by the given value. May be used in chain. + the value of the extra height to be added. + + this + + instance. + + + + Decreases the height of rectangle by the given value. + Decreases the height of rectangle by the given value. May be used in chain. + the value of the extra height to be subtracted. + + this + + instance. + + + + Increases the width of rectangle by the given value. + Increases the width of rectangle by the given value. May be used in chain. + the value of the extra wudth to be added. + + this + + instance. + + + + Decreases the width of rectangle by the given value. + Decreases the width of rectangle by the given value. May be used in chain. + the value of the extra width to be subtracted. + + this + + instance. + + + + Gets the X coordinate of the left edge of the rectangle. + + Gets the X coordinate of the left edge of the rectangle. Same as: + getX(). + + the X coordinate of the left edge of the rectangle. + + + Gets the X coordinate of the right edge of the rectangle. + + Gets the X coordinate of the right edge of the rectangle. Same as: + getX() + getWidth(). + + the X coordinate of the right edge of the rectangle. + + + Gets the Y coordinate of the upper edge of the rectangle. + + Gets the Y coordinate of the upper edge of the rectangle. Same as: + getY() + getHeight(). + + the Y coordinate of the upper edge of the rectangle. + + + Gets the Y coordinate of the lower edge of the rectangle. + + Gets the Y coordinate of the lower edge of the rectangle. Same as: + getY(). + + the Y coordinate of the lower edge of the rectangle. + + + Decreases the y coordinate. + the value on which the position will be changed. + + this + + instance. + + + + Increases the y coordinate. + the value on which the position will be changed. + + this + + instance. + + + + Increases the x coordinate. + the value on which the position will be changed. + + this + + instance. + + + + Decreases the x coordinate. + the value on which the position will be changed. + + this + + instance. + + + + Change the rectangle according the specified margins. + the value on which the top y coordinate will change. + the value on which the right x coordinate will change. + the value on which the bottom y coordinate will change. + the value on which the left x coordinate will change. + + if + + the rectangle will expand, otherwise it will shrink + + the rectangle with applied margins + + + Checks if rectangle have common points with line, specified by two points. + the x coordinate of first line's point. + the y coordinate of first line's point. + the x coordinate of second line's point. + the y coordinate of second line's point. + + + + if rectangle have common points with line and + + otherwise. + + + + Gets the string representation of rectangle. + the string representation of rectangle. + + + + Creates a "deep copy" of this rectangle, meaning the object returned by this method will be independent + of the object being cloned. + + the copied rectangle. + + + Compares instance of this rectangle with given deviation equals to 0.0001 + + the + + to compare with. + + + + + if the difference between corresponding rectangle values is less than deviation and + + otherwise. + + + + Compares instance of this rectangle with given deviation. + + the + + to compare with. + + the deviation value. + + + + if the difference between corresponding rectangle values is less than deviation and + + otherwise. + + + + Create a list of bounding rectangles from an 8 x n array of Quadpoints. + 8xn array of numbers representing 4 points + a list of bounding rectangles for the passed quadpoints + + + Create the bounding rectangle for the given array of quadpoints. + an array containing 8 numbers that correspond to 4 points. + The smallest orthogonal rectangle containing the quadpoints. + + + Public helper class for transforming segments and paths. + + + Method for transforming a bezier curve. + + Method for transforming a bezier curve. + The method creates a new transformed bezier curve without changing the original curve. + + the source bezier curve for transformation + the transformation matrix + the new transformed bezier curve + + + Method for transforming a line. + + Method for transforming a line. + The method creates a new transformed line without changing the original line. + + the source line for transformation + the transformation matrix + the new transformed line + + + Method for transforming a path. + + Method for transforming a path. + The method creates a new transformed path without changing the original path. + + the source path for transformation + the transformation matrix + the new transformed path + + + As subpath is a part of a path comprising a sequence of connected segments. + + + Creates a new SubPath instance. + + + Copy constructor. + + + + which contents will be used to create this + + + + + Constructs a new subpath starting at the given point. + the point this subpath starts at + + + Constructs a new subpath starting at the given point. + x-coordinate of the start point of subpath + y-coordinate of the start point of subpath + + + Sets the start point of the subpath. + the point this subpath starts at + + + Sets the start point of the subpath. + x-coordinate of the start pint + y-coordinate of the start pint + + + The point this subpath starts at. + + + The last point of the subpath. + + + Adds a segment to the subpath. + + Adds a segment to the subpath. + Note: each new segment shall start at the end of the previous segment. + + new segment. + + + + + + comprising all the segments + the subpath made on. + + + + Checks whether subpath is empty or not. + true if the subpath is empty, false otherwise. + + + + true if this subpath contains only one point and it is not closed, + false otherwise + + + + + true if this subpath contains only one point and it is closed, + false otherwise + + + + Returns a boolean value indicating whether the subpath must be closed or not. + + Returns a boolean value indicating whether the subpath must be closed or not. + Ignore this value if the subpath is a rectangle because in this case it is already closed + (of course if you paint the path using re operator) + + boolean value indicating whether the path must be closed or not. + + + + See + + + boolean value indicating whether the path is closed or not. + + + Returns a boolean indicating whether the subpath is degenerate or not. + + Returns a boolean indicating whether the subpath is degenerate or not. + A degenerate subpath is the subpath consisting of a single-point closed path or of + two or more points at the same coordinates. + + boolean value indicating whether the path is degenerate or not. + + + + + + containing points of piecewise linear approximation + for this subpath. + + + + Represents a vector (i.e. a point in space). + + Represents a vector (i.e. a point in space). This class is completely + unrelated to the + + class in the standard JRE. +

    + For many PDF related operations, the z coordinate is specified as 1 + This is to support the coordinate transformation calculations. If it + helps, just think of all PDF drawing operations as occurring in a single plane + with z=1. +
    +
    + + index of the X coordinate + + + index of the Y coordinate + + + index of the Z coordinate + + + the values inside the vector + + + Creates a new Vector + the X coordinate + the Y coordinate + the Z coordinate + + + Gets the value from a coordinate of the vector + the index of the value to get (I1, I2 or I3) + a coordinate value + + + Computes the cross product of this vector and the specified matrix + the matrix to cross this vector with + the result of the cross product + + + Computes the difference between this vector and the specified vector + the vector to subtract from this one + the results of the subtraction + + + Computes the cross product of this vector and the specified vector + the vector to cross this vector with + the cross product + + + Normalizes the vector (i.e. returns the unit vector in the same orientation as this vector) + the unit vector + + + Multiplies the vector by a scalar + the scalar to multiply by + the result of the scalar multiplication + + + Computes the dot product of this vector with the specified vector + the vector to dot product this vector with + the dot product + + + Computes the length of this vector + + Computes the length of this vector +
    + Note: If you are working with raw vectors from PDF, be careful - + the Z axis will generally be set to 1. If you want to compute the + length of a vector, subtract it from the origin first (this will set + the Z axis to 0). +
    + For example: + aVector.subtract(originVector).length(); +
    + the length of this vector +
    + + Computes the length squared of this vector. + + Computes the length squared of this vector. + The square of the length is less expensive to compute, and is often + useful without taking the square root. +

    + Note: See the important note under + +
    + the square of the length of the vector +
    + + + + + Calculates the hashcode using the values. + + + + + + Class that bundles all the error message templates as constants. + + + + Message warns about unexpected product name which was mentioned as involved into PDF + processing. + + + Message warns about unexpected product name which was mentioned as involved into PDF + processing. List of params: + + 0th is a name of unknown product; + + + + + + Message warns that some event was reported but wasn't confirmed. + + Message warns that some event was reported but wasn't confirmed. Probably some processing has failed. + List of params: + + 0th is a name of product for which event was reported; + + 1st is an event type; + + + + + + This is a general class for alphabet numbering. + + This is a general class for alphabet numbering. + You can specify an alphabet and convert an integer into the corresponding + alphabet number representation. + E.g.: if the alphabet is English letters 'a' to 'z', then + 1 is represented as "a", ..., 26 is represented as "z", + 27 is represented as "aa" and so on. + + + + + Translates a positive integer (not equal to zero) + into an alphabet number using the letters from the specified alphabet. + + the number + the array containing all possible letters from the alphabet + a translated number representation + + + This class can produce String combinations representing an armenian numeral. + + This class can produce String combinations representing an armenian numeral. + See https://en.wikipedia.org/wiki/Armenian_numerals + + + + Converts an integer to armenian numeral representation. + a number greater than zero to be converted to armenian notation + an armenian numeral representation of an integer. + + + + This class is responsible for converting integer numbers to their + English alphabet letter representations. + + + + Converts the given number to its English alphabet lowercase string representation. + + Converts the given number to its English alphabet lowercase string representation. + E.g. 1 will be converted to "a", 2 to "b", ..., 27 to "aa", and so on. + + the number greater than zero to be converted + English alphabet lowercase string representation of an integer + + + Converts the given number to its English alphabet uppercase string representation. + + Converts the given number to its English alphabet uppercase string representation. + E.g. 1 will be converted to "A", 2 to "B", ..., 27 to "AA", and so on. + + the number greater than zero to be converted + English alphabet uppercase string representation of an integer + + + Converts the given number to its English alphabet string representation. + + Converts the given number to its English alphabet string representation. + E.g. for upperCase set to false, + 1 will be converted to "a", 2 to "b", ..., 27 to "aa", and so on. + + the number greater than zero to be converted + whether to use uppercase or lowercase alphabet + English alphabet string representation of an integer + + + This class can produce String combinations representing a georgian numeral. + + This class can produce String combinations representing a georgian numeral. + See https://en.wikipedia.org/wiki/Georgian_numerals + + + + Converts the given number to its georgian numeral representation. + a number greater than zero to be converted to georgian notation + a georgian numeral representation of an integer. + + + + This class is responsible for converting integer numbers to their + Greek alphabet letter representations. + + + This class is responsible for converting integer numbers to their + Greek alphabet letter representations. + We are aware of the fact that the original Greek numbering is different. + See http://www.cogsci.indiana.edu/farg/harry/lan/grknum.htm#ancient + but this isn't implemented yet; the main reason being the fact that we + need a font that has the obsolete Greek characters qoppa and sampi. + So we use standard 24 letter Greek alphabet + + + + Converts the given number to its Greek alphabet lowercase string representation. + + Converts the given number to its Greek alphabet lowercase string representation. + E.g. 1 will be converted to a string consisting of a unicode character for greek small letter alpha, + 2 - a string consisting of a unicode character for greek small letter beta, + 25 - a string consisting of two unicode characters for greek small letter alpha, and so on. + + the number greater than zero to be converted + Greek alphabet lowercase string representation of an integer. + + + Converts the given number to its Greek alphabet uppercase string representation. + + Converts the given number to its Greek alphabet uppercase string representation. + E.g. 1 will be converted to a string consisting of a unicode character for greek capital letter alpha, + 2 - a string consisting of a unicode character for greek capital letter beta, + 25 - a string consisting of two unicode characters for greek capital letter alpha, and so on. + + the number greater than zero to be converted + Greek alphabet uppercase string representation of an integer. + + + Converts the given number to its Greek alphabet string representation. + + Converts the given number to its Greek alphabet string representation. + E.g. for upperCase set to false, + 1 will be converted to a string consisting of a unicode character for greek small letter alpha, + 2 - a string consisting of a unicode character for greek small letter beta, + 25 - a string consisting of two unicode characters for greek small letter alpha, and so on. + + the number greater than zero to be converted + whether to use uppercase or lowercase alphabet + Greek alphabet string representation of an integer. + + + Converts the given number to its Greek alphabet string representation. + + Converts the given number to its Greek alphabet string representation. + E.g. for upperCase set to false, + 1 will be converted to a string consisting of a unicode character for greek small letter alpha + if symbolFont is set to false, + otherwise - a string consisting of the corresponding symbol code in Symbol standard font; + 26 will be converted to a string consisting of two unicode characters: + greek small letter alpha followed by greek small letter beta + if symbolFont is set to false, + otherwise - a string consisting of the corresponding sequence of symbol codes in Symbol standard font. + + the number greater than zero to be converted + whether to use uppercase or lowercase alphabet + if true, then the string representation will be returned ready to write it in Symbol font + + Greek alphabet string representation of an integer. + + + Converts a given greek unicode character code into the code of the corresponding char Symbol font. + + original unicode char + the corresponding symbol code in Symbol standard font + + + This class can produce String combinations representing a roman number. + + This class can produce String combinations representing a roman number. + The first roman numbers are: I, II, III, IV, V, VI, VII, VIII, IX, X + See http://en.wikipedia.org/wiki/Roman_numerals + + + + Array with Roman digits. + + + Returns a lower case roman representation of an integer. + a number to be converted to roman notation + a lower case roman representation of an integer + + + Returns an upper case roman representation of an integer. + a number to be converted to roman notation + an upper case roman representation of an integer + + + Returns a roman representation of an integer. + a number to be converted to roman notation + + true for upper case representation, + false for lower case one + + a roman representation of an integer + + + Returns a roman representation of an integer. + the original number + the roman number representation (lower case) + + + Helper class for Roman Digits + + + part of a roman number + + + value of the roman digit + + + can the digit be used as a prefix + + + Constructs a roman digit + the roman digit + the value + can it be used as a prefix + + + A wrapper for action dictionaries (ISO 32000-1 section 12.6). + + A wrapper for action dictionaries (ISO 32000-1 section 12.6). + An action dictionary defines the characteristics and behaviour of an action. + + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + A possible submit value + + + Constructs an empty action that can be further modified. + + + + Constructs a + + instance with a given dictionary. + + + Constructs a + + instance with a given dictionary. It can be used for handy + property reading in reading mode or modifying in stamping mode. + + the dictionary to construct the wrapper around + + + Creates a GoTo action (section 12.6.4.2 of ISO 32000-1) via a given destination. + the desired destination of the action + created action + + + + Creates a GoTo action (section 12.6.4.2 of ISO 32000-1) via a given + + name. + + + + + name + + created action + + + Creates a GoToR action, or remote action (section 12.6.4.3 of ISO 32000-1). + the file in which the destination shall be located + the destination in the remote document to jump to + a flag specifying whether to open the destination document in a new window + created action + + + Creates a GoToR action, or remote action (section 12.6.4.3 of ISO 32000-1). + the file in which the destination shall be located + the destination in the remote document to jump to + created action + + + Creates a GoToR action, or remote action (section 12.6.4.3 of ISO 32000-1). + the remote destination file to jump to + the remote destination document page to jump to + created action + + + Creates a GoToR action, or remote action (section 12.6.4.3 of ISO 32000-1). + the remote destination file to jump to + the remote destination document page to jump to + a flag specifying whether to open the destination document in a new window + created action + + + Creates a GoToR action, or remote action (section 12.6.4.3 of ISO 32000-1). + the remote destination file to jump to + the string destination in the remote document to jump to + a flag specifying whether to open the destination document in a new window + created action + + + Creates a GoToR action, or remote action (section 12.6.4.3 of ISO 32000-1). + the remote destination file to jump to + the string destination in the remote document to jump to + created action + + + Creates a GoToE action, or embedded file action (section 12.6.4.4 of ISO 32000-1). + the destination in the target to jump to + + if true, the destination document should be opened in a new window; + if false, the destination document should replace the current document in the same window + + + A target dictionary specifying path information to the target document. + Each target dictionary specifies one element in the full path to the target and + may have nested target dictionaries specifying additional elements + + created action + + + Creates a GoToE action, or embedded file action (section 12.6.4.4 of ISO 32000-1). + The root document of the target relative to the root document of the source + the destination in the target to jump to + + if true, the destination document should be opened in a new window; + if false, the destination document should replace the current document in the same window + + + A target dictionary specifying path information to the target document. + Each target dictionary specifies one element in the full path to the target and + may have nested target dictionaries specifying additional elements + + created action + + + Creates a Launch action (section 12.6.4.5 of ISO 32000-1). + the application that shall be launched or the document that shall beopened or printed + + a flag specifying whether to open the destination document in a new window + created action + + + Creates a Launch action (section 12.6.4.5 of ISO 32000-1). + the application that shall be launched or the document that shall beopened or printed + + created action + + + Creates a Thread action (section 12.6.4.6 of ISO 32000-1). + + Creates a Thread action (section 12.6.4.6 of ISO 32000-1). + A thread action jumps to a specified bead on an article thread (see 12.4.3, "Articles"), + in either the current document or a different one. Table 205 shows the action dictionary + entries specific to this type of action. + + the file containing the thread. If this entry is absent, the thread is in the current file + + the destination thread + the bead in the destination thread + created action + + + Creates a Thread action (section 12.6.4.6 of ISO 32000-1). + + Creates a Thread action (section 12.6.4.6 of ISO 32000-1). + A thread action jumps to a specified bead on an article thread (see 12.4.3, "Articles"), + in either the current document or a different one. Table 205 shows the action dictionary + entries specific to this type of action. + + the file containing the thread. If this entry is absent, the thread is in the current file + + created action + + + Creates a URI action (section 12.6.4.7 of ISO 32000-1). + the uniform resource identifier to resolve + created action + + + Creates a URI action (section 12.6.4.7 of ISO 32000-1). + the uniform resource identifier to resolve + a flag specifying whether to track the mouse position when the URI is resolved + created action + + + Creates a Sound action (section 12.6.4.8 of ISO 32000-1). + Creates a Sound action (section 12.6.4.8 of ISO 32000-1). Deprecated in PDF 2.0. + a sound object defining the sound that shall be played (see section 13.3 of ISO 32000-1) + + created action + + + Creates a Sound action (section 12.6.4.8 of ISO 32000-1). + Creates a Sound action (section 12.6.4.8 of ISO 32000-1). Deprecated in PDF 2.0. + a sound object defining the sound that shall be played (see section 13.3 of ISO 32000-1) + + the volume at which to play the sound, in the range -1.0 to 1.0. Default value: 1.0 + + a flag specifying whether to play the sound synchronously or asynchronously. + If this flag is true, the conforming reader retains control, allowing no further user + interaction other than canceling the sound, until the sound has been completely played. + Default value: false + + + a flag specifying whether to repeat the sound indefinitely + If this entry is present, the Synchronous entry shall be ignored. Default value: false + + a flag specifying whether to mix this sound with any other sound already playing + created action + + + Creates a Movie annotation (section 12.6.4.9 of ISO 32000-1). + Creates a Movie annotation (section 12.6.4.9 of ISO 32000-1). Deprecated in PDF 2.0. + a movie annotation identifying the movie that shall be played + the title of a movie annotation identifying the movie that shall be played + + the operation that shall be performed on the movie. Shall be one of the following: + + , + + , + + , + + + created annotation + + + Creates a Hide action (section 12.6.4.10 of ISO 32000-1). + the annotation to be hidden or shown + a flag indicating whether to hide the annotation (true) or show it (false) + + created action + + + Creates a Hide action (section 12.6.4.10 of ISO 32000-1). + the annotations to be hidden or shown + a flag indicating whether to hide the annotation (true) or show it (false) + + created action + + + Creates a Hide action (section 12.6.4.10 of ISO 32000-1). + + a text string giving the fully qualified field name of an interactive form field whose + associated widget annotation or annotations are to be affected + + a flag indicating whether to hide the annotation (true) or show it (false) + + created action + + + Creates a Hide action (section 12.6.4.10 of ISO 32000-1). + + a text string array giving the fully qualified field names of interactive form fields whose + associated widget annotation or annotations are to be affected + + a flag indicating whether to hide the annotation (true) or show it (false) + + created action + + + Creates a Named action (section 12.6.4.11 of ISO 32000-1). + + the name of the action that shall be performed. Shall be one of the following: + + , + + , + + , + + + created action + + + Creates a Set-OCG-State action (section 12.6.4.12 of ISO 32000-1). + + a list of + + state descriptions + + created action + + + Creates a Set-OCG-State action (section 12.6.4.12 of ISO 32000-1). + + states a list of + + state descriptions + + + If true, indicates that radio-button state relationships between optional content groups + should be preserved when the states are applied + + created action + + + Creates a Rendition action (section 12.6.4.13 of ISO 32000-1). + the name of the media clip, for use in the user interface. + a full file specification or form XObject that specifies the actual media data + an ASCII string identifying the type of data + a screen annotation + created action + + + Creates a JavaScript action (section 12.6.4.16 of ISO 32000-1). + a text string containing the JavaScript script to be executed. + created action + + + Creates a Submit-Form Action (section 12.7.5.2 of ISO 32000-1). + a uniform resource locator, as described in 7.11.5, "URL Specifications" + + an array identifying which fields to include in the submission or which to exclude, + depending on the setting of the Include/Exclude flag in the Flags entry. + This is an optional parameter and can be null + + + a set of flags specifying various characteristics of the action (see Table 237 of ISO 32000-1). + Default value to be passed: 0. + + created action + + + Creates a Reset-Form Action (section 12.7.5.3 of ISO 32000-1). + + an array identifying which fields to reset or which to exclude from resetting, + depending on the setting of the Include/Exclude flag in the Flags entry (see Table 239 of ISO 32000-1). + + + a set of flags specifying various characteristics of the action (see Table 239 of ISO 32000-1). + Default value to be passed: 0. + + created action + + + + Adds an additional action to the provided + + < + + > wrapper. + + the wrapper to add an additional action to + + a + + specifying the name of an additional action + + + the + + to add as an additional action + + + + Adds a chained action. + the next action or sequence of actions that shall be performed after the current action + + + + + Inserts the value into the underlying object of this + + and associates it with the specified key. + + + Inserts the value into the underlying object of this + + and associates it with the specified key. + If the key is already present in this + + , this method will override the old value with the specified one. + + key to insert or to override + the value to associate with the specified key + + this + + instance + + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + + + Validates not remote destination against the PDF specification and in case of invalidity logs a warning. + + + Validates not remote destination against the PDF specification and in case of invalidity logs a warning. + See section 12.3.2.2 of ISO 32000-1. + + + the + destination + to be validated + + + + This is a helper class for optional content states use in Set-OCG-State actions. + + This is a helper class for optional content states use in Set-OCG-State actions. + See + . + + + + + Can be: + + , + + , + + + + + Optional content group dictionaries + + + Constructs an optional content state object. + + a + + describing the state. Shall be one of the following: + + , + + , + + + a list of the OCG dictionaries + + + Gets the state the optional content groups should be switched to + + the state, one of the following: + + , + + , + + + + + Gets a list of optional content groups that shall have the state changed + the list of optional content groups + + + + Gets a list of + + that is describing this particular optional content group states. + + + a list of + + for construction of a + + + + + A wrapper for annotations additional actions dictionaries. + + A wrapper for annotations additional actions dictionaries. + See section 12.6.3 Table 197 of ISO 32000-1. + An annotation additional actions dictionary defines the event handlers for annotations + + + + + Returns the + + for the OnEnter event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnEnter event, or removes it when action is null. + + + The + + to set or null to remove the action + + + + + Returns the + + for the OnExit event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnExit event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Returns the + + for the OnMouseDown event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnMouseDown event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Returns the + + for the OnMouseUp event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnMouseUp event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Returns the + + for the OnFocus event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnFocus event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Returns the + + for the OnLostFocus event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnLostFocus event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Returns the + + for the OnPageOpened event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnPageOpened event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Returns the + + for the OnPageClosed event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnPageClosed event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Returns the + + for the OnPageVisible event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnPageVisible event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Returns the + + for the OnPageLostView event if there is any, or null. + + + + + or null + + + + + Sets the + + to perform on the OnPageLostView event, or removes it when action is null. + + + + + The action to set or null to remove the action + + + + + Lists every + + for all documented events for an annotation's additional actions. + + + Lists every + + for all documented events for an annotation's additional actions. + See section 12.6.3 Table 197 of ISO 32000-1 + + The list of actions + + + + If exists, returns the + + for this event, otherwise returns null. + + + The + + for the event. + + + the + + or null + + + + Sets the action for an event, or removes it when the action is null. + the event to set or remove the action for + + the + + to set or null + + + + + + + This class is a wrapper of media clip data dictionary that defines the data for a media object that can be played. + + + + + Constructs a new + + wrapper using an existing dictionary. + + the dictionary to construct the wrapper from + + + + Constructs a new + + wrapper around a newly created dictionary. + + the name of the file to create a media clip for + a file specification that specifies the actual media data + an ASCII string identifying the type of data + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + + + This a wrapper around a rendition dictionary. + This a wrapper around a rendition dictionary. See ISO 32000-1 sections 13.2.3.2, 13.2.3.3. + + + + Creates a new wrapper around an existing + + + a rendition object to create a wrapper for + + + Creates a new wrapper around a newly created media rendition dictionary object. + a text string specifying the name of the file to display + a file specification that specifies the actual media data + an ASCII string identifying the type of data + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + + + + A target dictionary locates the target in relation to the source, + in much the same way that a relative path describes the physical + relationship between two files in a file system. + + + A target dictionary locates the target in relation to the source, + in much the same way that a relative path describes the physical + relationship between two files in a file system. Target dictionaries may be + nested recursively to specify one or more intermediate targets before reaching the final one. + + + + + Creates a new + + object by the underlying dictionary. + + the underlying dictionary object + + a new + + object by the underlying dictionary + + + + + Creates a new + + object given its type. + + + Creates a new + + object given its type. The type must be either + + , or + + . If it is + + , additional entries must be specified + according to the spec. + + the relationship between the current document and the target + + + Creates a new target object pointing to the parent of the current document. + + created + + + + + Creates a new target object pointing to the child of the current document. + + created + + + + + Creates a new target object pointing to a file in the EmbeddedFiles name tree. + the name of the file in the EmbeddedFiles name tree + created object + + + Creates a new target object pointing to a file attachment annotation. + + a named destination in the current document that + provides the page number of the file attachment annotation + + + a unique annotation identifier ( + + entry) of the annotation + + created object + + + Creates a new target object pointing to a file attachment annotation. + the number of the page in the current document, one-based + the index of the annotation in the Annots entry of the page, zero-based + created object + + + + Sets the name of the file in the EmbeddedFiles name tree for the child target located + in the EmbeddedFiles. + + the name of the file + this object wrapper + + + + Gets name of the file in the EmbeddedFiles name tree for the child target located + in the EmbeddedFiles. + + the name of the child file for this target + + + Sets the /P and /A values corresponding to provided annotation, which is already added to a page. + + the annotation to be set + the corresponding document + this object wrapper + + + Gets the annotation specified by /A and /P entry values. + specifies the corresponding document + the annotation specified by /A and /P entry value. + + + Sets a target dictionary specifying additional path information to the target document. + + Sets a target dictionary specifying additional path information to the target document. + If this entry is absent, the current document is the target file containing the destination. + + the additional path target dictionary + this object wrapper + + + Get a target dictionary specifying additional path information to the target document. + + Get a target dictionary specifying additional path information to the target document. + If the current target object is the final node in the target path, null is returned. + + a target dictionary specifying additional path information to the target document + + + + This is a convenient method to put key-value pairs to the underlying + . + + + the key, a + + instance + + the value + this object wrapper + + + + + + This class is a wrapper around a Windows launch parameter dictionary. + + + Creates a new wrapper around an existing Windows launch parameter dictionary. + the dictionary to create a wrapper for + + + Creates a new wrapper around a newly created Windows launch parameter dictionary. + + the file name of the application that shall be launched or the document that shall be opened or printed, + in standard Windows pathname format. If the name string includes a backslash character (\), + the backslash shall itself be preceded by a backslash. + + + + Creates a new wrapper around a newly created Windows launch parameter dictionary. + + the file name of the application that shall be launched or the document that shall be opened or printed, + in standard Windows pathname format. If the name string includes a backslash character (\), + the backslash shall itself be preceded by a backslash + + a bye string specifying the default directory in standard DOS syntax + + an ASCII string specifying the operation to perform on the file. Shall be one of the following: + "open", "print" + + + a parameter string that shall be passed to the application. + This entry shall be omitted if a document is abound to be opened + + + + + + + Setter for the border style. + + Setter for the border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + original border style dictionary. + The new value for the annotation's border style. + Updated border style dictionary entry. + + + Setter for the dashed border style. + + Setter for the dashed border style. This property has affect only if + + style was used for border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + original border style dictionary. + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + Updated border style dictionary entry. + + + Helper class for setting annotation default appearance. + + Helper class for setting annotation default appearance. The class provides setters for + font color, font size and font itself. + + Note that only standard font names that do not require font resources are supported. + + Note that it is possible to create annotation with custom font name in DA, but this require + manual resource modifications (you have to put font in DR of AcroForm and use + its resource name in DA) and only Acrobat supports that workflow. + + + + + Creates the default instance of + . + + + Creates the default instance of + . + + The default font is + + . The default font size is 12. + + + + + Sets the + + 's default font. + + + one of + standard annotation fonts + to be set as + the default one for this + + + + this + + + + + + Sets the + + 's default font. + + + one of + extended annotation fonts + to be set as + the default one for this + + + + this + + + + + + Sets the + + 's default font size. + + + font size to be set as the + + 's default font size + + + this + + + + + + Sets the + + 's default font color. + + + + + to be set as the + + 's + default font color + + + this + + + + + + Sets the + + 's default font color. + + + + + to be set as the + + 's + default font color + + + this + + + + + + Sets the + + 's default font color. + + + + + to be set as the + + 's + default font color + + + this + + + + + + Gets the + + 's representation as + . + + + the + + representation of this + + + + + Extended annotation fonts that are supported only by Acrobat + + + Standard fonts that can be used in pdf annotation + + + The interior color which is used to fill areas specific for different types of annotation. + + The interior color which is used to fill areas specific for different types of annotation. For + + and polyline annotation ( + + - the annotation's line endings, for + + and + + - the annotation's rectangle or ellipse, for + + - the redacted + region after the affected content has been removed. + + + + + of either + + , + + or + + type which defines + interior color of the annotation, or null if interior color is not specified. + + + + This class represents 3D annotations by which 3D artwork shall be represented in a PDF document. + + This class represents 3D annotations by which 3D artwork shall be represented in a PDF document. + See also ISO-32000-2 13.6.2 "3D annotations". + + + + + Creates a + + instance. + + + the annotation rectangle, defining the location of the annotation on the page + in default user space units. See + . + + 3D artwork which is represented by the annotation + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + + + + Sets the default initial view of the 3D artwork that shall be used when the annotation is activated. + + + the default initial view of the 3D artwork that shall be used + when the annotation is activated + + + this + + instance + + + + Gets the default initial view of the 3D artwork that shall be used when the annotation is activated. + + the default initial view of the 3D artwork that shall be used when the annotation is activated + + + + Sets the activation dictionary that defines the times at which the annotation shall be + activated and deactivated and the state of the 3D artwork instance at those times. + + + dictionary that defines the times at which the annotation + shall be activated and deactivated and the state of the 3D artwork + instance at those times. + + + this + + instance + + + + + Gets the activation dictionary that defines the times at which the annotation shall be + activated and deactivated and the state of the 3D artwork instance at those times. + + + the activation dictionary that defines the times at which the annotation shall be + activated and deactivated and the state of the 3D artwork instance at those times. + + + + Sets the primary use of the 3D annotation. + + Sets the primary use of the 3D annotation. + + If true, it is intended to be interactive; if false, it is intended to be manipulated programmatically, + as with an ECMAScript animation. Interactive PDF processors may present different user interface controls + for interactive 3D annotations (for example, to rotate, pan, or zoom the artwork) than for those + managed by a script or other mechanism. + + Default value: true. + + + if true, it is intended to be interactive; if false, it is intended to be + manipulated programmatically + + + this + + instance + + + + Indicates whether the 3D annotation is intended to be interactive or not. + whether the 3D annotation is intended to be interactive or not + + + Sets the 3D view box, which is the rectangular area in which the 3D artwork shall be drawn. + + Sets the 3D view box, which is the rectangular area in which the 3D artwork shall be drawn. + It shall be within the rectangle specified by the annotation’s Rect entry and shall be expressed + in the annotation’s target coordinate system. + + Default value: the annotation’s Rect entry, expressed in the target coordinate system. + This value is [-w/2 -h/2 w/2 h/2], where w and h are the width and height, respectively, of Rect. + + the rectangular area in which the 3D artwork shall be drawn + + this + + instance + + + + Gets the 3D view box, which is the rectangular area in which the 3D artwork shall be drawn. + the 3D view box, which is the rectangular area in which the 3D artwork shall be drawn. + + + This is a super class for the annotation dictionary wrappers. + + This is a super class for the annotation dictionary wrappers. Derived classes represent + different standard types of annotations. See ISO-320001 12.5.6, "Annotation Types." + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Annotation flag. + + Annotation flag. + See also + + and ISO-320001, table 165. + + + + Widget annotation highlighting mode. + + Widget annotation highlighting mode. See ISO-320001, Table 188 (H key). + Also see + . + + + + Widget annotation highlighting mode. + + Widget annotation highlighting mode. See ISO-320001, Table 188 (H key). + Also see + . + + + + Widget annotation highlighting mode. + + Widget annotation highlighting mode. See ISO-320001, Table 188 (H key). + Also see + . + + + + Widget annotation highlighting mode. + + Widget annotation highlighting mode. See ISO-320001, Table 188 (H key). + Also see + . + + + + Widget annotation highlighting mode. + + Widget annotation highlighting mode. See ISO-320001, Table 188 (H key). + Also see + . + + + + Annotation border style. + Annotation border style. See ISO-320001, Table 166 (S key). + + + Annotation border style. + Annotation border style. See ISO-320001, Table 166 (S key). + + + Annotation border style. + Annotation border style. See ISO-320001, Table 166 (S key). + + + Annotation border style. + Annotation border style. See ISO-320001, Table 166 (S key). + + + Annotation border style. + Annotation border style. See ISO-320001, Table 166 (S key). + + + Annotation state. + + Annotation state. See ISO-320001 12.5.6.3 "Annotation States" and Table 171 in particular. + Also see + . + + + + Annotation state. + + Annotation state. See ISO-320001 12.5.6.3 "Annotation States" and Table 171 in particular. + Also see + . + + + + Annotation state. + + Annotation state. See ISO-320001 12.5.6.3 "Annotation States" and Table 171 in particular. + Also see + . + + + + Annotation state. + + Annotation state. See ISO-320001 12.5.6.3 "Annotation States" and Table 171 in particular. + Also see + . + + + + Annotation state. + + Annotation state. See ISO-320001 12.5.6.3 "Annotation States" and Table 171 in particular. + Also see + . + + + + Annotation state. + + Annotation state. See ISO-320001 12.5.6.3 "Annotation States" and Table 171 in particular. + Also see + . + + + + Annotation state. + + Annotation state. See ISO-320001 12.5.6.3 "Annotation States" and Table 171 in particular. + Also see + . + + + + Annotation state model. + + Annotation state model. See ISO-320001, Table 172 (StateModel key). + Also see + . + + + + Annotation state model. + + Annotation state model. See ISO-320001, Table 172 (StateModel key). + Also see + . + + + + + Factory method that creates the type specific + + from the given + + that represents annotation object. + + + Factory method that creates the type specific + + from the given + + that represents annotation object. This method is useful for property reading in reading mode or + modifying in stamping mode. See derived classes of this class to see possible specific annotation types + created. + + + a + + that represents annotation in the document. + + + created + . + + + + + Gets a + + which value is a subtype of this annotation. + + + Gets a + + which value is a subtype of this annotation. + See ISO-320001 12.5.6, "Annotation Types" for the reference to the possible types. + + subtype of this annotation. + + + Sets the layer this annotation belongs to. + the layer this annotation belongs to + + + + Gets the text that shall be displayed for the annotation or, if this type of annotation does not display text, + an alternate description of the annotation’s contents in human-readable form. + + annotation text content. + + + + Sets the text that shall be displayed for the annotation or, if this type of annotation does not display text, + an alternate description of the annotation’s contents in human-readable form. + + + a + + containing text content to be set to the annotation. + + + this + + instance. + + + + + Sets the text that shall be displayed for the annotation or, if this type of annotation does not display text, + an alternate description of the annotation’s contents in human-readable form. + + + a java + + containing text content to be set to the annotation. + + + this + + instance. + + + + + Gets a + + that represents a page of the document on which annotation is placed, + i.e. which has this annotation in it's /Annots array. + + + + + that is a page pdf object or null if annotation is not added to the page yet. + + + + + Gets a + + on which annotation is placed. + + + + + on which annotation is placed or null if annotation is not placed yet. + + + + Method that modifies annotation page property, which defines to which page annotation belongs. + + Method that modifies annotation page property, which defines to which page annotation belongs. + Keep in mind that this doesn't actually add an annotation to the page, + it should be done via + . + Also you don't need to set this property manually, this is done automatically on addition to the page. + + + the + + to which annotation will be added. + + + this + + instance. + + + + + Gets the annotation name, a text string uniquely identifying it among all the + annotations on its page. + + + a + + with annotation name as it's value or null if name + is not specified. + + + + + Sets the annotation name, a text string uniquely identifying it among all the + annotations on its page. + + + a + + to be set as annotation name. + + + this + + instance. + + + + The date and time when the annotation was most recently modified. + + The date and time when the annotation was most recently modified. + This is an optional property of the annotation. + + + a + + with the modification date as it's value or null if date is not specified. + + + + The date and time when the annotation was most recently modified. + + a + + with date. The format should be a date string as described + in ISO-320001 7.9.4, "Dates". + + + this + + instance. + + + + A set of flags specifying various characteristics of the annotation (see ISO-320001 12.5.3, "Annotation Flags"). + + + A set of flags specifying various characteristics of the annotation (see ISO-320001 12.5.3, "Annotation Flags"). + For specific annotation flag constants see + . + Default value: 0. + + an integer interpreted as one-bit flags specifying various characteristics of the annotation. + + + Sets a set of flags specifying various characteristics of the annotation (see ISO-320001 12.5.3, "Annotation Flags"). + + + Sets a set of flags specifying various characteristics of the annotation (see ISO-320001 12.5.3, "Annotation Flags"). + On the contrary from + + , this method sets a complete set of enabled and disabled flags at once. + If not set specifically the default value is 0. + + an integer interpreted as set of one-bit flags specifying various characteristics of the annotation. + + + this + + instance. + + + + Sets a flag that specifies a characteristic of the annotation to enabled state (see ISO-320001 12.5.3, "Annotation Flags"). + + + Sets a flag that specifies a characteristic of the annotation to enabled state (see ISO-320001 12.5.3, "Annotation Flags"). + On the contrary from + + , this method sets only specified flags to enabled state, + but doesn't disable other flags. + Possible flags: + + + + - If set, do not display the annotation if it does not belong to one of the + standard annotation types and no annotation handler is available. If clear, display such unknown annotation + using an appearance stream specified by its appearance dictionary, if any. + + + + - If set, do not display or print the annotation or allow it to interact with + the user, regardless of its annotation type or whether an annotation handler is available. + + + + - If set, print the annotation when the page is printed. If clear, never print + the annotation, regardless of whether it is displayed on the screen. + + + + - If set, do not scale the annotation’s appearance to match the magnification of + the page. The location of the annotation on the page (defined by the upper-left corner of its annotation + rectangle) shall remain fixed, regardless of the page magnification.} + + + + - If set, do not rotate the annotation’s appearance to match the rotation + of the page. The upper-left corner of the annotation rectangle shall remain in a fixed location on the page, + regardless of the page rotation. + + + + - If set, do not display the annotation on the screen or allow it to interact + with the user. The annotation may be printed (depending on the setting of the Print flag) but should be considered + hidden for purposes of on-screen display and user interaction. + + + + - If set, do not allow the annotation to interact with the user. The annotation + may be displayed or printed (depending on the settings of the NoView and Print flags) but should not respond to mouse + clicks or change its appearance in response to mouse motions. + + + + - If set, do not allow the annotation to be deleted or its properties + (including position and size) to be modified by the user. However, this flag does not restrict changes to + the annotation’s contents, such as the value of a form field. + + + + - If set, invert the interpretation of the NoView flag for certain events. + + + + - If set, do not allow the contents of the annotation to be modified + by the user. This flag does not restrict deletion of the annotation or changes to other annotation properties, + such as position and size. + + + + - an integer interpreted as set of one-bit flags which will be enabled for this annotation. + + + this + + instance. + + + + Resets a flag that specifies a characteristic of the annotation to disabled state (see ISO-320001 12.5.3, "Annotation Flags"). + + an integer interpreted as set of one-bit flags which will be reset to disabled state. + + this + + instance. + + + + + Checks if the certain flag that specifies a characteristic of the annotation + is in enabled state (see ISO-320001 12.5.3, "Annotation Flags"). + + + Checks if the certain flag that specifies a characteristic of the annotation + is in enabled state (see ISO-320001 12.5.3, "Annotation Flags"). + This method allows only one flag to be checked at once, use constants listed in + . + + + an integer interpreted as set of one-bit flags. Only one bit must be set in this integer, otherwise + exception is thrown. + + true if the given flag is in enabled state. + + + + An appearance dictionary specifying how the annotation shall be presented visually on the page during its + interactions with the user (see ISO-320001 12.5.5, "Appearance Streams"). + + + An appearance dictionary specifying how the annotation shall be presented visually on the page during its + interactions with the user (see ISO-320001 12.5.5, "Appearance Streams"). An appearance dictionary is a dictionary + containing one or several appearance streams or subdictionaries. + + + an appearance + + or null if it is not specified. + + + + Specific appearance object corresponding to the specific appearance type. + + Specific appearance object corresponding to the specific appearance type. This object might be either an appearance + stream or an appearance subdictionary. In the latter case, the subdictionary defines multiple appearance streams + corresponding to different appearance states of the annotation. See ISO-320001 12.5.5, "Appearance Streams". + + + a + + specifying appearance type. Possible types are + Normal + , + Rollover + and + Down. + + + null if their is no such appearance type or an appearance object which might be either + an appearance stream or an appearance subdictionary. + + + + The normal appearance is used when the annotation is not interacting with the user. + + The normal appearance is used when the annotation is not interacting with the user. + This appearance is also used for printing the annotation. + See also + . + + an appearance object which might be either an appearance stream or an appearance subdictionary. + + + + The rollover appearance is used when the user moves the cursor into the annotation’s active area + without pressing the mouse button. + + + The rollover appearance is used when the user moves the cursor into the annotation’s active area + without pressing the mouse button. If not specified normal appearance is used. + See also + . + + + null if rollover appearance is not specified or an appearance object which might be either + an appearance stream or an appearance subdictionary. + + + + The down appearance is used when the mouse button is pressed or held down within the annotation’s active area. + + + The down appearance is used when the mouse button is pressed or held down within the annotation’s active area. + If not specified normal appearance is used. + See also + . + + + null if down appearance is not specified or an appearance object which might be either + an appearance stream or an appearance subdictionary. + + + + Sets a specific type of the appearance. + + Sets a specific type of the appearance. See + + and + + for more info. + + + a + + specifying appearance type. Possible types are + Normal + , + Rollover + and + Down. + + an appearance object which might be either an appearance stream or an appearance subdictionary. + + + this + + instance. + + + + Sets normal appearance. + + Sets normal appearance. See + + and + + for more info. + + an appearance object which might be either an appearance stream or an appearance subdictionary. + + + this + + instance. + + + + Sets rollover appearance. + + Sets rollover appearance. See + + and + + for more info. + + an appearance object which might be either an appearance stream or an appearance subdictionary. + + + this + + instance. + + + + Sets down appearance. + + Sets down appearance. See + + and + + for more info. + + an appearance object which might be either an appearance stream or an appearance subdictionary. + + + this + + instance. + + + + + Sets a specific type of the appearance using + + wrapper. + + + Sets a specific type of the appearance using + + wrapper. + This method is used to set only an appearance subdictionary. See + + and + + for more info. + + + a + + specifying appearance type. Possible types are + Normal + , + Rollover + and + Down. + + + an appearance subdictionary wrapped in + . + + + this + + instance. + + + + + Sets normal appearance using + + wrapper. + + + Sets normal appearance using + + wrapper. This method is used to set only + appearance subdictionary. See + + and + + for more info. + + + an appearance subdictionary wrapped in + . + + + this + + instance. + + + + + Sets rollover appearance using + + wrapper. + + + Sets rollover appearance using + + wrapper. This method is used to set only + appearance subdictionary. See + + and + + for more info. + + + an appearance subdictionary wrapped in + . + + + this + + instance. + + + + + Sets down appearance using + + wrapper. + + + Sets down appearance using + + wrapper. This method is used to set only + appearance subdictionary. See + + and + + for more info. + + + an appearance subdictionary wrapped in + . + + + this + + instance. + + + + + The annotation’s appearance state, which selects the applicable appearance stream + from an appearance subdictionary if there is such. + + + The annotation’s appearance state, which selects the applicable appearance stream + from an appearance subdictionary if there is such. See + + for more info. + + + a + + which defines selected appearance state. + + + + + Sets the annotation’s appearance state, which selects the applicable appearance stream + from an appearance subdictionary. + + + Sets the annotation’s appearance state, which selects the applicable appearance stream + from an appearance subdictionary. See + + for more info. + + + a + + which defines appearance state to be selected. + + + this + + instance. + + + + An array specifying the characteristics of the annotation’s border. + + An array specifying the characteristics of the annotation’s border. + The array consists of three numbers defining the horizontal corner radius, + vertical corner radius, and border width, all in default user space units. + If the corner radii are 0, the border has square (not rounded) corners; if + the border width is 0, no border is drawn. + + The array may have a fourth element, an optional dash array (see ISO-320001 8.4.3.6, "Line Dash Pattern"). + + + an + + specifying the characteristics of the annotation’s border. + + + + Sets the characteristics of the annotation’s border. + + an + + specifying the characteristics of the annotation’s border. + See + + for more detailes. + + + this + + instance. + + + + Sets the characteristics of the annotation’s border. + + an + + specifying the characteristics of the annotation’s border. + See + + for more detailes. + + + this + + instance. + + + + + An array of numbers in the range 0.0 to 1.0, representing a colour used for the following purposes: + + The background of the annotation’s icon when closed + + The title bar of the annotation’s pop-up window + + The border of a link annotation + + + The number of array elements determines the colour space in which the colour shall be defined: + + 0 - No colour; transparent + + 1 - DeviceGray + + 3 - DeviceRGB + + 4 - DeviceCMYK + + + + An array of numbers in the range 0.0 to 1.0, representing an annotation colour. + + + Sets an annotation color. + + Sets an annotation color. For more details on annotation color purposes and the format + of the passing + + see + . + + an array of numbers in the range 0.0 to 1.0, specifying color. + + this + + instance. + + + + Sets an annotation color. + + Sets an annotation color. For more details on annotation color purposes and the format + of the passing array see + . + + an array of numbers in the range 0.0 to 1.0, specifying color. + + this + + instance. + + + + Sets an annotation color. + + Sets an annotation color. For more details on annotation color purposes + see + . + + + + + object of the either + + , + + or + + type. + + + this + + instance. + + + + + The integer key of the annotation’s entry in the structural parent tree + (see ISO-320001 14.7.4.4, "Finding Structure Elements from Content Items"). + + integer key in structural parent tree or -1 if annotation is not tagged. + + + + Sets he integer key of the annotation’s entry in the structural parent tree + (see ISO-320001 14.7.4.4, "Finding Structure Elements from Content Items"). + + + Sets he integer key of the annotation’s entry in the structural parent tree + (see ISO-320001 14.7.4.4, "Finding Structure Elements from Content Items"). + Note: Normally, there is no need to take care of this manually, struct parent index is set automatically + if annotation is added to the tagged document's page. + + + integer which is to be the key of the annotation's entry + in structural parent tree. + + + this + + instance. + + + + Sets annotation title. + Sets annotation title. This property affects not all annotation types. + + a + + which value is to be annotation title. + + + this + + instance. + + + + Annotation title. + + Annotation title. For example for markup annotations, the title is the text label that shall be displayed in the + title bar of the annotation’s pop-up window when open and active. For movie annotation Movie actions + (ISO-320001 12.6.4.9, "Movie Actions") may use this title to reference the movie annotation. + + + + + which value is an annotation title or null if it isn't specified. + + + + The annotation rectangle, defining the location of the annotation on the page in default user space units. + + + a + + which specifies a rectangle by two diagonally opposite corners. + Typically, the array is of form [llx lly urx ury]. + + + this + + instance. + + + + The annotation rectangle, defining the location of the annotation on the page in default user space units. + + + a + + which specifies a rectangle by two diagonally opposite corners. + Typically, the array is of form [llx lly urx ury]. + + + + PDF 2.0. + + PDF 2.0. A language identifier overriding the document’s language identifier to + specify the natural language for all text in the annotation except where overridden by + other explicit language specifications + + the lang entry + + + PDF 2.0. + + PDF 2.0. A language identifier overriding the document’s language identifier to + specify the natural language for all text in the annotation except where overridden by + other explicit language specifications + + language identifier + + this + + instance + + + + PDF 2.0. + PDF 2.0. The blend mode that shall be used when painting the annotation onto the page + the blend mode + + + PDF 2.0. + PDF 2.0. The blend mode that shall be used when painting the annotation onto the page + blend mode + + this + + instance + + + + PDF 2.0. + + PDF 2.0. When regenerating the annotation's appearance stream, this is the + opacity value that shall be used for all nonstroking + operations on all visible elements of the annotation in its closed state (including its + background and border) but not the popup window that appears when the annotation is + opened. + + opacity value for nonstroking operations. Returns 1.0 (default value) if entry is not present + + + PDF 2.0. + + PDF 2.0. When regenerating the annotation's appearance stream, this is the + opacity value that shall be used for all nonstroking + operations on all visible elements of the annotation in its closed state (including its + background and border) but not the popup window that appears when the annotation is + opened. + + opacity for nonstroking operations + + this + + instance + + + + PDF 2.0. + + PDF 2.0. When regenerating the annotation's appearance stream, this is the + opacity value that shall be used for stroking all visible + elements of the annotation in its closed state, including its background and border, but + not the popup window that appears when the annotation is opened. + + opacity for stroking operations, including background and border + + + PDF 2.0. + + PDF 2.0. When regenerating the annotation's appearance stream, this is the + opacity value that shall be used for stroking all visible + elements of the annotation in its closed state, including its background and border, but + not the popup window that appears when the annotation is opened. + + opacity for stroking operations, including background and border + + this + + object + + + + + Inserts the value into into the underlying + + of this + + and associates it + with the specified key. + + + Inserts the value into into the underlying + + of this + + and associates it + with the specified key. If the key is already present in this + + , this method will override + the old value with the specified one. + + key to insert or to override + the value to associate with the specified key + + this + + instance. + + + + + Removes the specified key from the underlying + + of this + . + + key to be removed + + this + + instance. + + + + + + Adds file associated with PDF annotation and identifies the relationship between them. + + + + Adds file associated with PDF annotation and identifies the relationship between them. + + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method adds file to array value of the AF key in the annotation dictionary. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + file specification dictionary of associated file + + + Returns files associated with PDF annotation. + defines whether AF arrays will be created if it doesn't exist + associated files array + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + + A set of four numbers describing the numerical differences between two rectangles: + the Rect entry of the annotation and the actual boundaries of the underlying caret. + + + null if not specified, otherwise a + + with four numbers which correspond to the + differences in default user space between the left, top, right, and bottom coordinates of Rect and those + of the inner rectangle, respectively. + + + + + A set of four numbers describing the numerical differences between two rectangles: + the Rect entry of the annotation and the actual boundaries of the underlying caret. + + + a + + with four numbers which correspond to the differences in default user space between + the left, top, right, and bottom coordinates of Rect and those of the inner rectangle, respectively. + Each value shall be greater than or equal to 0. The sum of the top and bottom differences shall be + less than the height of Rect, and the sum of the left and right differences shall be less than + the width of Rect. + + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + That entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). If an annotation dictionary includes the BS entry, then the Border + entry is ignored. If annotation includes AP (see + + ) it takes + precedence over the BS entry. For more info on BS entry see ISO-320001, Table 166. + + + + + which is a border style dictionary or null if it is not specified. + + + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + See ISO-320001, Table 166 and + + for more info. + + + a border style dictionary specifying the line width and dash pattern that shall be used + in drawing the annotation’s border. + + + this + + instance. + + + + Setter for the annotation's preset border style. + + Setter for the annotation's preset border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + The new value for the annotation's border style. + + this + + instance. + + + + + Setter for the annotation's preset dashed border style. + + Setter for the annotation's preset dashed border style. This property has affect only if + + style was used for the annotation border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + + this + + instance. + + + + + A set of four numbers describing the numerical differences between two rectangles: + the Rect entry of the annotation and the actual boundaries of the underlying circle. + + + null if not specified, otherwise a + + with four numbers which correspond to the + differences in default user space between the left, top, right, and bottom coordinates of Rect and those + of the inner rectangle, respectively. + + + + + A set of four numbers describing the numerical differences between two rectangles: + the Rect entry of the annotation and the actual boundaries of the underlying circle. + + + a + + with four numbers which correspond to the differences in default user space between + the left, top, right, and bottom coordinates of Rect and those of the inner rectangle, respectively. + Each value shall be greater than or equal to 0. The sum of the top and bottom differences shall be + less than the height of Rect, and the sum of the left and right differences shall be less than + the width of Rect. + + + this + + instance. + + + + Gets a border effect dictionary that specifies an effect that shall be applied to the border of the annotations. + + + a + + , which is a border effect dictionary (see ISO-320001, Table 167). + + + + Sets a border effect dictionary that specifies an effect that shall be applied to the border of the annotations. + + + a + + which contents shall be specified in accordance to ISO-320001, Table 167. + + + this + + instance. + + + + The interior color which is used to fill the annotation's ellipse. + + + + of either + + , + + or + + type which defines + interior color of the annotation, or null if interior color is not specified. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color + which is used to fill the annotation's ellipse. + + + a + + of numbers in the range 0.0 to 1.0. The number of array elements determines + the colour space in which the colour is defined: 0 - No colour, transparent; 1 - DeviceGray, + 3 - DeviceRGB, 4 - DeviceCMYK. For the + + number of elements shall be + equal to 3 (which defines DeviceRGB colour space). + + + this + + instance. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color + which is used to fill the annotation's ellipse. + + an array of floats in the range 0.0 to 1.0. + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + The name of an icon that is used in displaying the annotation. + + The name of an icon that is used in displaying the annotation. Possible values are different for different + annotation types. See + . + + + a + + that specifies the icon for displaying annotation, or null if icon name is not specified. + + + + The name of an icon that is used in displaying the annotation. + + a + + that specifies the icon for displaying annotation. Possible values are different + for different annotation types: + + GraphPushPin + + PaperclipTag + + + Additional names may be supported as well. + + + this + + instance. + + + + Text justification options. + + + Creates new instance + - rectangle that specifies annotation position and bounds on page + - the displayed text + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + The default appearance string that shall be used in formatting the text. + The default appearance string that shall be used in formatting the text. See ISO-32001 12.7.3.3, "Variable Text". + + + a + + that specifies the default appearance, or null if default appereance is not specified. + + + + The default appearance string that shall be used in formatting the text. + The default appearance string that shall be used in formatting the text. See ISO-32001 12.7.3.3, "Variable Text". + + + a + + that specifies the default appearance. + + + this + + instance. + + + + + A code specifying the form of quadding (justification) that is used in displaying the annotation's text: + 0 - Left-justified, 1 - Centered, 2 - Right-justified. + + + A code specifying the form of quadding (justification) that is used in displaying the annotation's text: + 0 - Left-justified, 1 - Centered, 2 - Right-justified. Default value: 0 (left-justified). + + a code specifying the form of quadding (justification), returns the default value if not explicitly specified. + + + + + A code specifying the form of quadding (justification) that is used in displaying the annotation's text: + 0 - Left-justified, 1 - Centered, 2 - Right-justified. + + + A code specifying the form of quadding (justification) that is used in displaying the annotation's text: + 0 - Left-justified, 1 - Centered, 2 - Right-justified. Default value: 0 (left-justified). + + a code specifying the form of quadding (justification). + + this + + instance. + + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + That entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). If an annotation dictionary includes the BS entry, then the Border + entry is ignored. If annotation includes AP (see + + ) it takes + precedence over the BS entry. For more info on BS entry see ISO-320001, Table 166. + + + + + which is a border style dictionary or null if it is not specified. + + + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + See ISO-320001, Table 166 and + + for more info. + + + a border style dictionary specifying the line width and dash pattern that shall be used + in drawing the annotation’s border. + + + this + + instance. + + + + Setter for the annotation's preset border style. + + Setter for the annotation's preset border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + The new value for the annotation's border style. + + this + + instance. + + + + + Setter for the annotation's preset dashed border style. + + Setter for the annotation's preset dashed border style. This property has affect only if + + style was used for the annotation border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + + this + + instance. + + + + + A set of four numbers describing the numerical differences between two rectangles: + the Rect entry of the annotation and the inner rectangle where the annotation's text should be displayed + + + null if not specified, otherwise a + + with four numbers which correspond to the + differences in default user space between the left, top, right, and bottom coordinates of Rect and those + of the inner rectangle, respectively. + + + + + A set of four numbers describing the numerical differences between two rectangles: + the Rect entry of the annotation and the inner rectangle where the annotation's text should be displayed + + + a + + with four numbers which correspond to the differences in default user space between + the left, top, right, and bottom coordinates of Rect and those of the inner rectangle, respectively. + Each value shall be greater than or equal to 0. The sum of the top and bottom differences shall be + less than the height of Rect, and the sum of the left and right differences shall be less than + the width of Rect. + + + this + + instance. + + + + A border effect dictionary that specifies an effect that shall be applied to the border of the annotations. + + + a + + , which is a border effect dictionary (see ISO-320001, Table 167). + + + + Sets a border effect dictionary that specifies an effect that shall be applied to the border of the annotations. + + + a + + which contents shall be specified in accordance to ISO-320001, Table 167. + + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + That entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). If an annotation dictionary includes the BS entry, then the Border + entry is ignored. If annotation includes AP (see + + ) it takes + precedence over the BS entry. For more info on BS entry see ISO-320001, Table 166. + + + + + which is a border style dictionary or null if it is not specified. + + + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + See ISO-320001, Table 166 and + + for more info. + + + a border style dictionary specifying the line width and dash pattern that shall be used + in drawing the annotation’s border. + + + this + + instance. + + + + Setter for the annotation's preset border style. + + Setter for the annotation's preset border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + The new value for the annotation's border style. + + this + + instance. + + + + + Setter for the annotation's preset dashed border style. + + Setter for the annotation's preset dashed border style. This property has affect only if + + style was used for the annotation border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + + this + + instance. + + + + The purpose of a line annotation is to display a single straight line on the page. + + The purpose of a line annotation is to display a single straight line on the page. + When opened, it displays a pop-up window containing the text of the associated note. + See also ISO-320001 12.5.6.7 "Line Annotations". + + + + + Creates a + + instance. + + + the annotation rectangle, defining the location of the annotation on the page + in default user space units. See + . + + + an array of four numbers, [x1 y1 x2 y2], specifying the starting and ending coordinates + of the line in default user space. See also + . + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + + + + + An array of four numbers, [x1 y1 x2 y2], specifying the starting and ending coordinates of the line + in default user space. + + + An array of four numbers, [x1 y1 x2 y2], specifying the starting and ending coordinates of the line + in default user space. If the + + entry is present, this value represents + the endpoints of the leader lines rather than the endpoints of the line itself. + + An array of four numbers specifying the starting and ending coordinates of the line in default user space. + + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + That entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). If an annotation dictionary includes the BS entry, then the Border + entry is ignored. If annotation includes AP (see + + ) it takes + precedence over the BS entry. For more info on BS entry see ISO-320001, Table 166. + + + + + which is a border style dictionary or null if it is not specified. + + + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + See ISO-320001, Table 166 and + + for more info. + + + a border style dictionary specifying the line width and dash pattern that shall be used + in drawing the annotation’s border. + + + this + + instance. + + + + Setter for the annotation's preset border style. + + Setter for the annotation's preset border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + The new value for the annotation's border style. + + this + + instance. + + + + + Setter for the annotation's preset dashed border style. + + Setter for the annotation's preset dashed border style. This property has affect only if + + style was used for the annotation border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + + this + + instance. + + + + An array of two names specifying the line ending styles that is used in drawing the line. + + An array of two names specifying the line ending styles that is used in drawing the line. + The first and second elements of the array shall specify the line ending styles for the endpoints defined, + respectively, by the first and second pairs of coordinates, (x1, y1) and (x2, y2), in the + + array + (see + + . For possible values see + . + + + An array of two names specifying the line ending styles that is used in drawing the line; or null if line + endings style is not explicitly defined, default value is [/None /None]. + + + + Sets the line ending styles that are used in drawing the line. + + Sets the line ending styles that are used in drawing the line. + The first and second elements of the array shall specify the line ending styles for the endpoints defined, + respectively, by the first and second pairs of coordinates, (x1, y1) and (x2, y2), in the + + array + (see + + . Possible values for styles are: + + + + - A square filled with the annotation's interior color, if any; + + + + - A circle filled with the annotation's interior color, if any; + + + + - A diamond shape filled with the annotation's interior color, if any; + + + + - Two short lines meeting in an acute angle to form an open arrowhead; + + + + - Two short lines meeting in an acute angle as in the + + style and + connected by a third line to form a triangular closed arrowhead filled with the annotation's interior color, if any; + + + + - No line ending; + + + + - A short line at the endpoint perpendicular to the line itself; + + + + - Two short lines in the reverse direction from + + ; + + + + - A triangular closed arrowhead in the reverse direction from + + ; + + + + - A short line at the endpoint approximately 30 degrees clockwise from perpendicular to the line itself; + + + see also ISO-320001, Table 176 "Line ending styles". + + An array of two names specifying the line ending styles that is used in drawing the line. + + + this + + instance. + + + + The interior color which is used to fill the annotation's line endings. + + + + of either + + , + + or + + type which defines + interior color of the annotation, or null if interior color is not specified. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color + which is used to fill the annotation's line endings. + + + a + + of numbers in the range 0.0 to 1.0. The number of array elements determines + the colour space in which the colour is defined: 0 - No colour, transparent; 1 - DeviceGray, + 3 - DeviceRGB, 4 - DeviceCMYK. For the + + number of elements shall be + equal to 3 (which defines DeviceRGB colour space). + + + this + + instance. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color + which is used to fill the annotation's line endings. + + an array of floats in the range 0.0 to 1.0. + + this + + instance. + + + + + The length of leader lines in default user space that extend from each endpoint of the line perpendicular + to the line itself. + + + The length of leader lines in default user space that extend from each endpoint of the line perpendicular + to the line itself. A positive value means that the leader lines appear in the direction that is clockwise + when traversing the line from its starting point to its ending point (as specified by + + (see + + ); + a negative value indicates the opposite direction. + + a float specifying the length of leader lines in default user space. + + + + Sets the length of leader lines in default user space that extend from each endpoint of the line perpendicular + to the line itself. + + + Sets the length of leader lines in default user space that extend from each endpoint of the line perpendicular + to the line itself. A positive value means that the leader lines appear in the direction that is clockwise + when traversing the line from its starting point to its ending point (as specified by + + (see + + ); + a negative value indicates the opposite direction. + + a float specifying the length of leader lines in default user space. + + this + + instance. + + + + + A non-negative number that represents the length of leader line extensions that extend from the line proper + 180 degrees from the leader lines. + + + a non-negative float that represents the length of leader line extensions; or if the leader line extension + is not explicitly set, returns the default value, which is 0. + + + + Sets the length of leader line extensions that extend from the line proper 180 degrees from the leader lines. + + + Sets the length of leader line extensions that extend from the line proper 180 degrees from the leader lines. + This value shall not be set unless + + is set. + + a non-negative float that represents the length of leader line extensions. + + + this + + instance. + + + + + A non-negative number that represents the length of the leader line offset, which is the amount of empty space + between the endpoints of the annotation and the beginning of the leader lines. + + + a non-negative number that represents the length of the leader line offset, + or null if leader line offset is not set. + + + + + Sets the length of the leader line offset, which is the amount of empty space between the endpoints of the + annotation and the beginning of the leader lines. + + a non-negative number that represents the length of the leader line offset. + + + this + + instance. + + + + + If true, the text specified by the + + or + + entries + (see + + and + + ) + is replicated as a caption in the appearance of the line. + + + true, if the annotation text is replicated as a caption, false otherwise. If this property is + not set, default value is used which is false. + + + + + If set to true, the text specified by the + + or + + entries + (see + + and + + ) + will be replicated as a caption in the appearance of the line. + + true, if the annotation text should be replicated as a caption, false otherwise. + + + this + + instance. + + + + A name describing the annotation's caption positioning. + + A name describing the annotation's caption positioning. Valid values are + + , meaning the caption + is centered inside the line, and + + , meaning the caption is on top of the line. + + + a name describing the annotation's caption positioning, or null if the caption positioning is not + explicitly defined (in this case the default value is used, which is + + ). + + + + Sets annotation's caption positioning. + + Sets annotation's caption positioning. Valid values are + + , meaning the caption + is centered inside the line, and + + , meaning the caption is on top of the line. + + a name describing the annotation's caption positioning. + + this + + instance. + + + + A measure dictionary (see ISO-320001, Table 261) that specifies the scale and units that apply to the line annotation. + + + a + + that represents a measure dictionary. + + + + Sets a measure dictionary that specifies the scale and units that apply to the line annotation. + + a + + that represents a measure dictionary, see ISO-320001, Table 261 for valid + contents specification. + + + this + + instance. + + + + An array of two numbers that specifies the offset of the caption text from its normal position. + + An array of two numbers that specifies the offset of the caption text from its normal position. + The first value is the horizontal offset along the annotation line from its midpoint, with a positive value + indicating offset to the right and a negative value indicating offset to the left. The second value is the vertical + offset perpendicular to the annotation line, with a positive value indicating a shift up and a negative value indicating + a shift down. + + + a + + of two numbers that specifies the offset of the caption text from its normal position, + or null if caption offset is not explicitly specified (in this case a default value is used, which is [0, 0]). + + + + Sets the offset of the caption text from its normal position. + + a + + of two numbers that specifies the offset of the caption text from its + normal position. The first value defines the horizontal offset along the annotation line from + its midpoint, with a positive value indicating offset to the right and a negative value indicating + offset to the left. The second value defines the vertical offset perpendicular to the annotation line, + with a positive value indicating a shift up and a negative value indicating a shift down. + + + this + + instance. + + + + Sets the offset of the caption text from its normal position. + + an array of two floats that specifies the offset of the caption text from its + normal position. The first value defines the horizontal offset along the annotation line from + its midpoint, with a positive value indicating offset to the right and a negative value indicating + offset to the left. The second value defines the vertical offset perpendicular to the annotation line, + with a positive value indicating a shift up and a negative value indicating a shift down. + + + this + + instance. + + + + + A link annotation represents either a hypertext link to a destination elsewhere in the document + or an + + to be performed. + + + A link annotation represents either a hypertext link to a destination elsewhere in the document + or an + + to be performed. See also ISO-320001 12.5.6.5, "Link Annotations". + + + + Highlight modes. + + + + Creates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + + Creates a new + + instance based on + + instance, that define the location of the annotation on the page in default user space units. + + + the + + that define the location of the annotation + + + + + Gets the annotation destination as + + instance. + + + Gets the annotation destination as + + instance. + + Destination shall be displayed when the annotation is activated. See also ISO-320001, Table 173. + + + the annotation destination as + + instance + + + + + Sets the annotation destination as + + instance. + + + Sets the annotation destination as + + instance. + + Destination shall be displayed when the annotation is activated. See also ISO-320001, Table 173. + + + the destination to be set as + + instance + + + this + + instance + + + + + Sets the annotation destination as + + instance. + + + Sets the annotation destination as + + instance. + + Destination shall be displayed when the annotation is activated. See also ISO-320001, Table 173. + + + the destination to be set as + + instance + + + this + + instance + + + + Removes the annotation destination. + + Removes the annotation destination. + + Destination shall be displayed when the annotation is activated. See also ISO-320001, Table 173. + + + this + + instance + + + + + An + + to perform, such as launching an application, playing a sound, + changing an annotation’s appearance state etc, when the annotation is activated. + + + + + which defines the characteristics and behaviour of an action + + + + + Sets a + + representing action to this annotation which will be performed + when the annotation is activated. + + + + + that represents action to set to this annotation + + + this + + instance + + + + + Sets a + + to this annotation which will be performed when the annotation is activated. + + + + + to set to this annotation + + + this + + instance + + + + + Removes a + + from this annotation. + + + this + + instance + + + + Gets the annotation highlight mode. + + Gets the annotation highlight mode. + + The annotation’s highlighting mode is the visual effect that shall be used when the mouse + button is pressed or held down inside its active area. See also ISO-320001, Table 173. + + the name of visual effect + + + Sets the annotation highlight mode. + + Sets the annotation highlight mode. + + The annotation’s highlighting mode is the visual effect that shall be used when the mouse + button is pressed or held down inside its active area. See also ISO-320001, Table 173. + + the name of visual effect to be set + + this + + instance + + + + + Gets the annotation URI action as + . + + + Gets the annotation URI action as + . + + When Web Capture (see ISO-320001 14.10, “Web Capture”) changes an annotation from a URI to a + go-to action, it uses this entry to save the data from the original URI action so that it can + be changed back in case the target page for the go-to action is subsequently deleted. See also + ISO-320001, Table 173. + + the URI action as pdfDictionary + + + + Sets the annotation URI action as + + instance. + + + Sets the annotation URI action as + + instance. + + When Web Capture (see ISO-320001 14.10, “Web Capture”) changes an annotation from a URI to a + go-to action, it uses this entry to save the data from the original URI action so that it can + be changed back in case the target page for the go-to action is subsequently deleted. See also + ISO-320001, Table 173. + + the action to be set + + this + + instance + + + + + Sets the annotation URI action as + + instance. + + + Sets the annotation URI action as + + instance. + + A URI action (see ISO-320001 12.6.4.7, “URI Actions”) formerly associated with this annotation. + When Web Capture (see ISO-320001 14.10, “Web Capture”) changes an annotation from a URI to a + go-to action, it uses this entry to save the data from the original URI action so that it can + be changed back in case the target page for the go-to action is subsequently deleted. See also + ISO-320001, Table 173. + + the action to be set + + this + + instance + + + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + Quadrilaterals are used to define regions inside annotation rectangle + in which the link annotation should be activated. + + + an + + of 8 × n numbers specifying the coordinates of n quadrilaterals. + + + + + Sets n quadrilaterals in default user space by passing an + + of 8 × n numbers. + + + Sets n quadrilaterals in default user space by passing an + + of 8 × n numbers. + Quadrilaterals are used to define regions inside annotation rectangle + in which the link annotation should be activated. + + + an + + of 8 × n numbers specifying the coordinates of n quadrilaterals. + + + this + + instance. + + + + + BS entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). + + + BS entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). If an annotation dictionary includes the BS entry, then the Border + entry is ignored. If annotation includes AP (see + + ) it takes + precedence over the BS entry. For more info on BS entry see ISO-320001, Table 166. + + + + + which is a border style dictionary or null if it is not specified. + + + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + See ISO-320001, Table 166 and + + for more info. + + + a border style dictionary specifying the line width and dash pattern that shall be used + in drawing the annotation’s border. + + + this + + instance. + + + + Setter for the annotation's preset border style. + + Setter for the annotation's preset border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + The new value for the annotation's border style. + + this + + instance. + + + + + Setter for the annotation's preset dashed border style. + + Setter for the annotation's preset dashed border style. This property has affect only if + + style was used for the annotation border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + + this + + instance. + + + + + This is a super class for the annotations which are defined as markup annotations + because they are used primarily to mark up PDF documents. + + + This is a super class for the annotations which are defined as markup annotations + because they are used primarily to mark up PDF documents. These annotations have + text that appears as part of the annotation and may be displayed in other ways + by a conforming reader, such as in a Comments pane. + See also ISO-320001 12.5.6.2 "Markup Annotations". + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + + The text label that will be displayed in the title bar of the annotation's pop-up window + when open and active. + + + The text label that will be displayed in the title bar of the annotation's pop-up window + when open and active. This entry shall identify the user who added the annotation. + + + + + which value is an annotation text label content + or null if text is not specified. + + + + + Sets the text label that will be displayed in the title bar of the annotation's pop-up window + when open and active. + + + Sets the text label that will be displayed in the title bar of the annotation's pop-up window + when open and active. This entry shall identify the user who added the annotation. + + + + + which value is an annotation text label content. + + + this + + instance. + + + + The constant opacity value that will be used in painting the annotation. + + The constant opacity value that will be used in painting the annotation. + This value is applied to all visible elements of the annotation in its closed state + (including its background and border) but not to the pop-up window that appears when + the annotation is opened. Default value: 1.0. + + + a + + which value is in range between 0 and 1, which specifies the + level of opacity. This method returns null if opacity is not specified; in this case default + value is used, which is 1. + + + + Sets the constant opacity value that will be used in painting the annotation. + + a + + which value is in range between 0 and 1, which specifies the + level of opacity. + + + this + + instance. + + + + + + A rich text string (see ISO-320001 12.7.3.4, "Rich Text Strings") that + shall be displayed in the pop-up window when the annotation is opened. + + + text string or text stream that specifies rich text or null if + rich text is not specified. + + + + + Sets a rich text string (see ISO-320001 12.7.3.4, "Rich Text Strings") that + shall be displayed in the pop-up window when the annotation is opened. + + text string or text stream that specifies rich text. + + this + + instance. + + + + The date and time when the annotation was created. + + a + + which value should be in the date format specified in (ISO-320001 7.9.4, "Dates"). + + + + Sets the date and time when the annotation was created. + + + + which value should be in the date format + specified in (ISO-320001 7.9.4, "Dates"). + + + this + + instance. + + + + + An annotation object that this annotation is "in reply to." + Both annotations shall be on the same page of the document. + + + An annotation object that this annotation is "in reply to." + Both annotations shall be on the same page of the document. + The relationship between the two annotations shall be specified by the RT entry + (see + + ). + + + a + + that represents an annotation that this annotation is "in reply to." + + + + + An annotation that this annotation is "in reply to." + Both annotations shall be on the same page of the document. + + + An annotation that this annotation is "in reply to." + Both annotations shall be on the same page of the document. + The relationship between the two annotations shall be specified by the RT entry + (see + + ). + + + a + + that this annotation is "in reply to." + + + + + Sets an annotation that this annotation is "in reply to." + Both annotations shall be on the same page of the document. + + + Sets an annotation that this annotation is "in reply to." + Both annotations shall be on the same page of the document. + The relationship between the two annotations shall be specified by the RT entry + (see + + ). + + + a + + that this annotation is "in reply to." + + + this + + instance. + + + + Sets a pop-up annotation for entering or editing the text associated with this annotation. + + Sets a pop-up annotation for entering or editing the text associated with this annotation. + Pop-up annotation defines an associated with this annotation pop-up window that may contain text. + The Contents (see + + ) entry of the annotation that has + an associated popup specifies the text that shall be displayed when the pop-up window is opened. + + + an + + that will be associated with this annotation. + + + this + + instance. + + + + An associated pop-up annotation object. + + An associated pop-up annotation object. See + + for more info. + + + a + + that represents an associated pop-up annotation, + or null if popup annotation is not specified. + + + + An associated pop-up annotation for entering or editing the text associated with this annotation. + + + An associated pop-up annotation for entering or editing the text associated with this annotation. + Pop-up annotation defines an associated with this annotation pop-up window that may contain text. + The Contents (see + + ) entry of the annotation that has + an associated popup specifies the text that shall be displayed when the pop-up window is opened. + + + an + + that is associated with this annotation, or null if there is none. + + + + Text representing a short description of the subject being addressed by the annotation. + + a + + which value is a annotation subject. + + + + Sets the text representing a short description of the subject being addressed by the annotation. + + a + + which value is a annotation subject. + + + this + + instance. + + + + + A name specifying the relationship (the "reply type") between this annotation and one specified by IRT entry + (see + + ). + + + A name specifying the relationship (the "reply type") between this annotation and one specified by IRT entry + (see + + ). Valid values are: + + + + - The annotation shall be considered a reply to the annotation specified by IRT. + Conforming readers shall not display replies to an annotation individually but together in the form of + threaded comments. + + + + - The annotation shall be grouped with the annotation specified by IRT. + + + + + a + + specifying relationship with the specified by the IRT entry; or null if reply + type is not specified, in this case the default value is + . + + + + + Sets the relationship (the "reply type") between this annotation and one specified by IRT entry + (see + + ). + + + Sets the relationship (the "reply type") between this annotation and one specified by IRT entry + (see + + ). For valid values see + . + + + a + + specifying relationship with the specified by the IRT entry. + + + this + + instance. + + + + A name describing the intent of the markup annotation. + + A name describing the intent of the markup annotation. + See + + for more info. + + + a + + describing the intent of the markup annotation, or null if not specified. + + + + Sets a name describing the intent of the markup annotation. + + Sets a name describing the intent of the markup annotation. + Intents allow conforming readers to distinguish between different uses and behaviors + of a single markup annotation type. If this entry is not present or its value is the same as the annotation type, + the annotation shall have no explicit intent and should behave in a generic manner in a conforming reader. + + See ISO-320001, free text annotations (Table 174), line annotations (Table 175), polygon annotations (Table 178), + and polyline annotations (Table 178) for the specific intent values for those types. + + + a + + describing the intent of the markup annotation. + + + this + + instance. + + + + An external data dictionary specifying data that shall be associated with the annotation. + + An external data dictionary specifying data that shall be associated with the annotation. + This dictionary contains the following entries: + + + + - (optional) If present, shall be + . + + + + - (required) a name specifying the type of data that the markup annotation + shall be associated with. The only defined value is + + . Table 298 (ISO-320001) + lists the values that correspond to a subtype of Markup3D (See also + + ). + + + + + An external data + + , or null if not specified. + + + + Sets an external data dictionary specifying data that shall be associated with the annotation. + + Sets an external data dictionary specifying data that shall be associated with the annotation. + This dictionary should contain the following entries: + + + + - (optional) If present, shall be + . + + + + - (required) a name specifying the type of data that the markup annotation + shall be associated with. The only defined value is + + . Table 298 (ISO-320001) + lists the values that correspond to a subtype of Markup3D (See also + + ). + + + + the external data dictionary + + this + + instance + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + PDF 2.0. + + PDF 2.0. An array of n arrays, each supplying the operands for a + path building operator (m, l or c). + Each of the n arrays shall contain pairs of values specifying the points (x and + y values) for a path drawing operation. + The first array shall be of length 2 and specifies the operand of a moveto + operator which establishes a current point. + Subsequent arrays of length 2 specify the operands of lineto operators. + Arrays of length 6 specify the operands for curveto operators. + Each array is processed in sequence to construct the path. + + path, or null if path is not set + + + PDF 2.0. + + PDF 2.0. An array of n arrays, each supplying the operands for a + path building operator (m, l or c). + Each of the n arrays shall contain pairs of values specifying the points (x and + y values) for a path drawing operation. + The first array shall be of length 2 and specifies the operand of a moveto + operator which establishes a current point. + Subsequent arrays of length 2 specify the operands of lineto operators. + Arrays of length 6 specify the operands for curveto operators. + Each array is processed in sequence to construct the path. + + the path to set + + this + + instance + + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + That entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). If an annotation dictionary includes the BS entry, then the Border + entry is ignored. If annotation includes AP (see + + ) it takes + precedence over the BS entry. For more info on BS entry see ISO-320001, Table 166. + + + + + which is a border style dictionary or null if it is not specified. + + + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + See ISO-320001, Table 166 and + + for more info. + + + a border style dictionary specifying the line width and dash pattern that shall be used + in drawing the annotation’s border. + + + this + + instance. + + + + Setter for the annotation's preset border style. + + Setter for the annotation's preset border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + The new value for the annotation's border style. + + this + + instance. + + + + + Setter for the annotation's preset dashed border style. + + Setter for the annotation's preset dashed border style. This property has affect only if + + style was used for the annotation border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + + this + + instance. + + + + Gets a border effect dictionary that specifies an effect that shall be applied to the border of the annotations. + + + a + + , which is a border effect dictionary (see ISO-320001, Table 167). + + + + Sets a border effect dictionary that specifies an effect that shall be applied to the border of the annotations. + + + a + + which contents shall be specified in accordance to ISO-320001, Table 167. + + + this + + instance. + + + + The interior color which is used to fill the annotation's line endings. + + + + of either + + , + + or + + type which defines + interior color of the annotation, or null if interior color is not specified. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color + which is used to fill the annotation's line endings. + + + a + + of numbers in the range 0.0 to 1.0. The number of array elements determines + the colour space in which the colour is defined: 0 - No colour, transparent; 1 - DeviceGray, + 3 - DeviceRGB, 4 - DeviceCMYK. For the + + number of elements shall be + equal to 3 (which defines DeviceRGB colour space). + + + this + + instance. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color + which is used to fill the annotation's line endings. + + an array of floats in the range 0.0 to 1.0. + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + A flag specifying whether the annotation shall initially be displayed open. + + A flag specifying whether the annotation shall initially be displayed open. + This flag has affect to not all kinds of annotations. + + true if annotation is initially open, false - if closed. + + + Sets a flag specifying whether the annotation shall initially be displayed open. + + Sets a flag specifying whether the annotation shall initially be displayed open. + This flag has affect to not all kinds of annotations. + + true if annotation shall initially be open, false - if closed. + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + The default appearance string that shall be used in formatting the text. + The default appearance string that shall be used in formatting the text. See ISO-32001 12.7.3.3, "Variable Text". + + + a + + that specifies the default appearance, or null if default appereance is not specified. + + + + The default appearance string that shall be used in formatting the text. + The default appearance string that shall be used in formatting the text. See ISO-32001 12.7.3.3, "Variable Text". + + + a + + that specifies the default appearance. + + + this + + instance.+ + + + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + Quadrilaterals are used to define the content region that is intended to be removed for a redaction annotation. + + + an + + of 8 × n numbers specifying the coordinates of n quadrilaterals. + + + + + Sets n quadrilaterals in default user space by passing an + + of 8 × n numbers. + + + Sets n quadrilaterals in default user space by passing an + + of 8 × n numbers. + Quadrilaterals are used to define the content region that is intended to be removed for a redaction annotation. + + + an + + of 8 × n numbers specifying the coordinates of n quadrilaterals. + + + this + + instance. + + + + The interior color which is used to fill the redacted region after the affected content has been removed. + + + + + of either + + , + + or + + type which defines + interior color of the annotation, or null if interior color is not specified. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color which + is used to fill the redacted region after the affected content has been removed. + + + a + + of numbers in the range 0.0 to 1.0. The number of array elements determines + the colour space in which the colour is defined: 0 - No colour, transparent; 1 - DeviceGray, + 3 - DeviceRGB, 4 - DeviceCMYK. For the + + number of elements shall be + equal to 3 (which defines DeviceRGB colour space). + + + this + + instance. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color which + is used to fill the redacted region after the affected content has been removed. + + an array of floats in the range 0.0 to 1.0. + + this + + instance. + + + + + A code specifying the form of quadding (justification) that is used in displaying the annotation's text: + 0 - Left-justified, 1 - Centered, 2 - Right-justified. + + + A code specifying the form of quadding (justification) that is used in displaying the annotation's text: + 0 - Left-justified, 1 - Centered, 2 - Right-justified. Default value: 0 (left-justified). + + a code specifying the form of quadding (justification), returns the default value if not explicitly specified. + + + + + A code specifying the form of quadding (justification) that is used in displaying the annotation's text: + 0 - Left-justified, 1 - Centered, 2 - Right-justified. + + + A code specifying the form of quadding (justification) that is used in displaying the annotation's text: + 0 - Left-justified, 1 - Centered, 2 - Right-justified. Default value: 0 (left-justified). + + a code specifying the form of quadding (justification). + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + + An + + to perform, such as launching an application, playing a sound, + changing an annotation’s appearance state etc, when the annotation is activated. + + + + + which defines the characteristics and behaviour of an action. + + + + + Sets a + + to this annotation which will be performed when the annotation is activated. + + + + + to set to this annotation. + + + this + + instance. + + + + An additional actions dictionary that extends the set of events that can trigger the execution of an action. + + + An additional actions dictionary that extends the set of events that can trigger the execution of an action. + See ISO-320001 12.6.3 Trigger Events. + + + an additional actions + . + + + + + + Sets an additional + + to this annotation which will be performed in response to + the specific trigger event defined by + . + + + Sets an additional + + to this annotation which will be performed in response to + the specific trigger event defined by + + . See ISO-320001 12.6.3, "Trigger Events". + + + a + + that denotes a type of the additional action to set. + + + + + to set as additional to this annotation. + + + this + + instance. + + + + + An appearance characteristics dictionary containing additional information for constructing the + annotation’s appearance stream. + + + An appearance characteristics dictionary containing additional information for constructing the + annotation’s appearance stream. See ISO-320001, Table 189. + + an appearance characteristics dictionary or null if it isn't specified. + + + + Sets an appearance characteristics dictionary containing additional information for constructing the + annotation’s appearance stream. + + + Sets an appearance characteristics dictionary containing additional information for constructing the + annotation’s appearance stream. See ISO-320001, Table 189. + + + the + + with additional information for appearance stream. + + + this + + instance. + + + + Creates a new Sound annotation. + + Creates a new Sound annotation. + There is a problem playing *.wav files via internal player in Acrobat. + The first byte of the audio stream data should be deleted, then wav file will be played correctly. + Otherwise it will be broken. Other supporting file types don't have such problem. + Sound annotations are deprecated in PDF 2.0. + + the rectangle that specifies annotation position and bounds on page + + the + + with sound + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + Creates a sound annotation. + Creates a sound annotation. Sound annotations are deprecated in PDF 2.0. + + the + + to which annotation will be added + + the rectangle that specifies annotation position and bounds on page + + the + + with sound + + the sampling rate, in samples per second + the encoding format for the sample data + the number of sound channels + the number of bits per sample value per channel + + + The name of an icon that is used in displaying the annotation. + + The name of an icon that is used in displaying the annotation. Possible values are different for different + annotation types. See + . + + + a + + that specifies the icon for displaying annotation, or null if icon name is not specified. + + + + The name of an icon that is used in displaying the annotation. + + a + + that specifies the icon for displaying annotation. Possible values are different + for different annotation types: + + Speaker + + Mic + + + Additional names may be supported as well. + + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + That entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). If an annotation dictionary includes the BS entry, then the Border + entry is ignored. If annotation includes AP (see + + ) it takes + precedence over the BS entry. For more info on BS entry see ISO-320001, Table 166. + + + + + which is a border style dictionary or null if it is not specified. + + + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + See ISO-320001, Table 166 and + + for more info. + + + a border style dictionary specifying the line width and dash pattern that shall be used + in drawing the annotation’s border. + + + this + + instance. + + + + Setter for the annotation's preset border style. + + Setter for the annotation's preset border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + The new value for the annotation's border style. + + this + + instance. + + + + + Setter for the annotation's preset dashed border style. + + Setter for the annotation's preset dashed border style. This property has affect only if + + style was used for the annotation border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + + this + + instance. + + + + + A set of four numbers describing the numerical differences between two rectangles: + the Rect entry of the annotation and the actual boundaries of the underlying square. + + + null if not specified, otherwise a + + with four numbers which correspond to the + differences in default user space between the left, top, right, and bottom coordinates of Rect and those + of the inner rectangle, respectively. + + + + + A set of four numbers describing the numerical differences between two rectangles: + the Rect entry of the annotation and the actual boundaries of the underlying square. + + + a + + with four numbers which correspond to the differences in default user space between + the left, top, right, and bottom coordinates of Rect and those of the inner rectangle, respectively. + Each value shall be greater than or equal to 0. The sum of the top and bottom differences shall be + less than the height of Rect, and the sum of the left and right differences shall be less than + the width of Rect. + + + this + + instance. + + + + Gets a border effect dictionary that specifies an effect that shall be applied to the border of the annotations. + + + a + + , which is a border effect dictionary (see ISO-320001, Table 167). + + + + Sets a border effect dictionary that specifies an effect that shall be applied to the border of the annotations. + + + a + + which contents shall be specified in accordance to ISO-320001, Table 167. + + + this + + instance. + + + + The interior color which is used to fill the annotation's rectangle. + + + + of either + + , + + or + + type which defines + interior color of the annotation, or null if interior color is not specified. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color + which is used to fill the annotation's rectangle. + + + a + + of numbers in the range 0.0 to 1.0. The number of array elements determines + the colour space in which the colour is defined: 0 - No colour, transparent; 1 - DeviceGray, + 3 - DeviceRGB, 4 - DeviceCMYK. For the + + number of elements shall be + equal to 3 (which defines DeviceRGB colour space). + + + this + + instance. + + + + + An array of numbers in the range 0.0 to 1.0 specifying the interior color + which is used to fill the annotation's rectangle. + + an array of floats in the range 0.0 to 1.0. + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + The name of an icon that is used in displaying the annotation. + + The name of an icon that is used in displaying the annotation. + Possible values are described in + . + + + a + + that specifies the icon for displaying annotation, or null if icon name is not specified. + + + + The name of an icon that is used in displaying the annotation. + + a + + that specifies the icon for displaying annotation. Possible values are: + + Approved + + Experimental + + NotApproved + + AsIs + + Expired + + NotForPublicRelease + + Confidential + + Final + + Sold + + Departmental + + ForComment + + TopSecret + + Draft + + ForPublicRelease. + + + + + this + + instance. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + A flag specifying whether the annotation shall initially be displayed open. + + A flag specifying whether the annotation shall initially be displayed open. + This flag has affect to not all kinds of annotations. + + true if annotation is initially open, false - if closed. + + + Sets a flag specifying whether the annotation shall initially be displayed open. + + Sets a flag specifying whether the annotation shall initially be displayed open. + This flag has affect to not all kinds of annotations. + + true if annotation shall initially be open, false - if closed. + + this + + instance. + + + + The name of an icon that is used in displaying the annotation. + + The name of an icon that is used in displaying the annotation. + Possible values are described in + . + + + a + + that specifies the icon for displaying annotation, or null if icon name is not specified. + + + + The name of an icon that is used in displaying the annotation. + + a + + that specifies the icon for displaying annotation. Possible values are: + + Comment + + Key + + Note + + Help + + NewParagraph + + Paragraph + + Insert + + + + + this + + instance. + + + + Subtypes + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + Creates a text markup annotation of highlight style subtype. + + Creates a text markup annotation of highlight style subtype. + + IMPORTANT NOTE on quadPoints argument: + According to Table 179 in ISO 32000-1, the QuadPoints array lists the vertices in counterclockwise + order and the text orientation is defined by the first and second vertex. This basically means QuadPoints is + specified as lower-left, lower-right, top-right, top-left. HOWEVER, Adobe's interpretation + (tested at least with Acrobat 10, Acrobat 11, Reader 11) is top-left, top-right, lower-left, lower-right (Z-shaped order). + This means that if the QuadPoints array is specified according to the standard, the rendering is not as expected. + Other viewers seem to follow Adobe's interpretation. Hence we recommend to use and expect QuadPoints array in Z-order, + just as Acrobat and probably most other viewers expect. + + + the annotation rectangle, defining the location of the annotation on the page + in default user space units. + + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + Each quadrilateral shall encompasses a word or group of contiguous words in the text underlying + the annotation. The text is oriented with respect to the edge connecting first two vertices. + + + created + + of Highlight type. + + + + Creates a text markup annotation of underline style subtype. + + Creates a text markup annotation of underline style subtype. + + IMPORTANT NOTE on quadPoints argument: + According to Table 179 in ISO 32000-1, the QuadPoints array lists the vertices in counterclockwise + order and the text orientation is defined by the first and second vertex. This basically means QuadPoints is + specified as lower-left, lower-right, top-right, top-left. HOWEVER, Adobe's interpretation + (tested at least with Acrobat 10, Acrobat 11, Reader 11) is top-left, top-right, lower-left, lower-right (Z-shaped order). + This means that if the QuadPoints array is specified according to the standard, the rendering is not as expected. + Other viewers seem to follow Adobe's interpretation. Hence we recommend to use and expect QuadPoints array in Z-order, + just as Acrobat and probably most other viewers expect. + + + the annotation rectangle, defining the location of the annotation on the page + in default user space units. + + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + Each quadrilateral shall encompasses a word or group of contiguous words in the text underlying + the annotation. The text is oriented with respect to the edge connecting first two vertices. + + + created + + of Underline type. + + + + Creates a text markup annotation of strikeout style subtype. + + Creates a text markup annotation of strikeout style subtype. + + IMPORTANT NOTE on quadPoints argument: + According to Table 179 in ISO 32000-1, the QuadPoints array lists the vertices in counterclockwise + order and the text orientation is defined by the first and second vertex. This basically means QuadPoints is + specified as lower-left, lower-right, top-right, top-left. HOWEVER, Adobe's interpretation + (tested at least with Acrobat 10, Acrobat 11, Reader 11) is top-left, top-right, lower-left, lower-right (Z-shaped order). + This means that if the QuadPoints array is specified according to the standard, the rendering is not as expected. + Other viewers seem to follow Adobe's interpretation. Hence we recommend to use and expect QuadPoints array in Z-order, + just as Acrobat and probably most other viewers expect. + + + the annotation rectangle, defining the location of the annotation on the page + in default user space units. + + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + Each quadrilateral shall encompasses a word or group of contiguous words in the text underlying + the annotation. The text is oriented with respect to the edge connecting first two vertices. + + + created + + of Strikeout type. + + + + Creates a text markup annotation of squiggly-underline type. + + Creates a text markup annotation of squiggly-underline type. + + IMPORTANT NOTE on quadPoints argument: + According to Table 179 in ISO 32000-1, the QuadPoints array lists the vertices in counterclockwise + order and the text orientation is defined by the first and second vertex. This basically means QuadPoints is + specified as lower-left, lower-right, top-right, top-left. HOWEVER, Adobe's interpretation + (tested at least with Acrobat 10, Acrobat 11, Reader 11) is top-left, top-right, lower-left, lower-right (Z-shaped order). + This means that if the QuadPoints array is specified according to the standard, the rendering is not as expected. + Other viewers seem to follow Adobe's interpretation. Hence we recommend to use and expect QuadPoints array in Z-order, + just as Acrobat and probably most other viewers expect. + + + the annotation rectangle, defining the location of the annotation on the page + in default user space units. + + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + Each quadrilateral shall encompasses a word or group of contiguous words in the text underlying + the annotation. The text is oriented with respect to the edge connecting first two vertices. + + + created + + of squiggly-underline type. + + + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + + An array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space. + Quadrilaterals are used to define a word or group of contiguous words in the text + underlying the text markup annotation. + + IMPORTANT NOTE: According to Table 179 in ISO 32000-1, the QuadPoints array lists the vertices in counterclockwise + order and the text orientation is defined by the first and second vertex. This basically means QuadPoints is + specified as lower-left, lower-right, top-right, top-left. HOWEVER, Adobe's interpretation + (tested at least with Acrobat 10, Acrobat 11, Reader 11) is top-left, top-right, lower-left, lower-right (Z-shaped order). + This means that if the QuadPoints array is specified according to the standard, the rendering is not as expected. + Other viewers seem to follow Adobe's interpretation. Hence we recommend to use and expect QuadPoints array in Z-order, + just as Acrobat and probably most other viewers expect. + + + an + + of 8 × n numbers specifying the coordinates of n quadrilaterals. + + + + + Sets n quadrilaterals in default user space by passing an + + of 8 × n numbers. + + + Sets n quadrilaterals in default user space by passing an + + of 8 × n numbers. + Quadrilaterals are used to define a word or group of contiguous words in the text + underlying the text markup annotation. + + IMPORTANT NOTE: According to Table 179 in ISO 32000-1, the QuadPoints array lists the vertices in counterclockwise + order and the text orientation is defined by the first and second vertex. This basically means QuadPoints is + specified as lower-left, lower-right, top-right, top-left. HOWEVER, Adobe's interpretation + (tested at least with Acrobat 10, Acrobat 11, Reader 11) is top-left, top-right, lower-left, lower-right (Z-shaped order). + This means that if the QuadPoints array is specified according to the standard, the rendering is not as expected. + Other viewers seem to follow Adobe's interpretation. Hence we recommend to use and expect QuadPoints array in Z-order, + just as Acrobat and probably most other viewers expect. + + + an + + of 8 × n numbers specifying the coordinates of n quadrilaterals. + + + this + + instance. + + + + + A + + may be used to define the trapping characteristics for a page + of a PDF document. + + + A + + may be used to define the trapping characteristics for a page + of a PDF document. Trapping is the process of adding marks to a page along colour boundaries + to avoid unwanted visual artifacts resulting from misregistration of colorants when the page is printed. + TrapNet annotations are deprecated in PDF 2.0. + + See ISO-320001 14.11.6 "Trapping Support" and 14.11.6.2 "Trap Network Annotations" in particular. + + + + + Creates a + + instance. + + + Creates a + + instance. Note that there shall be at most one trap network annotation + per page, which shall be the last element in the page’s Annots array. + TrapNet annotations are deprecated in PDF 2.0. + + + the annotation rectangle, defining the location of the annotation on the page + in default user space units. See + . + + + the form XObject defining a trap network which body contains the graphics objects needed + to paint the traps making up the trap network. Process colour model shall be defined for the + appearance stream (see + . + See also ISO-320001 Table 367 "Additional entries specific to a trap network appearance stream". + + + + + Creates a + + instance from the given + + that represents existing annotation object in the document. + + + Creates a + + instance from the given + + that represents existing annotation object in the document. + This method is useful for property reading in reading mode or modifying in stamping mode. + TrapNet annotations are deprecated in PDF 2.0. + + + the + + representing annotation object + + + + + + + + The date and time when the trap network was most recently modified. + + The date and time when the trap network was most recently modified. + + This entry is required if /Version ( + + ) and /AnnotStates ( + + ) + entries are absent; shall be absent if /Version and /AnnotStates entries are present. + + + a + + wrapper with the specified date. + + + this + + instance. + + + + The date and time when the trap network was most recently modified. + + a + + with date. The format should be a date string as described + in ISO-320001 7.9.4, "Dates". See also + . + + + + + An unordered array of all objects present in the page description at the time the trap networks + were generated and that, if changed, could affect the appearance of the page. + + + An unordered array of all objects present in the page description at the time the trap networks + were generated and that, if changed, could affect the appearance of the page. +

    + This entry is required if /AnnotStates ( + + ) is present; + shall be absent if /LastModified ( + + ) is present. +
    + + an unordered + + of all objects present in the page description at the time the trap networks + were generated. If present, the array shall include the following objects: + + all page content streams; + + all page resource objects (other than procedure sets); + + all resource objects (other than procedure sets) of any form XObjects on the page; + + all OPI dictionaries associated with XObjects on the page (see ISO-320001 14.11.7, "Open Prepress Interface (OPI)") + + + + + this + + instance. + +
    + + + An unordered array of all objects present in the page description at the time the trap networks were generated + and that, if changed, could affect the appearance of the page. + + + an unordered + + of all objects present in the page description at the time the trap networks + were generated. + + + + + An array of name objects representing the appearance states (value of the /AS entry + + ) + for annotations associated with the page. + + + An array of name objects representing the appearance states (value of the /AS entry + + ) + for annotations associated with the page. The appearance states shall be listed in the same order as the annotations + in the page’s /Annots array. For an annotation with no /AS entry, the corresponding array element + should be + . + No appearance state shall be included for the trap network annotation itself. +

    + Required if /Version ( + + ) is present; shall be absent if /LastModified + + is present. +
    + + a + + of name objects representing the appearance states for annotations associated with the page. + + + this + + instance. + +
    + + An array of name objects representing the appearance states for annotations associated with the page. + + + An array of name objects representing the appearance states for annotations associated with the page. + See also + . + + + a + + of name objects representing the appearance states for annotations associated with the page, + + + + + An array of font dictionaries representing fonts that were fauxed (replaced by substitute fonts) during the + generation of trap networks for the page. + + + a + + of + + each of which represent font in the document. + + + this + + instance. + + + + + A list of font dictionaries representing fonts that were fauxed (replaced by substitute fonts) during the + generation of trap networks for the page. + + + a + + of + + objects. + + + this + + instance. + + + + + An array of font dictionaries representing fonts that were fauxed (replaced by substitute fonts) during the + generation of trap networks for the page. + + + a + + of + + each of which represent font in the document. + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + + Instantiates a new + + instance based on + + instance, that represents existing annotation object in the document. + + + the + + representing annotation object + + + + + Setter for the annotation's highlighting mode. + + Setter for the annotation's highlighting mode. Possible values are + + + + - No highlighting. + + + + - Invert the contents of the annotation rectangle. + + + + - Invert the annotation's border. + + + + - Display the annotation?s down appearance, if any. + + + + - Same as P. + + + + The new value for the annotation's highlighting mode. + The widget annotation which this method was called on. + + + Getter for the annotation's highlighting mode. + Current value of the annotation's highlighting mode. + + + Remove widget annotation from AcroForm hierarchy. + + + + Set the visibility flags of the Widget annotation + Options are: HIDDEN, HIDDEN_BUT_PRINTABLE, VISIBLE, VISIBLE_BUT_DOES_NOT_PRINT + + visibility option + the edited widget annotation + + + + An + + to perform, such as launching an application, playing a sound, + changing an annotation’s appearance state etc, when the annotation is activated. + + + + + which defines the characteristics and behaviour of an action. + + + + + Sets a + + to this annotation which will be performed when the annotation is activated. + + + + + to set to this annotation. + + + this + + instance. + + + + An additional actions dictionary that extends the set of events that can trigger the execution of an action. + + + An additional actions dictionary that extends the set of events that can trigger the execution of an action. + See ISO-320001 12.6.3 Trigger Events. + + + an additional actions + . + + + + + + Sets an additional + + to this annotation which will be performed in response to + the specific trigger event defined by + . + + + Sets an additional + + to this annotation which will be performed in response to + the specific trigger event defined by + + . See ISO-320001 12.6.3, "Trigger Events". + + + a + + that denotes a type of the additional action to set. + + + + + to set as additional to this annotation. + + + this + + instance. + + + + + An appearance characteristics dictionary containing additional information for constructing the + annotation’s appearance stream. + + + An appearance characteristics dictionary containing additional information for constructing the + annotation’s appearance stream. See ISO-320001, Table 189. + + an appearance characteristics dictionary or null if it isn't specified. + + + + Sets an appearance characteristics dictionary containing additional information for constructing the + annotation’s appearance stream. + + + Sets an appearance characteristics dictionary containing additional information for constructing the + annotation’s appearance stream. See ISO-320001, Table 189. + + + the + + with additional information for appearance stream. + + + this + + instance. + + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + + + The dictionaries for some annotation types (such as free text and polygon annotations) can include the BS entry. + That entry specifies a border style dictionary that has more settings than the array specified for the Border + entry (see + + ). If an annotation dictionary includes the BS entry, then the Border + entry is ignored. If annotation includes AP (see + + ) it takes + precedence over the BS entry. For more info on BS entry see ISO-320001, Table 166. + + + + + which is a border style dictionary or null if it is not specified. + + + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + + + Sets border style dictionary that has more settings than the array specified for the Border entry ( + + ). + See ISO-320001, Table 166 and + + for more info. + + + a border style dictionary specifying the line width and dash pattern that shall be used + in drawing the annotation’s border. + + + this + + instance. + + + + Setter for the annotation's preset border style. + + Setter for the annotation's preset border style. Possible values are + + + + - A solid rectangle surrounding the annotation. + + + + - A dashed rectangle surrounding the annotation. + + + + - A simulated embossed rectangle that appears to be raised above the surface of the page. + + + + - A simulated engraved rectangle that appears to be recessed below the surface of the page. + + + + - A single line along the bottom of the annotation rectangle. + + + See also ISO-320001, Table 166. + + The new value for the annotation's border style. + + this + + instance. + + + + + Setter for the annotation's preset dashed border style. + + Setter for the annotation's preset dashed border style. This property has affect only if + + style was used for the annotation border style (see + . + See ISO-320001 8.4.3.6, "Line Dash Pattern" for the format in which dash pattern shall be specified. + + + a dash array defining a pattern of dashes and gaps that + shall be used in drawing a dashed border. + + + this + + instance. + + + + + A subclass of + + for Artifacts. + + + A subclass of + + for Artifacts. + In Tagged PDF, an object can be marked as an Artifact in order to signify + that it is more part of the document structure than of the document content. + Examples are page headers, layout features, etc. Screen readers can choose to + ignore Artifacts. + + + + + Creates a CanvasArtifact object, which is a + + with a role + of + Artifact. + + + + This class is designed for internal usage. + + This class is designed for internal usage.
    + Use PdfExtGState class and PdfCanvas#setExtGState() method for setting extended graphics properties. +
    +
    + + The current transformation matrix, which maps positions from user coordinates to device coordinates. + + + The current transformation matrix, which maps positions from user coordinates to device coordinates. + + We use an identity matrix as a default value, but in spec a default value is: + "a matrix that transforms default user coordinates to device coordinates". + + + + A description of the dash pattern to be used when paths are stroked. + + A description of the dash pattern to be used when paths are stroked. Default value is solid line. + + The line dash pattern is expressed as an array of the form [ dashArray dashPhase ], + where dashArray is itself an array and dashPhase is an integer. + + An empty dash array (first element in the array) and zero phase (second element in the array) + can be used to restore the dash pattern to a solid line. + + + + Internal empty and default constructor. + + + Copy constructor. + the Graphics State to copy from + + + Updates this object with the values from a dictionary. + the dictionary containing source parameters + + + current transformation matrix. + + + Updates current transformation matrix. + + Updates current transformation matrix. + The third column will always be [0 0 1] + + element at (1,1) of the transformation matrix + element at (1,2) of the transformation matrix + element at (2,1) of the transformation matrix + element at (2,2) of the transformation matrix + element at (3,1) of the transformation matrix + element at (3,2) of the transformation matrix + + + Updates current transformation matrix. + new current transformation matrix. + + + Updates current graphic state with values from extended graphic state dictionary. + the wrapper around the extended graphic state dictionary + + + Updates current graphic state with values from extended graphic state dictionary. + the wrapper around the extended graphic state dictionary + the document to retrieve fonts from. Needed when the newly created fonts are used + + + + This class represents a single tag on a single piece of marked content. + + This class represents a single tag on a single piece of marked content. + + In Tagged PDF, a tag is the basic structure unit for marking content. The tag + structure and hierarchy is largely comparable to HTML. As in HTML, every tag + type has a name, defined here in the role attribute. The tagging + mechanism in Tagged PDF is extensible, so PDF creators can choose to create + custom tags. + + + + The type of the tag. + + + The properties of the tag. + + + + Creates a tag that is referenced to the document's tag structure (i.e. + logical structure). + + the type of tag + + + + Creates a tag that is referenced to the document's tag structure (i.e. + logical structure). + + the type of tag + marked content id which serves as a reference to the document's logical structure + + + + Creates a tag that is referenced to the document's tag structure (i.e. + logical structure). + + + the + Marked Content Reference + wrapper object + + + + Get the role of the tag. + the role of the tag as a PdfName + + + Get the marked content id of the tag. + marked content id + + + Determine if an MCID is available + true if the MCID is available, false otherwise + + + + Sets a dictionary of properties to the + tag + 's properties. + + + Sets a dictionary of properties to the + tag + 's properties. All existing properties (if any) will be lost. + + a dictionary + + current + + + + + + Adds a single property to the + tag + 's properties. + + a key + the value for the key + + current + + + + + + Removes a single property from the + tag + 's properties. + + the key of the key-value pair to be removed + + current + + + + + + Gets a property from the + tag + 's properties dictionary. + + the key of the key-value pair to be retrieved + the value corresponding to the key + + + Get the properties of the tag. + properties of the tag + + + Gets value of /ActualText property. + + actual text value or + + if actual text is not defined + + + + + Implementation of + + which draws a dashed horizontal line over + the middle of the specified rectangle. + + + + + Creates an instance of + + with the specified line width. + + the line width + + + Gets line width in points. + line thickness + + + Sets line width in points. + new line width + + + + Implementation of + + which draws a dotted horizontal line along + the bottom edge of the specified rectangle. + + + + the gap between the dots. + + + Constructs a dotted horizontal line which will be drawn along the bottom edge of the specified rectangle. + + + + Constructs a dotted horizontal line which will be drawn along the bottom edge of the specified rectangle. + + the width of the line + the gap between the center of the dots of the dotted line. + + + Constructs a dotted horizontal line which will be drawn along the bottom edge of the specified rectangle. + + the width of the line + + + Getter for the gap between the center of the dots of the dotted line. + the gap between the center of the dots + + + Setter for the gap between the center of the dots of the dotted line. + the gap between the center of the dots + + + Gets line width in points + line thickness + + + Sets line width in points + new line width + + + + The + + defines a drawing operation on a + + + + The + + defines a drawing operation on a + +
    + This interface allows to customize the 'empty' space in a + com.itextpdf.layout.element.TabStop + through a Strategy design + pattern +
    +
    + + + Performs configurable drawing operations related to specific region + coordinates on a canvas. + + the canvas to draw on + + the rectangle in relation to which to fulfill drawing + instructions + + + + Gets the width of the line + width of the line + + + Sets line width in points + new line width + + + Gets the color of the line + color of the line + + + Sets line color + new line color + + + + Implementation of + + which draws a solid horizontal line along + the bottom edge of the specified rectangle. + + + + Constructs an instance of solid line drawer + + + Constructs an instance of solid line drawer with the specified line thickness + line width + + + Gets line width in points + line thickness + + + Sets line width in points + new line width + + + + This class contains variety of methods allowing to convert iText + abstractions into the abstractions of the Clipper library and vise versa. + + + This class contains variety of methods allowing to convert iText + abstractions into the abstractions of the Clipper library and vise versa. + + For example: + + + + to + + + + + to + + + + + to + + + + + + + + Since the clipper library uses integer coordinates, we should convert + our floating point numbers into fixed point numbers by multiplying by + this coefficient. + + + Since the clipper library uses integer coordinates, we should convert + our floating point numbers into fixed point numbers by multiplying by + this coefficient. Vary it to adjust the preciseness of the calculations. + + + + + Converts Clipper library + + abstraction into iText + + object. + + + + + object to convert + + + resultant + + object + + + + + Adds iText + + to the given + + object. + + + The + + object. + + + The + + object to be added to the + . + + + See + . + + + + + Adds all iText + + s of the iText + + to the + + object with one + note: it doesn't add degenerate subpaths. + + + the + + object to add all iText + + s that are not degenerated. + + + + + object, containing the required + + s + + + + + join type. The value could be + + , + + , + + + + + + end type. The value could be + + , + + , + + , + + , + + + + + + consisting of all degenerate iText + + s of the path. + + + + + Converts list of + + objects into list of + + objects. + + + the list of + + objects to convert + + + the resultant list of + + objects. + + + + + Converts list of + + objects into list of + + objects. + + + the list of + + objects to convert + + + the resultant list of + + objects. + + + + + Converts iText line join style constant into the corresponding constant + of the Clipper library. + + + iText line join style constant. See + + + Clipper line join style constant. + + + + Converts iText line cap style constant into the corresponding constant + of the Clipper library. + + + iText line cap style constant. See + + + Clipper line cap (end type) style constant. + + + + Converts iText filling rule constant into the corresponding constant + of the Clipper library. + + + Either + + or + . + + Clipper fill type constant. + + + + Adds polygon path based on array of + + (internally converting + them by + + ) and adds this path to + + instance, treating the path as + a closed polygon. + + + Adds polygon path based on array of + + (internally converting + them by + + ) and adds this path to + + instance, treating the path as + a closed polygon. + + The return value will be false if the path is invalid for clipping. A path is invalid for clipping when: + + it has less than 3 vertices; + + the vertices are all co-linear. + + + + + + + instance to which the created polygon path will be added. + + + an array of + + which will be internally converted + to clipper path and added to the clipper instance. + + + either + + or + + denoting whether added + path is a subject of clipping or a part of the clipping polygon. + + true if polygon path was successfully added, false otherwise. + + + + Adds polyline path based on array of + + (internally converting + them by + + ) and adds this path to + + instance, treating the path as + a polyline (an open path in terms of clipper library). + + + Adds polyline path based on array of + + (internally converting + them by + + ) and adds this path to + + instance, treating the path as + a polyline (an open path in terms of clipper library). This path is added to the subject of future clipping. + Polylines cannot be part of clipping polygon. + + The return value will be false if the path is invalid for clipping. A path is invalid for clipping when: + + it has less than 2 vertices; + + + + + + + instance to which the created polyline path will be added. + + + an array of + + which will be internally converted + to clipper path and added to the clipper instance. + + true if polyline path was successfully added, false otherwise. + + + Creates a new instance of ClipperException. + the detail message. + + + Represents the clipping path data. + + + + Creates a new + + instance. + + + the + canvas graphics state + + + the + + which represents current clipping path + + + the current + transformation matrix + + + + + Gets the + + which represents current clipping path. + + + the + + which represents current clipping path + + + + + Gets the current + transformation matrix. + + + the current + transformation matrix + + + + + Marker interface for the set of classes used to combine + parameters required for different types of events. + + + + Represents image data from a PDF. + + + The coordinate transformation matrix that was in effect when the image was rendered. + + + The color space dictionary from resources which are associated with the image. + + + Defines if the encountered image was inline. + + + Hierarchy of nested canvas tags for the text from the most inner (nearest to text) tag to the most outer. + + + + Creates an ImageRenderInfo. + + the hierarchy of nested canvas tags for the text from the most + inner (nearest to text) tag to the most outer + + + the + canvas graphics state + + the coordinate transformation matrix at the time the image is rendered + the image stream object + + the + name + of the image resource + + the color space dictionary from resources which are associated with the image + + defines if the encountered image was inline + + + Gets the image wrapped in ImageXObject. + + Gets the image wrapped in ImageXObject. + You can: + + get image bytes with + + , these image bytes + represent native image, i.e you can write these bytes to disk and get just an usual image; + + obtain PdfStream object which contains image dictionary with + + method; + + convert image to + + with + + ; + + + + + the + image + + + + Gets the name of the image resource. + + the + name + of the image resource + + + + Gets the vector in User space representing the start point of the image. + + the + vector + in User space representing the start point of the image + + + + Gets the coordinate transformation matrix in User space which was active when this image was rendered. + + + the coordinate transformation matrix in User space which was active when this image + was rendered + + + + Gets the size of the image in User space units. + the size of the image, in User space units + + + Gets the inline flag. + + + + if image was inlined in original stream + + + + Gets the color space dictionary of the image. + the color space dictionary from resources which are associated with the image + + + Gets hierarchy of the canvas tags that wraps given text. + list of the wrapping canvas tags. The first tag is the innermost (nearest to the text). + + + + Gets the marked-content identifier associated with this + + instance + + associated marked-content identifier or -1 in case content is unmarked + + + + Checks if the text belongs to a marked content sequence + with a given mcid. + + a marked content id + true if the text is marked with this id + + + + Checks if the text belongs to a marked content sequence + with a given mcid. + + a marked content id + indicates whether to check the topmost level of marked content stack only + + true if the text is marked with this id + + + Contains information relating to painting current path. + + + End the path object without filling or stroking it. + + End the path object without filling or stroking it. This operator shall be a path-painting no-op, + used primarily for the side effect of changing the current clipping path + + + + Value specifying stroke operation to perform on the current path. + + + Value specifying fill operation to perform on the current path. + + Value specifying fill operation to perform on the current path. When the fill operation + is performed it should use either nonzero winding or even-odd rule. + + + + Hierarchy of nested canvas tags for the text from the most inner (nearest to text) tag to the most outer. + + + + + Creates the new + + instance. + + the canvas tag hierarchy + the graphics state + the path to be rendered + + one of the possible combinations of + + and + + values or + + + + either + + or + + + + + + indicates that current path modifies the clipping path + + + either + + or + + + + + + If the operation is + + then the rule is ignored, + otherwise + + is used by default. + + + If the operation is + + then the rule is ignored, + otherwise + + is used by default. + With this constructor path is considered as not modifying clipping path. + + See + + + the canvas tag hierarchy + the graphics state + the path to be rendered + + one of the possible combinations of + + and + + values or + + + + + + Gets the + + to be rendered + + + the + + to be rendered + + + + + Gets the + int + value which is either + + or one of possible + combinations of + + and + . + + the operation value + + + + Gets either + + or + . + + the rule value + + + Gets the clipping path flag. + + + + indicates that current path modifies the clipping path + + + + + Gets either + + or + . + + the clipping rule value + + + Gets the current transformation matrix. + + the current transformation + matrix + + + + Gets the path's line width. + the path's line width + + + Gets the line cap style. + + Gets the line cap style. See + . + + the line cap style value + + + Gets the line join style. + + Gets the line join style. See + . + + the line join style value + + + Gets the miter limit. + the miter limit + + + Gets the path's dash pattern. + + the path's dash pattern as a + + + + + Gets the path's stroke color. + + the path's stroke + color + + + + Gets the path's fill color. + + the path's fill + color + + + + Gets hierarchy of the canvas tags that wraps given text. + list of the wrapping canvas tags. The first tag is the innermost (nearest to the text) + + + + Gets the marked-content identifier associated with this + + instance + + associated marked-content identifier or -1 in case content is unmarked + + + + Checks if the text belongs to a marked content sequence + with a given mcid. + + a marked content id + + + + if the text is marked with this id + + + + + Checks if the text belongs to a marked content sequence + with a given mcid. + + a marked content id + indicates whether to check the topmost level of marked content stack only + + + + + if the text is marked with this id + + + + + Provides information and calculations needed by render listeners + to display/evaluate text render operations. + + + Provides information and calculations needed by render listeners + to display/evaluate text render operations. +

    + This is passed between the + + and + + objects as text rendering operations are + discovered +
    +
    + + Hierarchy of nested canvas tags for the text from the most inner (nearest to text) tag to the most outer. + + + + Creates a new TextRenderInfo object + the PDF string that should be displayed + the graphics state (note: at this time, this is not immutable, so don't cache it) + the text matrix at the time of the render operation + the marked content tags sequence, if available + + + Used for creating sub-TextRenderInfos for each individual character. + the parent TextRenderInfo + the content of a TextRenderInfo + the unscaled horizontal offset of the character that this TextRenderInfo represents + + + + Gets the text to be rendered according to canvas operators. + the text to render + + + original PDF string + + + Gets original Text matrix. + text matrix. + + + + Checks if the text belongs to a marked content sequence + with a given mcid. + + a marked content id + true if the text is marked with this id + + + + Checks if the text belongs to a marked content sequence + with a given mcid. + + a marked content id + indicates whether to check the topmost level of marked content stack only + + true if the text is marked with this id + + + + Gets the marked-content identifier associated with this + + instance + + associated marked-content identifier or -1 in case content is unmarked + + + + Gets the baseline for the text (i.e. the line that the text 'sits' on) + This value includes the Rise of the draw operation - see + + for the amount added by Rise + + the baseline line segment + + + Gets the ascent line for the text (i.e. the line that represents the topmost extent that a string of the current font could have). + + + Gets the ascent line for the text (i.e. the line that represents the topmost extent that a string of the current font could have). + This value includes the Rise of the draw operation - see + + for the amount added by Rise. + + a LineSegment instance + + + Gets the descent line for the text (i.e. the line that represents the bottom most extent that a string of the current font could have). + + + Gets the descent line for the text (i.e. the line that represents the bottom most extent that a string of the current font could have). + This value includes the Rise of the draw operation - see + + for the amount added by Rise. + + a LineSegment instance + + + Getter for the font + the font + + + The rise represents how far above the nominal baseline the text should be rendered. + + The rise represents how far above the nominal baseline the text should be rendered. The + + , + + and + + methods already include Rise. + This method is exposed to allow listeners to determine if an explicit rise was involved in the computation of the baseline (this might be useful, for example, for identifying superscript rendering) + + The Rise for the text draw operation, in user space units (Ts value, scaled to user space) + + + Provides detail useful if a listener needs access to the position of each individual glyph in the text render operation + + + A list of + + objects that represent each glyph used in the draw operation. The next effect is if there was a separate Tj opertion for each character in the rendered string + + + + The width, in user space units, of a single space character in the current font + + + + the text render mode that should be used for the text. From the + PDF specification, this means: + + 0 = Fill text + + 1 = Stroke text + + 2 = Fill, then stroke text + + 3 = Invisible + + 4 = Fill text and add to path for clipping + + 5 = Stroke text and add to path for clipping + + 6 = Fill, then stroke text and add to path for clipping + + 7 = Add text to padd for clipping + + + + + + the current fill color. + + + the current stroke color. + + + Gets /ActualText tag entry value if this text chunk is marked content. + /ActualText value or null if none found + + + Gets /E tag (expansion text) entry value if this text chunk is marked content. + /E value or null if none found + + + + Determines if the text represented by this + + instance is written in a text showing operator + wrapped by /ReversedChars marked content sequence + + true if this text block lies within /ReversedChars block, false otherwise + + + Gets hierarchy of the canvas tags that wraps given text. + list of the wrapping canvas tags. The first tag is the innermost (nearest to the text). + + + the unscaled (i.e. in Text space) width of the text + + + the width, in text space + the width in user space + + + the height, in text space + the height in user space + + + Calculates the width of a space character in text space units. + the width of a single space character in text space units + + + Gets the width of a PDF string in text space units + the string that needs measuring + the width of a String in text space units + + + Calculates width and word spacing of a single character PDF string. + + Calculates width and word spacing of a single character PDF string. + IMPORTANT: Shall ONLY be used for a single character pdf strings. + + a character to calculate width. + array of 2 items: first item is a character width, second item is a calculated word spacing. + + + Converts a single character string to char code. + single character string to convert to. + char code. + + + Split PDF string into array of single character PDF strings. + PDF string to be split. + split PDF string. + + + Specifies different types of events where a callback should be notified. + + + This is an interface which helps to filter events. + + + + This method checks an event and decides whether it should be processed further (corresponds to + + return value), or filtered out (corresponds to + + return value). + + event data + event type + true to process event further, false to filter event out + + + + This + + implementation only accepts text render events within the specified + rectangular region. + + + + Constructs a filter instance. + the rectangle to filter text against + + + Root interface for a series of handlers for content stream operators. + + + Called when a content operator should be processed. + The processor that is dealing with the PDF content stream. + The literal PDF syntax of the operator. + The operands that come with the operator. + + + This class represents a single character and its bounding box + + + + This method converts a + + of + . + + + This method converts a + + of + . + The returned data structure contains both the plaintext + and the mapping of indices (from the list to the string). + These indices can differ; if there is sufficient spacing between two CharacterRenderInfo + objects, this algorithm will decide to insert space. The inserted space will cause + the indices to differ by at least 1. + + + + This class acts as a default implementation of IPdfTextLocation + + + An event listener which filters events on the fly before passing them on to the delegate. + + + + Constructs a + + empty instance. + + + Constructs a + + empty instance. + Use + + to add an event listener along with its filters. + + + + + Constructs a + + instance with one delegate. + + + Constructs a + + instance with one delegate. + Use + + to add more + + delegates + along with their filters. + + a delegate that will be called when all the corresponding filters for an event pass + + filters attached to the delegate that will be tested before passing an event on to the delegate + + + + + Attaches another + + delegate with its filters. + + + Attaches another + + delegate with its filters. + When all the filters attached to the delegate for an event accept the event, the event will be passed on to + the delegate. + You can attach multiple delegates to this + + instance. The content stream will + be parsed just once, so it is better for performance than creating multiple + + instances and parsing the content stream multiple times. This is useful, for instance, when you want + to extract content from multiple regions of a page. + + the type of the delegate + a delegate that will be called when all the corresponding filters for an event pass + + filters attached to the delegate that will be tested before passing an event on to the delegate + + delegate that has been passed to the method, used for convenient call chaining + + + A text event listener which filters events on the fly before passing them on to the delegate. + + A text event listener which filters events on the fly before passing them on to the delegate. + The only difference from + + is that this class conveniently implements + + and can therefore used as a strategy on its own, apart from the inherited + function of filtering event appropriately to its delegates. + + + + + Constructs a + + instance with a + + delegate. + + a delegate that fill be called when all the corresponding filters for an event pass + + filters attached to the delegate that will be tested before passing an event on to the delegate + + + + + As an resultant text we use the concatenation of all the resultant text of all the delegates that implement + . + + the resulting concatenation of the text extracted from the delegates + + + + This class expands each + + for + + event types into + multiple + + instances for each glyph occurred. + + + + + Constructs a + + instance by a delegate to which the expanded text events for each + glyph occurred will be passed on. + + delegate to pass the expanded glyph render events to. + + + + This class expands each + + for + + event types into + multiple + + instances for each glyph occurred. + + + This class expands each + + for + + event types into + multiple + + instances for each glyph occurred. + The only difference from + + is that this class conveniently implements + + and can therefore used as a strategy on its own. + + + + + Constructs a + + instance by a + + delegate to which + the expanded text events for each glyph occurred will be passed on. + + delegate to pass the expanded glyph render events to. + + + + As an resultant text we use the the resultant text of the delegate that implement + + and was passed to this class. + + the resulting text extracted from the delegate + + + + A callback interface that receives notifications from the + + as various events occur (see + + ). + + + + Called when some event occurs during parsing a content stream. + Combines the data required for processing corresponding event type. + Event type. + + + Provides the set of event types this listener supports. + + Provides the set of event types this listener supports. + Returns null if all possible event types are supported. + + + Set of event types supported by this listener or + null if all possible event types are supported. + + + + + This is a special interface for + + that returns a collection of rectangles as result of its work. + + + + + Returns the + + s that have been processed so far. + + + + + < + + > instance with the current resultant IPdfTextLocations + + + + + Instances of this interface represent a piece of text, + somewhere on a page in a pdf document. + + + + + the visual + + in which the text is located + + + + the text + + + Get the page number of the page on which the text is located + the page number, or 0 if no page number was set + + + + This is a special interface for + + that returns text as result of its work. + + + + Returns the text that has been processed so far. + + + + instance with the current resultant text + + + + set to true for debugging + + + a summary of all found text + + + Creates a new text extraction renderer. + + + + Creates a new text extraction renderer, with a custom strategy for + creating new TextChunkLocation objects based on the input of the + TextRenderInfo. + + the custom strategy + + + + Changes the behavior of text extraction so that if the parameter is set to + + , + /ActualText marked content property will be used instead of raw decoded bytes. + + + Changes the behavior of text extraction so that if the parameter is set to + + , + /ActualText marked content property will be used instead of raw decoded bytes. + Beware: the logic is not stable yet. + + true to use /ActualText, false otherwise + this object + + + Sets if text flows from left to right or from right to left. + + Sets if text flows from left to right or from right to left. + Call this method with true argument for extracting Arabic, Hebrew or other + text with right-to-left writing direction. + + value specifying whether the direction should be right to left + this object + + + + Gets the value of the property which determines if /ActualText will be used when extracting + the text + + true if /ActualText value is used, false otherwise + + + Determines if a space character should be inserted between a previous chunk and the current chunk. + + + Determines if a space character should be inserted between a previous chunk and the current chunk. + This method is exposed as a callback so subclasses can fine time the algorithm for determining whether a space should be inserted or not. + By default, this method will insert a space if the there is a gap of more than half the font space character width between the end of the + previous chunk and the beginning of the current chunk. It will also indicate that a space is needed if the starting point of the new chunk + appears *before* the end of the previous chunk (i.e. overlapping text). + + the new chunk being evaluated + the chunk that appeared immediately before the current chunk + true if the two chunks represent different words (i.e. should have a space between them). False otherwise. + + + + Checks if the string starts with a space character, false if the string is empty or starts with a non-space character. + + the string to be checked + true if the string starts with a space character, false if the string is empty or starts with a non-space character + + + + Checks if the string ends with a space character, false if the string is empty or ends with a non-space character + + the string to be checked + true if the string ends with a space character, false if the string is empty or ends with a non-space character + + + + Used for debugging only + + + This class is designed to search for the occurrences of a regular expression and return the resultant rectangles. + + + + + Convert + + to + + This method is public and not final so that custom implementations can choose to override it. + + + Convert + + to + + This method is public and not final so that custom implementations can choose to override it. + Other implementations of + CharacterRenderInfo + may choose to store different properties than + merely the + + describing the bounding box. E.g. a custom implementation might choose to + store + + information as well, to better match the content surrounding the redaction + . + + + + + object + + + a list of + + s which represents the passed + + ? + + + + + Converts + + objects to + + s + This method is protected and not final so that custom implementations can choose to override it. + + + Converts + + objects to + + s + This method is protected and not final so that custom implementations can choose to override it. + E.g. other implementations may choose to add padding/margin to the Rectangles. + This method also offers a convenient access point to the mapping of + + to + . + This mapping enables (custom implementations) to match color of text in redacted Rectangles, + or match color of background, by the mere virtue of offering access to the + + objects + that generated the + . + + + list of + + objects + + an array containing the elements of this list + + + used to store the resulting String. + + + Returns the result so far. + a String with the resulting text. + + + Used to actually append text to the text results. + + Used to actually append text to the text results. Subclasses can use this to insert + text that wouldn't normally be included in text parsing (e.g. result of OCR performed against + image content) + + the text to append to the text results accumulated so far + + + Represents a chunk of text, it's orientation, and location relative to the orientation vector + + + the text of the chunk + + + the text captured by this chunk + + + The starting location of the chunk. + + + The ending location of the chunk. + + + Unit vector in the orientation of the chunk. + + + The orientation as a scalar for quick sorting. + + + Perpendicular distance to the orientation unit vector (i.e. the Y position in an unrotated coordinate system). + + + Perpendicular distance to the orientation unit vector (i.e. the Y position in an unrotated coordinate system). + We round to the nearest integer to handle the fuzziness of comparing floats. + + + + Distance of the start of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system). + + + + Distance of the end of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system). + + + + The width of a single space character in the font of the chunk. + + + the start location of the text + + + the end location of the text + + + the width of a single space character as rendered by this chunk + + + the location to compare to + true is this location is on the the same line as the other + + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + + + the number of spaces between the end of 'other' and the beginning of this chunk + + + This class allows you to find the rectangle which contains all the text in the given content stream. + + + + + Returns the common text rectangle, containing all the text found in the stream so far, ot + + , if no + text has been found yet. + + common text rectangle + + + + Internal class which is essentially a + + which supports tracking of + clipping path state and changes. + + + + Internal empty and default constructor. + + + Copy constructor. + the Graphics State to copy from + + + Intersects the current clipping path with the given path. + + Intersects the current clipping path with the given path. + Note: Coordinates of the given path should be in + the transformed user space. + + The path to be intersected with the current clipping path. + + The filling rule which should be applied to the given path. + It should be either + + or + + + + + Getter for the current clipping path. + + Getter for the current clipping path. + Note: The returned clipping path is in the transformed user space, so + if you want to get it in default user space, apply transformation matrix ( + + ). + + The current clipping path. + + + Sets the current clipping path to the specified path. + + Sets the current clipping path to the specified path. + Note:This method doesn't modify existing clipping path, + it simply replaces it with the new one instead. + + New clipping path. + + + Processor for a PDF content stream. + + + Listener that will be notified of render events + + + + Cache supported events in case the user's + + method is not very efficient + + + + + Indicates whether the current clipping path should be modified by + intersecting it with the current path. + + + + + Specifies the filling rule which should be applied while calculating + new clipping path. + + + + A map with all supported operators (PDF syntax). + + + Resources for the content stream. + + Resources for the content stream. + Current resources are always at the top of the stack. + Stack is needed in case if some "inner" content stream with it's own resources + is encountered (like Form XObject). + + + + Stack keeping track of the graphics state. + + + A map with all supported XObject handlers + + + The font cache + + + A stack containing marked content info. + + + + Creates a new PDF Content Stream Processor that will send its output to the + designated render listener. + + + the + + that will receive rendering notifications + + + + + Creates a new PDF Content Stream Processor that will send its output to the + designated render listener. + + + Creates a new PDF Content Stream Processor that will send its output to the + designated render listener. + Also allows registration of custom IContentOperators that can influence + how (and whether or not) the PDF instructions will be parsed. + + + the + + that will receive rendering notifications + + + an optional map of custom + + s for rendering instructions + + + + Registers a Do handler that will be called when Do for the provided XObject subtype is encountered during content processing. + + + Registers a Do handler that will be called when Do for the provided XObject subtype is encountered during content processing. +
    + If you register a handler, it is a very good idea to pass the call on to the existing registered handler (returned by this call), otherwise you + may inadvertently change the internal behavior of the processor. +
    + the XObject subtype this handler will process, or PdfName.DEFAULT for a catch-all handler + + the handler that will receive notification when the Do operator for the specified subtype is encountered + + the existing registered handler, if any +
    + + Registers a content operator that will be called when the specified operator string is encountered during content processing. + + + Registers a content operator that will be called when the specified operator string is encountered during content processing. +
    + If you register an operator, it is a very good idea to pass the call on to the existing registered operator (returned by this call), otherwise you + may inadvertently change the internal behavior of the processor. +
    + the operator id, or DEFAULT_OPERATOR for a catch-all operator + the operator that will receive notification when the operator is encountered + the existing registered operator, if any +
    + + + Gets the + + containing all the registered operators strings. + + + + + containing all the registered operators strings. + + + + Resets the graphics state stack, matrices and resources. + + + + Gets the current + + + + the current + + + + + Processes PDF syntax. + + Processes PDF syntax. + Note: If you re-use a given + + , you must call + + + the bytes of a content stream + the resources of the content stream. Must not be null. + + + Processes PDF syntax. + + Processes PDF syntax. + Note: If you re-use a given + + , you must call + + + the page to process + + + + Accessor method for the + + object maintained in this class. + + + Accessor method for the + + object maintained in this class. + Necessary for implementing custom ContentOperator implementations. + + the renderListener + + + Loads all the supported graphics and text state operators in a map. + + + Displays the current path. + + One of the possible combinations of + + and + + values or + + + + Either + + or + + In case it isn't applicable pass any byte value. + + + + Invokes an operator. + the PDF Syntax of the operator + a list with operands + + + + Creates a + + object by a font dictionary. + + + Creates a + + object by a font dictionary. The font may have been cached in case + it is an indirect object. + + + the + font dictionary + to create the font from + + the created font + + + Add to the marked content stack + the tag of the marked content + the PdfDictionary associated with the marked content + + + Remove the latest marked content from the stack. + Remove the latest marked content from the stack. Keeps track of the BMC, BDC and EMC operators. + + + Used to trigger beginTextBlock on the renderListener + + + Used to trigger endTextBlock on the renderListener + + + This is a proxy to pass only those events to the event listener which are supported by it. + event data + event type + + + Displays text. + the text to display + + + Displays an XObject using the registered handler for this XObject's subtype + the name of the XObject to retrieve from the resource dictionary + + + Adjusts the text matrix for the specified adjustment value (see TJ operator in the PDF spec for information) + + the text adjustment + + + A handler that implements operator (unregistered). + + + + + + A handler that implements operator (TJ). + A handler that implements operator (TJ). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator ("). + A handler that implements operator ("). For more information see Table 51 ISO-32000-1 + + + Create new instance of this handler. + the handler for Tw operator + the handler for Tc operator + the handler for ' operator + + + + + + A handler that implements operator ('). + A handler that implements operator ('). For more information see Table 51 ISO-32000-1 + + + Creates the new instance of this handler + the handler for T* operator + the handler for Tj operator + + + + + + A handler that implements operator (Tj). + A handler that implements operator (Tj). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (T*). + A handler that implements operator (T*). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Tm). + A handler that implements operator (Tm). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (TD). + A handler that implements operator (TD). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Td). + A handler that implements operator (Td). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Tf). + A handler that implements operator (Tf). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Tr). + A handler that implements operator (Tr). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Ts). + A handler that implements operator (Ts). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (TL). + A handler that implements operator (TL). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Tz). + A handler that implements operator (Tz). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Tc). + A handler that implements operator (Tc). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Tw). + A handler that implements operator (Tw). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (gs). + A handler that implements operator (gs). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (q). + A handler that implements operator (q). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (cm). + A handler that implements operator (cm). For more information see Table 51 ISO-32000-1 + + + + + + Gets a color based on a list of operands and Color space. + + + Gets a color based on a list of operands. + + + A handler that implements operator (Q). + A handler that implements operator (Q). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (g). + A handler that implements operator (g). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (G). + A handler that implements operator (G). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (rg). + A handler that implements operator (rg). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (RG). + A handler that implements operator (RG). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (k). + A handler that implements operator (k). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (K). + A handler that implements operator (K). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (CS). + A handler that implements operator (CS). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (cs). + A handler that implements operator (cs). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (sc / scn). + A handler that implements operator (sc / scn). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (SC / SCN). + A handler that implements operator (SC / SCN). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (BT). + A handler that implements operator (BT). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (ET). + A handler that implements operator (ET). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (BMC). + A handler that implements operator (BMC). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (BDC). + A handler that implements operator (BDC). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (EMC). + A handler that implements operator (EMC). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (Do). + A handler that implements operator (Do). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (EI). + + A handler that implements operator (EI). For more information see Table 51 ISO-32000-1 + BI and ID operators are parsed along with this operator. + This not a usual operator, it will have a single operand, which will be a PdfStream object which + encapsulates inline image dictionary and bytes + + + + + + + A handler that implements operator (w). + A handler that implements operator (w). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (J). + A handler that implements operator (J). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (j). + A handler that implements operator (j). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (M). + A handler that implements operator (M). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (d). + A handler that implements operator (d). For more information see Table 51 ISO-32000-1 + + + + + + An XObject subtype handler for FORM + + + An XObject subtype handler for IMAGE + + + An XObject subtype handler that does nothing + + + A handler that implements operator (m). + A handler that implements operator (m). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (l). + A handler that implements operator (l). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (c). + A handler that implements operator (c). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (v). + A handler that implements operator (v). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (y). + A handler that implements operator (y). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (h). + A handler that implements operator (h). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (re). + A handler that implements operator (re). For more information see Table 51 ISO-32000-1 + + + + + + A handler that implements operator (S, s, f, F, f*, B, B*, b, b*). + A handler that implements operator (S, s, f, F, f*, B, B*, b, b*). For more information see Table 51 ISO-32000-1 + + + + Constructs PainPath object. + + One of the possible combinations of + + and + + values or + + + + Either + + or + + In case it isn't applicable pass any value. + + Indicates whether the path should be closed or not. + + + + + + A handler that implements operator (W, W*). + A handler that implements operator (W, W*). For more information see Table 51 ISO-32000-1 + + + + + + + A utility class that makes it cleaner to process content from pages of a + + through a specified RenderListener. + + + + Processes content from the specified page number using the specified listener. + + Processes content from the specified page number using the specified listener. + Also allows registration of custom IContentOperators that can influence + how (and whether or not) the PDF instructions will be parsed. + + the type of the renderListener - this makes it easy to chain calls + the page number to process + the listener that will receive render callbacks + an optional map of custom ContentOperators for rendering instructions + + the provided renderListener + + + Processes content from the specified page number using the specified listener + the type of the renderListener - this makes it easy to chain calls + the page number to process + the listener that will receive render callbacks + the provided renderListener + + + Extract text from a specified page using an extraction strategy. + + Extract text from a specified page using an extraction strategy. + Also allows registration of custom IContentOperators that can influence + how (and whether or not) the PDF instructions will be parsed. + Extraction strategy must be passed as a new object for every single page. + + the page for the text to be extracted from + the strategy to use for extracting text + + an optional map of custom + + s for rendering instructions + + the extracted text + + + Extract text from a specified page using an extraction strategy. + + Extract text from a specified page using an extraction strategy. + Extraction strategy must be passed as a new object for every single page. + + the page for the text to be extracted from + the strategy to use for extracting text + the extracted text + + + Extract text from a specified page using the default strategy. + + Extract text from a specified page using the default strategy. + Node: the default strategy is subject to change. If using a specific strategy + is important, please use + . + + the page for the text to be extracted from + the extracted text + + + Utility methods to help with processing of inline images + + + + Simple class in case users need to differentiate an exception from processing + inline images vs other exceptions + + + + + Map between key abbreviations allowed in dictionary of inline images and their + equivalent image dictionary keys + + + + Map between value abbreviations allowed in dictionary of inline images for COLORSPACE + + + Map between value abbreviations allowed in dictionary of inline images for FILTER + + + Parses an inline image from the provided content parser. + + Parses an inline image from the provided content parser. The parser must be positioned immediately following the BI operator in the content stream. + The parser will be left with current position immediately following the EI operator that terminates the inline image + + the content parser to use for reading the image. + a color space dictionary + the parsed image + + + the name of the color space. If null, a bi-tonal (black and white) color space is assumed. + + the components per pixel for the specified color space + + + Parses the next inline image dictionary from the parser. + + Parses the next inline image dictionary from the parser. The parser must be positioned immediately following the BI operator. + The parser will be left with position immediately following the whitespace character that follows the ID operator that ends the inline image dictionary. + + the parser to extract the embedded image information from + the dictionary for the inline image, with any abbreviations converted to regular image dictionary keys and values + + + + Transforms value abbreviations into their corresponding real value + the key that the value is for + the value that might be an abbreviation + if value is an allowed abbreviation for the key, the expanded value for that abbreviation. Otherwise, value is returned without modification + + + + Computes the number of unfiltered bytes that each row of the image will contain. + + Computes the number of unfiltered bytes that each row of the image will contain. + If the number of bytes results in a partial terminating byte, this number is rounded up + per the PDF specification + + the dictionary of the inline image + the number of bytes per row of the image + + + Parses the samples of the image from the underlying content parser, ignoring all filters. + + Parses the samples of the image from the underlying content parser, ignoring all filters. + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + This is primarily useful if no filters have been applied. + + the dictionary of the inline image + the content parser + the samples of the image + + + + Parses the samples of the image from the underlying content parser, accounting for filters + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + + + Parses the samples of the image from the underlying content parser, accounting for filters + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + Note:This implementation does not actually apply the filters at this time + + the dictionary of the inline image + the content parser + the samples of the image + + + This method acts like a check that bytes that were parsed are really all image bytes. + + This method acts like a check that bytes that were parsed are really all image bytes. If it's true, + then decoding will succeed, but if not all image bytes were read and "<ws>EI<ws>" bytes were just a part of the image, + then decoding should fail. + Not the best solution, but probably there is no better and more reliable way to check this. + + Drawbacks: slow; images with DCTDecode, JBIG2Decode and JPXDecode filters couldn't be checked as iText doesn't + support these filters; what if decoding will succeed eventhough it's not all bytes?; also I'm not sure that all + filters throw an exception in case data is corrupted (For example, FlateDecodeFilter seems not to throw an exception). + + + + Parses the page or form XObject content. + Paulo Soares + + + Holds value of property tokeniser. + + + Creates a new instance of PdfContentParser + the tokeniser with the content + + + Creates a new instance of PdfContentParser + the tokeniser with the content + + current resources of the content stream. + It is optional parameter, which is used for performance improvements of specific cases of + inline images parsing. + + + + Parses a single command from the content. + + Parses a single command from the content. Each command is output as an array of arguments + having the command itself as the last element. The returned array will be empty if the + end of content was reached. +
    + A specific behaviour occurs when inline image is encountered (BI command): + in that case, parser would continue parsing until it meets EI - end of the inline image; + as a result in this case it will return an array with inline image dictionary and image bytes + encapsulated in PdfStream object as first element and EI command as second element. +
    + + an ArrayList to use. It will be cleared before using. If it's + null will create a new ArrayList + + the same ArrayList given as argument or a new one +
    + + Gets the tokeniser. + the tokeniser. + + + Sets the tokeniser. + the tokeniser + + + Reads a dictionary. + Reads a dictionary. The tokeniser must be positioned past the "<<" token. + the dictionary + + + Reads an array. + Reads an array. The tokeniser must be positioned past the "[" token. + an array + + + Reads a pdf object. + the pdf object + + + Reads the next token skipping over the comments. + true if a token was read, false if the end of content was reached + + + PdfCanvas class represents an algorithm for writing data into content stream. + + PdfCanvas class represents an algorithm for writing data into content stream. + To write into page content, create PdfCanvas from a page instance. + To write into form XObject, create PdfCanvas from a form XObject instance. + Make sure to call PdfCanvas.release() after you finished writing to the canvas. + It will save some memory. + + + + a LIFO stack of graphics state saved states. + + + the current graphics state. + + + the content stream for this canvas object. + + + the resources for the page that this canvas belongs to. + + + + the document that the resulting content stream of this canvas will be written to. + + + a counter variable for the marked content stack. + + + The list where we save/restore the layer depth. + + + Creates PdfCanvas from content stream of page, form XObject, pattern etc. + The content stream + The resources, a specialized dictionary that can be used by PDF instructions in the content stream + + The document that the resulting content stream will be written to + + + Convenience method for fast PdfCanvas creation by a certain page. + page to create canvas from. + + + Convenience method for fast PdfCanvas creation by a certain page. + page to create canvas from. + + true to wrap all old content streams into q/Q operators so that the state of old + content streams would not affect the new one + + + + Creates a PdfCanvas from a PdfFormXObject. + the PdfFormXObject used to create the PdfCanvas + the document to which the resulting content stream will be written + + + Convenience method for fast PdfCanvas creation by a certain page. + The document + The page number + + + Get the resources of the page that this canvas belongs to.. + PdfResources of the page that this canvas belongs to.. + + + Get the document this canvas belongs to + PdfDocument the document that this canvas belongs to + + + Attaches new content stream to the canvas. + + Attaches new content stream to the canvas. + This method is supposed to be used when you want to write in different PdfStream keeping context (gsStack, currentGs, ...) the same. + + a content stream to attach. + + + + Gets current + . + + container containing properties for the current state of the canvas. + + + Releases the canvas. + + Releases the canvas. + Use this method after you finished working with canvas. + + + + Saves graphics state. + current canvas. + + + Restores graphics state. + current canvas. + + + + Concatenates the 2x3 affine transformation matrix to the current matrix + in the content stream managed by this Canvas. + + + Concatenates the 2x3 affine transformation matrix to the current matrix + in the content stream managed by this Canvas. + Contrast with + + + operand 1,1 in the matrix. + operand 1,2 in the matrix. + operand 2,1 in the matrix. + operand 2,2 in the matrix. + operand 3,1 in the matrix. + operand 3,2 in the matrix. + current canvas + + + + Concatenates the 2x3 affine transformation matrix to the current matrix + in the content stream managed by this Canvas. + + + Concatenates the 2x3 affine transformation matrix to the current matrix + in the content stream managed by this Canvas. + If an array not containing the 6 values of the matrix is passed, + The current canvas is returned unchanged. + + affine transformation stored as a PdfArray with 6 values + current canvas + + + + Concatenates the affine transformation matrix to the current matrix + in the content stream managed by this Canvas. + + affine transformation matrix to be concatenated to the current matrix + current canvas + + + + Begins text block (PDF BT operator). + current canvas. + + + Ends text block (PDF ET operator). + current canvas. + + + Begins variable text block + current canvas + + + Ends variable text block + current canvas + + + Sets font and size (PDF Tf operator). + The font + The font size. + The edited canvas. + + + Moves text by shifting text line matrix (PDF Td operator). + x coordinate. + y coordinate. + current canvas. + + + Sets the text leading parameter. + + Sets the text leading parameter. +
    + The leading parameter is measured in text space units. It specifies the vertical distance + between the baselines of adjacent lines of text. +
    +
    + the new leading. + current canvas. +
    + + Moves to the start of the next line, offset from the start of the current line. + + Moves to the start of the next line, offset from the start of the current line. +
    + As a side effect, this sets the leading parameter in the text state. +
    +
    + offset of the new current point + y-coordinate of the new current point + current canvas. +
    + + Moves to the start of the next line. + current canvas. + + + + Moves to the next line and shows + . + + the text to write + current canvas. + + + Moves to the next line and shows text string, using the given values of the character and word spacing parameters. + + a parameter + a parameter + the text to write + current canvas. + + + Sets text rendering mode. + text rendering mode @see PdfCanvasConstants. + current canvas. + + + Sets the text rise parameter. + + Sets the text rise parameter. +
    + This allows to write text in subscript or superscript mode. +
    +
    + a parameter + current canvas. +
    + + Sets the word spacing parameter. + a parameter + current canvas. + + + Sets the character spacing parameter. + a parameter + current canvas. + + + Sets the horizontal scaling parameter. + a parameter. + current canvas. + + + Replaces the text matrix. + + Replaces the text matrix. Contrast with + + + operand 1,1 in the matrix. + operand 1,2 in the matrix. + operand 2,1 in the matrix. + operand 2,2 in the matrix. + operand 3,1 in the matrix. + operand 3,2 in the matrix. + current canvas. + + + Replaces the text matrix. + + Replaces the text matrix. Contrast with + + + new textmatrix as transformation + current canvas + + + Changes the text matrix. + operand 3,1 in the matrix. + operand 3,2 in the matrix. + current canvas. + + + Shows text (operator Tj). + text to show. + current canvas. + + + Shows text (operator Tj). + text to show. + current canvas. + + + Shows text (operator Tj). + text to show. + + iterator over parts of the glyph line that should be wrapped into some marked content groups, + e.g. /ActualText or /ReversedChars + + current canvas. + + + Finds horizontal distance between the start of the `from` glyph and end of `to` glyph. + + Finds horizontal distance between the start of the `from` glyph and end of `to` glyph. + Glyphs with placement are ignored. + XAdvance is not taken into account neither before `from` nor after `to` glyphs. + + + + Shows text (operator TJ) + + the text array. Each element of array can be a string or a number. + If the element is a string, this operator shows the string. + If it is a number, the operator adjusts the text position by that amount. + The number is expressed in thousandths of a unit of text space. + This amount is subtracted from the current horizontal or vertical coordinate, depending on the writing mode. + + current canvas. + + + Move the current point (x, y), omitting any connecting line segment. + x coordinate. + y coordinate. + current canvas. + + + Appends a straight line segment from the current point (x, y). + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + x coordinate. + y coordinate. + current canvas. + + + Appends a B&#xea;zier curve to the path, starting from the current point. + x coordinate of the first control point. + y coordinate of the first control point. + x coordinate of the second control point. + y coordinate of the second control point. + x coordinate of the ending point. + y coordinate of the ending point. + current canvas. + + + Appends a Bezier curve to the path, starting from the current point. + x coordinate of the second control point. + y coordinate of the second control point. + x coordinate of the ending point. + y coordinate of the ending point. + current canvas. + + + Appends a Bezier curve to the path, starting from the current point. + x coordinate of the first control point. + y coordinate of the first control point. + x coordinate of the ending point. + y coordinate of the ending point. + current canvas. + + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + a corner of the enclosing rectangle. + a corner of the enclosing rectangle. + a corner of the enclosing rectangle. + a corner of the enclosing rectangle. + starting angle in degrees. + angle extent in degrees. + current canvas. + + + + Draws a partial ellipse with the preceding line to the start of the arc to prevent path + broking. + + + Draws a partial ellipse with the preceding line to the start of the arc to prevent path + broking. The target arc is inscribed within the rectangle x1,y1,x2,y2, starting + at startAng degrees and covering extent degrees. Angles start with 0 to the right (+x) + and increase counter-clockwise. + + a corner of the enclosing rectangle + a corner of the enclosing rectangle + a corner of the enclosing rectangle + a corner of the enclosing rectangle + starting angle in degrees + angle extent in degrees + the current canvas + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + a corner of the enclosing rectangle + a corner of the enclosing rectangle + a corner of the enclosing rectangle + a corner of the enclosing rectangle + current canvas. + + + Generates an array of bezier curves to draw an arc. + + Generates an array of bezier curves to draw an arc. +
    + (x1, y1) and (x2, y2) are the corners of the enclosing rectangle. + Angles, measured in degrees, start with 0 to the right (the positive X + axis) and increase counter-clockwise. The arc extends from startAng + to startAng+extent. i.e. startAng=0 and extent=180 yields an openside-down + semi-circle. +
    + The resulting coordinates are of the form double[]{x1,y1,x2,y2,x3,y3, x4,y4} + such that the curve goes from (x1, y1) to (x4, y4) with (x2, y2) and + (x3, y3) as their respective Bezier control points. +
    + Note: this code was taken from ReportLab (www.reportlab.org), an excellent + PDF generator for Python (BSD license: http://www.reportlab.org/devfaq.html#1.3 ). +
    + a corner of the enclosing rectangle. + a corner of the enclosing rectangle. + a corner of the enclosing rectangle. + a corner of the enclosing rectangle. + starting angle in degrees. + angle extent in degrees. + a list of double[] with the bezier curves. +
    + + Draws a rectangle. + x coordinate of the starting point. + y coordinate of the starting point. + width. + height. + current canvas. + + + Draws a rectangle. + a rectangle to be drawn + current canvas. + + + Draws rounded rectangle. + x coordinate of the starting point. + y coordinate of the starting point. + width. + height. + radius of the arc corner. + current canvas. + + + Draws a circle. + Draws a circle. The endpoint will (x+r, y). + x center of circle. + y center of circle. + radius of circle. + current canvas. + + + Paints a shading object and adds it to the resources of this canvas + a shading object to be painted + current canvas. + + + + Closes the current subpath by appending a straight line segment from the current point + to the starting point of the subpath. + + current canvas. + + + Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it. + + current canvas. + + + Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it. + + current canvas. + + + Ends the path without filling or stroking it. + current canvas. + + + Strokes the path. + current canvas. + + + + Modify the current clipping path by intersecting it with the current path, using the + nonzero winding rule to determine which regions lie inside the clipping path. + + current canvas. + + + + Modify the current clipping path by intersecting it with the current path, using the + even-odd rule to determine which regions lie inside the clipping path. + + current canvas. + + + Closes the path and strokes it. + current canvas. + + + Fills current path. + current canvas. + + + Fills the path using the non-zero winding number rule to determine the region to fill and strokes it. + + current canvas. + + + EOFills current path. + current canvas. + + + Fills the path, using the even-odd rule to determine the region to fill and strokes it. + current canvas. + + + Sets line width. + line width. + current canvas. + + + + Sets the line cap style, the shape to be used at the ends of open subpaths + when they are stroked. + + a line cap style to be set + current canvas. + for possible values. + + + + Sets the line join style, the shape to be used at the corners of paths + when they are stroked. + + a line join style to be set + current canvas. + for possible values. + + + + Sets the miter limit, a parameter specifying the maximum length a miter join + may extend beyond the join point, relative to the angle of the line segments. + + a miter limit to be set + current canvas. + + + Changes the value of the line dash pattern. + + Changes the value of the line dash pattern. +
    + The line dash pattern controls the pattern of dashes and gaps used to stroke paths. + It is specified by an array and a phase. The array specifies the length + of the alternating dashes and gaps. The phase specifies the distance into the dash + pattern to start the dash. +
    + the value of the phase + current canvas. +
    + + Changes the value of the line dash pattern. + + Changes the value of the line dash pattern. +
    + The line dash pattern controls the pattern of dashes and gaps used to stroke paths. + It is specified by an array and a phase. The array specifies the length + of the alternating dashes and gaps. The phase specifies the distance into the dash + pattern to start the dash. +
    + the value of the phase + the number of units that must be 'on' (equals the number of units that must be 'off'). + + current canvas. +
    + + Changes the value of the line dash pattern. + + Changes the value of the line dash pattern. +
    + The line dash pattern controls the pattern of dashes and gaps used to stroke paths. + It is specified by an array and a phase. The array specifies the length + of the alternating dashes and gaps. The phase specifies the distance into the dash + pattern to start the dash. +
    + the value of the phase + the number of units that must be 'on' + the number of units that must be 'off' + current canvas. +
    + + Changes the value of the line dash pattern. + + Changes the value of the line dash pattern. +
    + The line dash pattern controls the pattern of dashes and gaps used to stroke paths. + It is specified by an array and a phase. The array specifies the length + of the alternating dashes and gaps. The phase specifies the distance into the dash + pattern to start the dash. +
    + length of the alternating dashes and gaps + the value of the phase + current canvas. +
    + + Set the rendering intent. + + Set the rendering intent. possible values are: PdfName.AbsoluteColorimetric, + PdfName.RelativeColorimetric, PdfName.Saturation, PdfName.Perceptual. + + a PdfName containing a color metric + current canvas. + + + Changes the Flatness. + + Changes the Flatness. + + Flatness sets the maximum permitted distance in device pixels between the + mathematically correct path and an approximation constructed from straight line segments. + + a value + current canvas. + + + Changes the current color for filling paths. + fill color. + current canvas. + + + Changes the current color for stroking paths. + stroke color. + current canvas. + + + Changes the current color for paths. + the new color. + set fill color (true) or stroke color (false) + current canvas. + + + Changes the current color for paths. + the color space of the new color + a list of numerical values with a length corresponding to the specs of the color space. Values should be in the range [0,1] + + set fill color (true) or stroke color (false) + current canvas. + + + Changes the current color for paths with an explicitly defined pattern. + the color space of the new color + a list of numerical values with a length corresponding to the specs of the color space. Values should be in the range [0,1] + + a pattern for the colored line or area + set fill color (true) or stroke color (false) + current canvas. + + + Changes the current color for filling paths to a grayscale value. + a grayscale value in the range [0,1] + current canvas. + + + Changes the current color for stroking paths to a grayscale value. + a grayscale value in the range [0,1] + current canvas. + + + Changes the current color for filling paths to black. + current canvas. + + + Changes the current color for stroking paths to black. + current canvas. + + + Changes the current color for filling paths to an RGB value. + a red value in the range [0,1] + a green value in the range [0,1] + a blue value in the range [0,1] + current canvas. + + + Changes the current color for stroking paths to an RGB value. + a red value in the range [0,1] + a green value in the range [0,1] + a blue value in the range [0,1] + current canvas. + + + Adds or changes the shading of the current fill color path. + the shading + current canvas. + + + Adds or changes the shading of the current stroke color path. + the shading + current canvas. + + + Changes the current color for filling paths to black. + current canvas. + + + Changes the current color for stroking paths to black. + current canvas. + + + Changes the current color for filling paths to a CMYK value. + a cyan value in the range [0,1] + a magenta value in the range [0,1] + a yellow value in the range [0,1] + a key (black) value in the range [0,1] + current canvas. + + + Changes the current color for stroking paths to a CMYK value. + a cyan value in the range [0,1] + a magenta value in the range [0,1] + a yellow value in the range [0,1] + a key (black) value in the range [0,1] + current canvas. + + + Changes the current color for filling paths to black. + current canvas. + + + Changes the current color for stroking paths to black. + current canvas. + + + Begins a graphic block whose visibility is controlled by the layer. + + Begins a graphic block whose visibility is controlled by the layer. + Blocks can be nested. Each block must be terminated by an + + . + Note that nested layers with + + only require a single + call to this method and a single call to + + ; all the nesting control + is built in. + + The layer to begin + The edited canvas. + + + Ends OCG layer. + current canvas. + + + + Creates + + from image and adds it to canvas. + + + Creates + + from image and adds it to canvas. + + The float arguments will be used in concatenating the transformation matrix as operands. + + + the image from which + + will be created + + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + the created imageXObject or null in case of in-line image (asInline = true) + + + + + Creates + + from image and adds it to canvas. + + + Creates + + from image and adds it to canvas. + + The float arguments will be used in concatenating the transformation matrix as operands. + + + the image from which + + will be created + + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + true if to add image as in-line + the created imageXObject or null in case of in-line image (asInline = true) + + + + + Creates + + from image and fitted into specific rectangle on canvas. + + + Creates + + from image and fitted into specific rectangle on canvas. + The created imageXObject will be fit inside on the specified rectangle without preserving aspect ratio. + + The x, y, width and height parameters of the rectangle will be used in concatenating + the transformation matrix as operands. + + + the image from which + + will be created + + the rectangle in which the created imageXObject will be fit + true if to add image as in-line + the created imageXObject or null in case of in-line image (asInline = true) + + + + + + + Creates + + from image and adds it to the specified position. + + + the image from which + + will be created + + the horizontal position of the imageXObject + the vertical position of the imageXObject + true if to add image as in-line + the created imageXObject or null in case of in-line image (asInline = true) + + + + Adds + + to canvas. + + + Adds + + to canvas. + + The float arguments will be used in concatenating the transformation matrix as operands. + + the xObject to add + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + the current canvas + + + + + Adds + + to the specified position. + + the xObject to add + the horizontal position of the xObject + the vertical position of the xObject + the current canvas + + + + Adds + + to the specified position in the case of + + or moves to the specified offset in the case of + . + + the xObject to add + the horizontal offset of the formXObject position or the horizontal position of the imageXObject + + the vertical offset of the formXObject position or the vertical position of the imageXObject + + the current canvas + + + + Adds + + fitted into specific rectangle on canvas. + + the xObject to add + the rectangle in which the xObject will be fitted + the current canvas + + + + + + Adds + + on canvas. + + + Adds + + on canvas. + + Note: the + + will be placed at coordinates (0, 0) with its + original width and height, the + + will be fitted in its bBox. + + the xObject to add + the current canvas + + + Sets the ExtGState dictionary for the current graphics state + a dictionary that maps resource names to graphics state parameter dictionaries + current canvas. + + + Sets the ExtGState dictionary for the current graphics state + a dictionary that maps resource names to graphics state parameter dictionaries + current canvas. + + + Manually start a Marked Content sequence. + Manually start a Marked Content sequence. Used primarily for Tagged PDF + the type of content contained + current canvas + + + Manually start a Marked Content sequence with properties. + Manually start a Marked Content sequence with properties. Used primarily for Tagged PDF + the type of content that will be contained + the properties of the content, including Marked Content ID. If null, the PDF marker is BMC, else it is BDC + + current canvas + + + Manually end a Marked Content sequence. + Manually end a Marked Content sequence. Used primarily for Tagged PDF + current canvas + + + Manually open a canvas tag, beginning a Marked Content sequence. + Manually open a canvas tag, beginning a Marked Content sequence. Used primarily for Tagged PDF + the type of content that will be contained + current canvas + + + Open a tag, beginning a Marked Content sequence. + + Open a tag, beginning a Marked Content sequence. This MC sequence will belong to the tag from the document + logical structure. +
    + CanvasTag will be automatically created with assigned mcid(Marked Content id) to it. Mcid serves as a reference + between Marked Content sequence and logical structure element. +
    + reference to the tag from the document logical structure + current canvas +
    + + Manually close a tag, ending a Marked Content sequence. + Manually close a tag, ending a Marked Content sequence. Used primarily for Tagged PDF + current canvas + + + + Outputs a + String + directly to the content. + + + the + String + + current canvas. + + + + Outputs a + char + directly to the content. + + + the + char + + current canvas. + + + + Outputs a + float + directly to the content. + + + the + float + + current canvas. + + + Please, use this method with caution and only if you know what you are doing. + + Please, use this method with caution and only if you know what you are doing. + Manipulating with underlying stream object of canvas could lead to corruption of it's data. + + the content stream to which this canvas object writes. + + + + Adds + PdfImageXObject + to canvas. + + + the + PdfImageXObject + object + + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + + + + Adds + + to canvas. + + the formXObject to add + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + + true if the matrix is written in any case, otherwise if the + + method indicates + that the matrix is identity, the matrix will not be written + + current canvas + + + + Adds + + to the specified position. + + the formXObject to add + the horizontal position of the formXObject + the vertical position of the formXObject + the current canvas + + + + Adds + + to the canvas and moves to the specified offset. + + the formXObject to add + the horizontal offset of the formXObject position + the vertical offset of the formXObject position + the current canvas + + + + Adds + + fitted into specific rectangle on canvas. + + the formXObject to add + the rectangle in which the formXObject will be fitted + the current canvas + + + + Adds + + to canvas. + + the xObject to add + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + an element of the transformation matrix + current canvas + + + + Adds + + to the specified position. + + the imageXObject to add + the horizontal position of the imageXObject + the vertical position of the imageXObject + the current canvas + + + + Adds + + fitted into specific rectangle on canvas. + + the imageXObject to add + the rectangle in which the imageXObject will be fitted + current canvas + + + + A helper to insert into the content stream the + + converted to bytes according to the font's encoding. + + the text to write. + + + A container for constants defined in the PDF specification (ISO 32000-1). + + + + The text rendering mode determines whether showing text causes glyph + outlines to be stroked, filled, used as a clipping boundary, or some + combination of the three. + + + The text rendering mode determines whether showing text causes glyph + outlines to be stroked, filled, used as a clipping boundary, or some + combination of the three. Stroking, filling, and clipping have the same + effects for a text object as they do for a path object, although they are + specified in an entirely different way. + If the text rendering mode calls for filling, the current nonstroking + color in the graphics state is used; if it calls for stroking, the + current stroking color is used. + All documentation for this class is taken from ISO 32000-1, section 9.3.6 + "Text Rendering Mode". + + + + Fill text + + + Stroke text, providing the outline of the glyphs + + + Fill and stroke text + + + Neither fill nor stroke, i.e. render invisibly + + + Fill text and add to path for clipping + + + Stroke text and add to path for clipping + + + Fill, then stroke text and add to path for clipping + + + Add text to path for clipping + + + + The line cap style specifies the shape to be used at the ends of open + subpaths (and dashes, if any) when they are stroked. + + + The line cap style specifies the shape to be used at the ends of open + subpaths (and dashes, if any) when they are stroked. + All documentation for this class is taken from ISO 32000-1, section + 8.4.3.3 "Line Cap Style". + + + + The stroke is squared of at the endpoint of the path. + + The stroke is squared of at the endpoint of the path. There is no + projection beyond the end of the path. + + + + + A semicircular arc with a diameter equal to the line width is drawn + around the endpoint and filled in. + + + + + The stroke continues beyond the endpoint of the path for a distance + equal to half the line width and is squared off. + + + + + The line join style specifies the shape to be used at the corners of + paths that are stroked. + + + The line join style specifies the shape to be used at the corners of + paths that are stroked. Join styles are significant only at points where + consecutive segments of a path connect at an angle; segments that meet or + intersect fortuitously receive no special treatment. + All documentation for this class is taken from ISO 32000-1, section + 8.4.3.4 "Line Join Style". + + + + + The outer edges of the strokes for the two segments are extended + until they meet at an angle, as in a picture frame. + + + The outer edges of the strokes for the two segments are extended + until they meet at an angle, as in a picture frame. If the segments + meet at too sharp an angle, a bevel join is used instead. + + + + + An arc of a circle with a diameter equal to the line width is drawn + around the point where the two segments meet, connecting the outer + edges of the strokes for the two segments. + + + An arc of a circle with a diameter equal to the line width is drawn + around the point where the two segments meet, connecting the outer + edges of the strokes for the two segments. This pieslice-shaped + figure is filled in, producing a rounded corner. + + + + + The two segments are finished with butt caps (@see LineCapStyle#BUTT) + and the resulting notch beyond the ends of the segments is filled + with a triangle. + + + + Rule for determining which points lie inside a path. + + + The nonzero winding number rule. + + + The even-odd winding number rule. + + + A PdfCanvas instance with an inherent tiling pattern. + + + Creates PdfPatternCanvas from content stream of page, form XObject, pattern etc. + The content stream + The resources, a specialized dictionary that can be used by PDF instructions in the content stream + + The document that the resulting content stream will be written to + + + Creates PdfPatternCanvas for a document from a provided Tiling pattern + The Tiling pattern must be colored + The document that the resulting content stream will be written to + + + Helper class to read nt, short, words, etc. from an InputStream. + + + Creates an InputMeta object. + InputStream containing the WMF data + + + Read the next word from the InputStream. + the next word or 0 if the end of the stream has been reached + + + Read the next short from the InputStream. + the next short value + + + Read the next int from the InputStream. + the next int + + + Read the next byte from the InputStream. + the next byte + + + Skips "len" amount of bytes from the InputStream. + Skips "len" amount of bytes from the InputStream. If len is < 0, nothing is skipped. + amount of bytes needed to skip + + + Get the amount of bytes read and/or skipped from the InputStream. + number of bytes read + + + + Read the next + + from the InputStream. + + + Read the next + + from the InputStream. This reads 4 bytes. + + the next Color + + + + A Brush bject that holds information about the style, the hatch and the color of + the brush. + + + + Creates a MetaBrush object. + + + Initializes this MetaBrush object. + the InputMeta + + + Get the style of the MetaBrush. + style of the brush + + + Get the hatch pattern of the MetaBrush + hatch of the brush + + + Get the color of the MetaBrush. + color of the brush + + + A class to process WMF files. + + A class to process WMF files. Used internally by + . + + + + PdfCanvas of the MetaDo object. + + + The InputMeta instance containing the data. + + + Creates a MetaDo instance. + inputstream containing the data + PdfCanvas + + + Reads and processes all the data of the InputMeta. + + + Output Text at a certain x and y coordinate. + Output Text at a certain x and y coordinate. Clipped or opaque text isn't supported as of yet. + x-coordinate + y-coordinate + flag indicating clipped or opaque + x1-coordinate of the rectangle if clipped or opaque + y1-coordinate of the rectangle if clipped or opaque + x2-coordinate of the rectangle if clipped or opaque + y1-coordinate of the rectangle if clipped or opaque + text to output + + + Return true if the pen style is null and if it isn't a brush. + + value to decide how to change the state. If true state.setLineJoinRectangle(cb) is called, + if false state.setLineJoinPolygon(cb) is called. + + true if the pen style is null and if it isn't a brush + + + Stroke and fill the MetaPen and MetaBrush paths. + + + Wrap a BMP image in an WMF. + the BMP image to be wrapped + the wrapped BMP + + + Writes the specified value to the specified outputstream as a word. + outputstream to write the word to + value to be written + + + Writes the specified value to the specified outputstream as a dword. + outputstream to write the dword to + value to be written + + + A Meta Font. + + + Creates a MetaFont instance. + + + Initializes the MetaFont instance. + InputMeta containing the WMF data + + + Returns the Font. + the font + + + Returns the encoding used in the MetaFont. + the font encoding + + + Returns the angle of the MetaFont. + the angle + + + Returns a boolean value indicating if the font is underlined or not. + true if the font is underlined + + + Returns a boolean value indicating if a font has a strikeout. + true if the font set strikeout + + + Returns the font size. + the MetaState + font size + + + A meta object. + + + Creates a new MetaObject. + Creates a new MetaObject. This constructor doesn't set the type. + + + Creates a MetaObject with a type. + the type of meta object + + + Get the type of this MetaObject. + type of MetaObject + + + A Pen object of the WMF format. + A Pen object of the WMF format. Holds the color, style and width information of the pen. + + + Creates a MetaPen object. + + + Initializes a MetaPen object. + the InputMeta object that holds the inputstream of the WMF image + + + Get the style of the MetaPen. + style of the pen + + + Get the width of the MetaPen. + width of the pen + + + Get the color of the MetaPen. + color of the pen + + + Class to keep the state. + + + Stack of saved states. + + + List of MetaObjects. + + + Current Point. + + + Current Pen. + + + Current Brush. + + + Current Font. + + + The current background color. + The current background color. Default value is DeviceRgb#WHITE. + + + Current text color. + Current text color. Default value is DeviceRgb#BLACK. + + + The current background mode. + The current background mode. Default value is OPAQUE. + + + Current polygon fill mode. + Current polygon fill mode. Default value is ALTERNATE. + + + Curent line join. + Curent line join. Default value is 1. + + + Current text alignment. + + + Current offset for Wx. + + + Current offset for Wy. + + + Current extent for Wx. + + + Current extent for Wy. + + + Current x value for scaling. + + + Current y value for scaling. + + + Creates new MetaState + + + Clones a new MetaState from the specified MetaState. + the state to clone + + + Sets every field of this MetaState to the values of the fields of the specified MetaState. + state to copy + + + Add a MetaObject to the State. + MetaObject to be added + + + Select the MetaObject at the specified index and prepare the PdfCanvas. + position of the MetaObject + PdfCanvas to prepare + + + Deletes the MetaObject at the specified index. + index of the MetaObject to delete + + + Saves the state of this MetaState object. + PdfCanvas object on which saveState() will be called + + + Restores the state to the next state on the saved states stack. + index of the state to be restored + PdfCanvas object on which restoreState() will be called + + + Restres the state of the specified PdfCanvas object for as many times as there are saved states on the stack. + + PdfCanvas object + + + Transform the specified value. + the value to transform + the transformed value + + + Transform the specified value. + the value to transform + transformed value + + + Sets the x value for scaling. + x value for scaling + + + Sets the y value for scaling. + y value for scaling + + + Sets the Wx offset value. + Wx offset value + + + Sets the Wy offset value. + Wy offset value + + + Sets the Wx extent value. + Wx extent value + + + Sets the Wy extent value. + Wy extent value + + + Transforms the specified angle. + + Transforms the specified angle. If scalingY is less than 0, the angle is multiplied by -1. If scalingX is less + than 0, the angle is subtracted from Math.PI. + + the angle to transform + the transformed angle + + + Sets the current Point to the specified Point. + Point to set + + + Returns the current Point. + current Point + + + Returns the current MetaBrush object. + current MetaBrush + + + Returns the current MetaPen object. + current MetaPen + + + Returns the current MetaFont object. + current MetaFont + + + Getter for property currentBackgroundColor. + Value of property currentBackgroundColor. + + + Setter for property currentBackgroundColor. + New value of property currentBackgroundColor. + + + Getter for property currentTextColor. + Value of property currentTextColor. + + + Setter for property currentTextColor. + New value of property currentTextColor. + + + Getter for property backgroundMode. + Value of property backgroundMode. + + + Setter for property backgroundMode. + New value of property backgroundMode. + + + Getter for property textAlign. + Value of property textAlign. + + + Setter for property textAlign. + New value of property textAlign. + + + Getter for property polyFillMode. + Value of property polyFillMode. + + + Setter for property polyFillMode. + New value of property polyFillMode. + + + + Sets the line join style to + + if lineJoin isn't 0. + + PdfCanvas to set the line join style + + + + Sets the line join style to + + if lineJoin is 0. + + PdfCanvas to set the line join style + + + Returns true if lineJoin is 0. + true if lineJoin is 0 + + + Image implementation for WMF, Windows Metafile. + + + Creates a WmfImage from a file. + pah to the file + + + Creates a WmfImage from a URL. + URL to the file + + + Creates a WmfImage from a byte[]. + the image bytes + + + Helper class for the WmfImage implementation. + + Helper class for the WmfImage implementation. Assists in the creation of a + . + + + + Scales the WMF font size. + Scales the WMF font size. The default value is 0.86. + + + Creates a helper instance. + + the + + object + + + + This method checks if the image is a valid WMF and processes some parameters. + + + Create a PdfXObject based on the WMF image. + + Create a PdfXObject based on the WMF image. The PdfXObject will have the dimensions of the + WMF image. + + PdfDocument to add the PdfXObject to + PdfXObject based on the WMF image + + + A type of initial view + + + A type of initial view + + + A type of initial view + + + Constructs a PDF Collection. + + + Sets the Collection schema dictionary. + an overview of the collection fields + this instance to support fluent interface + + + Gets the Collection schema dictionary. + the Collection schema dictionary + + + + Identifies the document that will be initially presented + in the user interface. + + a string that identifies an entry in the EmbeddedFiles name tree + this instance to support fluent interface + + + + Retrieves the document that will be initially presented + in the user interface. + + a pdf string that identifies an entry in the EmbeddedFiles name tree + + + Sets the initial view. + is a type of view + this instance to support fluent interface + + + Check if view is in details mode. + true if view is in details mode and false otherwise + + + Check if view is in tile mode. + true if view is in tile mode and false otherwise + + + Check if view is hidden. + true if view is hidden and false otherwise + + + Sets the Collection sort dictionary. + is the Collection sort dictionary + this instance to support fluent interface + + + Getter for the Collection sort dictionary. + the Collection sort + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + Creates a PdfCollectionField. + the field name + the field subtype + + + The relative order of the field name. + The relative order of the field name. Fields are sorted in ascending order. + a number indicating the order of the field + this instance to support fluent interface + + + Retrieves the order of the field name. + + the + PDF number + showing the order of the field name + + + + Sets the initial visibility of the field. + is a state of visibility + this instance to support fluent interface + + + Retrieves the initial visibility of the field. + + the initial visibility of the field as + PDF boolean + value + + + + Indication if the field value should be editable in the viewer. + is a state of editable + this instance to support fluent interface + + + Retrieves the state of the editable of the field. + + true if filed is editable and false otherwise. Returned value is presented + as + pdf boolean. + + + + Converts string to appropriate pdf value. + is a plain string representation of the value + + resulting + PDF object + + + + Sets the value of the collection item. + is a key with which the specified value is to be associated + is a value to be associated with the specified key + this instance to support fluent interface + + + Sets the date value of the collection item. + is a key with which the specified date value is to be associated + + is a + PDF date + value to be associated with the specified key + + + + Sets the number value of the collection item. + is a key with which the specified number value is to be associated + + is a + PDF number + value to be associated with the specified key + + + + Adds a prefix for the Collection item. + + Adds a prefix for the Collection item. + You can only use this method after you have set the value of the item. + + is a key identifying the Collection item + is a prefix to be added + this instance to support fluent interface + + + Creates a Collection Schema dictionary. + + + Adds a Collection field to the Schema. + the name of the collection field + a Collection Field + this instance to support fluent interface + + + Retrieves a Collection field from the Schema. + is the name of the collection field + + a + Collection field + + + + Constructs a PDF Collection Sort Dictionary. + the key of the field that will be used to sort entries + + + Constructs a PDF Collection Sort Dictionary. + the keys of the fields that will be used to sort entries + + + Defines the sort order of the field (ascending or descending). + true is the default, use false for descending order + this instance to support fluent interface + + + Defines the sort order of the field (ascending or descending). + an array with every element corresponding with a name of a field. + this instance to support fluent interface + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + Represents the most common properties of color spaces. + + + + Dictionary wrapper that represent special type of color space, that uses pattern objects + as the equivalent of colour values instead of the numeric component values used with other spaces. + + + Dictionary wrapper that represent special type of color space, that uses pattern objects + as the equivalent of colour values instead of the numeric component values used with other spaces. + A pattern object shall be a dictionary or a stream, depending on the type of pattern. + For mor information see paragraph 8.7 in ISO-32000-1. + + + + + Wraps the passed + . + + + the + + that represent Pattern + + + + + Creates the instance wrapper of correct type from the + + + + the + + that represent Pattern + + new wrapper instance. + + + + Gets a transformation matrix that maps the pattern’s internal coordinate system + to the default coordinate system of the pattern’s parent content stream. + + + Gets a transformation matrix that maps the pattern’s internal coordinate system + to the default coordinate system of the pattern’s parent content stream. + The concatenation of the pattern matrix with that of the parent content stream + establishes the pattern coordinate space, within which all graphics objects in the pattern shall be interpreted. + + pattern matrix + + + + Sets a transformation matrix that maps the pattern’s internal coordinate system + to the default coordinate system of the pattern’s parent content stream. + + + Sets a transformation matrix that maps the pattern’s internal coordinate system + to the default coordinate system of the pattern’s parent content stream. + The concatenation of the pattern matrix with that of the parent content stream + establishes the pattern coordinate space, within which all graphics objects in the pattern shall be interpreted. + + pattern matrix to set + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + Wrapper that represents tiling pattern of color space. + + Wrapper that represents tiling pattern of color space. This pattern consists of a small graphical figure (cells). + Painting with the pattern replicates the cell at fixed horizontal and vertical intervals to fill an area. + The pattern cell can include graphical elements such as filled areas, text, and sampled images. + Its shape need not be rectangular, and the spacing of tiles can differ from the dimensions of the cell itself. + The appearance of the pattern cell shall be defined by a content stream + containing the painting operators needed to paint one instance of the cell + + + + A code that determines how the colour of the pattern cell shall be specified + + + The pattern’s content stream shall specify the colours used to paint the pattern cell. + + + The pattern’s content stream shall not specify any colour information. + + The pattern’s content stream shall not specify any colour information. + Instead, the entire cell is painted with a separately specified colour each time the pattern is used. + + + + A code that controls adjustments to the spacing of tiles relative to the device pixel grid + + + Pattern cells shall be spaced consistently—that is, by a multiple of a device pixel. + + Pattern cells shall be spaced consistently—that is, by a multiple of a device pixel. + To achieve this, the conforming reader may need to distort the pattern cell slightly. + + + + + The pattern cell shall not be distorted, + but the spacing between pattern cells may vary by as much as 1 device pixel. + + + + + Pattern cells shall be spaced consistently as in tiling type 1, + but with additional distortion permitted to enable a more efficient implementation. + + + + + Creates new instance from the + + object. + + + Creates new instance from the + + object. + This stream should have PatternType equals to 1. + + + the + + that represents Tiling Pattern. + + + + Creates a new Tiling Pattern instance. + + Creates a new Tiling Pattern instance. + + By default the pattern will be colored. + + the width of the pattern cell's bounding box + the height of the pattern cell's bounding box + + + Creates a new Tiling Pattern instance. + the width of the pattern cell's bounding box + the height of the pattern cell's bounding box + defines whether the Tiling Pattern will be colored or not + + + Creates a new Tiling instance. + + Creates a new Tiling instance. + + By default the pattern will be colored. + + the pattern cell's bounding box + + + Creates a new Tiling instance. + the pattern cell's bounding box + defines whether the Tiling Pattern will be colored or not + + + Creates a new Tiling Pattern instance. + + Creates a new Tiling Pattern instance. + + By default the pattern will be colored. + + the width of the pattern cell's bounding box + the height of the pattern cell's bounding box + the desired horizontal space between pattern cells + the desired vertical space between pattern cells + + + Creates a new Tiling Pattern instance. + the width of the pattern cell's bounding box + the height of the pattern cell's bounding box + the desired horizontal space between pattern cells + the desired vertical space between pattern cells + defines whether the Tiling Pattern will be colored or not + + + Creates a new Tiling instance. + + Creates a new Tiling instance. + + By default the pattern will be colored. + + the pattern cell's bounding box + the desired horizontal space between pattern cells + the desired vertical space between pattern cells + + + Creates a new Tiling instance. + the pattern cell's bounding box + the desired horizontal space between pattern cells + the desired vertical space between pattern cells + defines whether the Tiling Pattern will be colored or not + + + Checks if this pattern have colored paint type. + + + + if this pattern's paint type is + + and + + otherwise. + + + + Sets the paint type. + + if + + then the paint type will be set as + + , + and + + otherwise. + + + + Gets the tiling type. + + int value of + + + + + Sets the tiling type. + + int value of + + to set. + + + + Gets the pattern cell's bounding box. + Gets the pattern cell's bounding box. These boundaries shall be used to clip the pattern cell. + pattern cell's bounding box. + + + Sets the pattern cell's bounding box. + Sets the pattern cell's bounding box. These boundaries shall be used to clip the pattern cell. + pattern cell's bounding box to set. + + + Gets the desired horizontal space between pattern cells. + the desired horizontal space between pattern cells + + + Sets the desired horizontal space between pattern cells. + the desired horizontal space between pattern cells + + + Gets the desired vertical space between pattern cells. + the desired vertical space between pattern cells + + + Sets the desired vertical space between pattern cells. + the desired vertical space between pattern cells + + + Gets the Tiling Pattern's resources. + the Tiling Pattern's resources + + + + + + + Shading pattern provides a smooth transition between colors across an area to be painted, + independent of the resolution of any particular output device and without specifying + the number of steps in the color transition. + + + Shading pattern provides a smooth transition between colors across an area to be painted, + independent of the resolution of any particular output device and without specifying + the number of steps in the color transition. Patterns of this type are described + by pattern dictionaries with a pattern type of 2. + + + + + Creates new instance from the + + object. + + + Creates new instance from the + + object. + This stream should have PatternType equals to 2. + + + the + + that represents Shading Pattern. + + + + Creates a new instance of Shading Pattern. + + the + + that specifies the details of a particular + gradient fill + + + + + Gets the dictionary of the pattern's + . + + + the dictionary of the pattern's + + + + + + Sets the + + that specifies the details of a particular gradient fill. + + + the + + that specifies the details of a particular gradient fill + + + + Sets the dictionary which specifies the details of a particular gradient fill. + + the dictionary of the pattern's + + + + + The abstract PdfShading class that represents the Shading Dictionary PDF object. + + + constants of shading type (see ISO-320001 Table 78) + + + The int value of function-based shading type + + + The int value of axial shading type + + + The int value of radial shading type + + + The int value of free-form Gouraud-shaded triangle mesh shading type + + + The int value of lattice-form Gouraud-shaded triangle mesh shading type + + + The int value of coons patch meshes shading type + + + The int value of tensor-product patch meshes shading type + + + + Creates the + + object from the existing + + with corresponding type. + + + + + from which the + + object will be created. + + + Created + + object. + + + + + Creates the + + object from the existing + . + + + + + from which the + + object will be created. + + + + + Creates the + + object from the existing + + , + using provided type and colorspace. + + + + + from which the + + object will be created. + + + type with which this + + object will be created. + + + + + with which this + + object will be created. + + + + Gets the shading type. + + int value of + . + + + + Gets the color space in which colour values shall be expressed. + + + + Color space + + + + + Gets the function PdfObject that represents color transitions + across the shading geometry. + + + + + Function + + + + + Sets the function that represents color transitions + across the shading geometry as one object. + + + The + + to set. + + + + + Sets the function object that represents color transitions + across the shading geometry as an array of functions. + + + The array of + + to be set. + + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + + + + The class that extends + + class and is in charge of Shading Dictionary with function-based type, + that defines color at every point in the domain by a specified mathematical function. + + + + + Creates the new instance of the class from the existing + . + + + from which this + + will be created + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + + + the + + , that is used to calculate color transitions. + + + + Creates the new instance of the class. + + the + + , that represents color space in which colour values shall be expressed. + + + the + + , that is used to calculate color transitions. + + + + + Gets the + + domain rectangle object that establishes an internal coordinate space + for the shading that is independent of the target coordinate space in which it shall be painted. + + + + + domain rectangle. + + + + + Sets the + + domain rectangle object that establishes an internal coordinate space + for the shading that is independent of the target coordinate space in which it shall be painted. + + the Xmin coordinate of rectangle. + the Xmax coordinate of rectangle. + the Ymin coordinate of rectangle. + the Ymax coordinate of rectangle. + + + + Sets the + + domain rectangle object that establishes an internal coordinate space + for the shading that is independent of the target coordinate space in which it shall be painted. + + + the + + domain rectangle object to be set. + + + + + Gets the + + of floats that represents the transformation matrix that maps the domain rectangle + into a corresponding figure in the target coordinate space. + + + the + + of transformation matrix (identical matrix by default). + + + + + Sets the array of floats that represents the transformation matrix that maps the domain rectangle + into a corresponding figure in the target coordinate space. + + + the + float[] + of transformation matrix to be set. + + + + + Sets the array of floats that represents the transformation matrix that maps the domain rectangle + into a corresponding figure in the target coordinate space. + + + the + + transformation matrix object to be set. + + + + + The class that extends + + class and is in charge of Shading Dictionary with axial type, + that define a colour blend that varies along a linear axis between two endpoints + and extends indefinitely perpendicular to that axis. + + + + + Creates the new instance of the class from the existing + . + + + from which this + + will be created + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + the start coordinate of X axis expressed in the shading's target coordinate space. + the start coordinate of Y axis expressed in the shading's target coordinate space. + + the + float[] + that represents the color in the start point. + + the end coordinate of X axis expressed in the shading's target coordinate space. + the end coordinate of Y axis expressed in the shading's target coordinate space. + + the + float[] + that represents the color in the end point. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + the start coordinate of X axis expressed in the shading's target coordinate space. + the start coordinate of Y axis expressed in the shading's target coordinate space. + + the + float[] + that represents the color in the start point. + + the end coordinate of X axis expressed in the shading's target coordinate space. + the end coordinate of Y axis expressed in the shading's target coordinate space. + + the + float[] + that represents the color in the end point. + + + the array of two booleans that specified whether to extend the shading + beyond the starting and ending points of the axis, respectively. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the + + of four numbers [x0 y0 x1 y1] that specified the starting + and the endings coordinates of thew axis, expressed in the shading's target coordinate space. + + + the + + object, that is used to calculate color transitions. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the + + of four numbers [x0 y0 x1 y1] that specified + the starting and the endings coordinates of thew axis, expressed + in the shading's target coordinate space. + + + the + + of two numbers [t0 t1] specifying the limiting values + of a parametric variable t which is considered to vary linearly between + these two values and becomes the input argument to the colour function. + + + the + + object, that is used to calculate color transitions. + + + + + Gets the Coords object - a + + of four numbers [x0 y0 x1 y1] that specified the starting + and the endings coordinates of thew axis, expressed in the shading's target coordinate space. + + + the + + Coords object. + + + + Sets the Choords object with the four params expressed in the shading's target coordinate space. + the start coordinate of X axis to be set. + the start coordinate of Y axis to be set. + the end coordinate of X axis to be set. + the end coordinate of Y axis to be set. + + + + Sets the Choords object with the + + of four numbers [x0 y0 x1 y1], + that specified the starting and the endings coordinates of thew axis, + expressed in the shading's target coordinate space. + + + the Chords + + to be set. + + + + + Gets the + + of two + float + [t0, t1] that represent the limiting values of a parametric + variable t, that becomes an input of color function(s). + + + the + + of Domain object ([0.0 1.0] by default) + + + + + Sets the Domain with the array of two + float + [t0, t1] that represent the limiting values + of a parametric variable t, that becomes an input of color function(s). + + first limit of variable t + second limit of variable t + + + + Sets the Domain with the + + of two + float + [t0, t1] that represent the limiting values + of a parametric variable t, that becomes an input of color function(s). + + + the + + that represents domain + + + + + Gets the + + of two + boolean + that specified whether to extend the shading + beyond the starting and ending points of the axis, respectively. + + + the + + of Extended object ([false false] by default) + + + + + Sets the Extend object with the two + boolean + value. + + if true will extend shading beyond the starting point of Coords + if true will extend shading beyond the ending point of Coords + + + + Sets the Extend object with the + + of two + boolean. + + + Sets the Extend object with the + + of two + boolean. + If first is true shading will extend beyond the starting point of Coords. + If second is true shading will extend beyond the ending point of Coords. + + + the + + representing Extend object + + + + + The class that extends + + class and is in charge of Shading Dictionary with radial type, + that define a colour blend that varies between two circles. + + + The class that extends + + class and is in charge of Shading Dictionary with radial type, + that define a colour blend that varies between two circles. + This type of shading shall not be used with an Indexed colour space + + + + + Creates the new instance of the class from the existing + . + + + from which this + + will be created + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The Indexed color space isn't excepted. + + the X coordinate of starting circle's centre, expressed in in the shading’s target coordinate space. + + the Y coordinate of starting circle's centre, expressed in in the shading’s target coordinate space. + + + the radius of starting circle's centre, should be greater or equal to 0. + If 0 then starting circle is treated as point. + If both radii are 0, nothing shall be painted. + + + the + float[] + that represents the color in the start circle. + + the X coordinate of ending circle's centre, expressed in in the shading’s target coordinate space. + + the Y coordinate of ending circle's centre, expressed in in the shading’s target coordinate space. + + + the radius of ending circle's centre, should be greater or equal to 0. + If 0 then ending circle is treated as point. + If both radii are 0, nothing shall be painted. + + + the + float[] + that represents the color in the end circle. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The Indexed color space isn't excepted. + + the X coordinate of starting circle's centre, expressed in in the shading’s target coordinate space. + + the Y coordinate of starting circle's centre, expressed in in the shading’s target coordinate space. + + + the radius of starting circle's centre, should be greater or equal to 0. + If 0 then starting circle is treated as point. + If both radii are 0, nothing shall be painted. + + + the + float[] + that represents the color in the start circle. + + the X coordinate of ending circle's centre, expressed in in the shading’s target coordinate space. + + the Y coordinate of ending circle's centre, expressed in in the shading’s target coordinate space. + + + the radius of ending circle's centre, should be greater or equal to 0. + If 0 then ending circle is treated as point. + If both radii are 0, nothing shall be painted. + + + the + float[] + that represents the color in the end circle. + + + the array of two + boolean + that specified whether to extend the shading + beyond the starting and ending points of the axis, respectively. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The Indexed color space isn't excepted. + + + the + + of of six numbers [x0 y0 r0 x1 y1 r1], + specifying the centres and radii of the starting and ending circles, + expressed in the shading’s target coordinate space. + The radii r0 and r1 shall both be greater than or equal to 0. + If one radius is 0, the corresponding circle shall be treated as a point; + if both are 0, nothing shall be painted. + + + the + + object, that is used to calculate color transitions. + + + + + Gets the coords + + object - an array of six numbers [x0 y0 r0 x1 y1 r1], + specifying the centres and radii of the starting and ending circles, + expressed in the shading’s target coordinate space. + + + Gets the coords + + object - an array of six numbers [x0 y0 r0 x1 y1 r1], + specifying the centres and radii of the starting and ending circles, + expressed in the shading’s target coordinate space. + The radii r0 and r1 shall both be greater than or equal to 0. + If one radius is 0, the corresponding circle shall be treated as a point; + if both are 0, nothing shall be painted. + + + the + + coords object. + + + + Sets the coords object. + the X coordinate of starting circle's centre, expressed in in the shading’s target coordinate space. + + the Y coordinate of starting circle's centre, expressed in in the shading’s target coordinate space. + + + the radius of starting circle's centre, should be greater or equal to 0. + If 0 then starting circle is treated as point. + If both radii are 0, nothing shall be painted. + + the X coordinate of ending circle's centre, expressed in in the shading’s target coordinate space. + + the Y coordinate of ending circle's centre, expressed in in the shading’s target coordinate space. + + + the radius of ending circle's centre, should be greater or equal to 0. + If 0 then ending circle is treated as point. + If both radii are 0, nothing shall be painted. + + + + + Sets the coords + + object - an array of six numbers [x0 y0 r0 x1 y1 r1], + specifying the centres and radii of the starting and ending circles, + expressed in the shading’s target coordinate space. + + + Sets the coords + + object - an array of six numbers [x0 y0 r0 x1 y1 r1], + specifying the centres and radii of the starting and ending circles, + expressed in the shading’s target coordinate space. + The radii r0 and r1 shall both be greater than or equal to 0. + If one radius is 0, the corresponding circle shall be treated as a point; + if both are 0, nothing shall be painted. + + + - + + choords object to be set. + + + + + Gets the + + of two + float + [t0, t1] that represent the limiting values of a parametric + variable t, that becomes an input of color function(s). + + + the + + of Domain object ([0.0 1.0] by default) + + + + + Sets the Domain with the array of two + float + [t0, t1] that represent the limiting values + of a parametric variable t, that becomes an input of color function(s). + + first limit of variable t + second limit of variable t + + + + Sets the Domain with the + + of two + float + [t0, t1] that represent the limiting values + of a parametric variable t, that becomes an input of color function(s). + + + the + + that represents domain + + + + + Gets the + + of two + boolean + that specified whether to extend the shading + beyond the starting and ending circles of the axis, respectively. + + + the + + of Extended object ([false false] by default) + + + + + Sets the Extend object with the two + boolean + value. + + if true will extend shading beyond the starting circle of Coords. + if true will extend shading beyond the ending circle of Coords. + + + + Sets the Extend object with the + + of two + boolean. + + + Sets the Extend object with the + + of two + boolean. + If first is true shading will extend beyond the starting circle of Coords. + If second is true shading will extend beyond the ending circle of Coords. + + + the + + representing Extend object + + + + + The class that extends + + class and is in charge of Shading Dictionary with + free-form Gouraud-shaded triangle mesh type. + + + The class that extends + + class and is in charge of Shading Dictionary with + free-form Gouraud-shaded triangle mesh type. + The area to be shaded is defined by a path composed entirely of triangles. + The colour at each vertex of the triangles is specified, + and a technique known as Gouraud interpolation is used to colour the interiors. + The object shall be represented as stream containing a sequence of vertex data. + Each vertex is specified by the following values, in the order shown: + f x y c1 ... cn where: + f - the vertex's edge flag, that determines the vertex is connected to other vertices of the triangle mesh. + For full description, see ISO-320001 Paragraph 8.7.4.5.5 + x, y - vertex's horizontal and vertical coordinates, expressed in the shading's target coordinate space. + c1...cn - vertex's colour components. + If the shading dictionary includes a Function entry, only a single parametric value, t, + shall be specified for each vertex in place of the colour components c1...cn. + + + + + Creates the new instance of the class from the existing + . + + + from which this + + will be created + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the number of bits used to represent each vertex coordinate. + The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + the number of bits used to represent each colour component. + The value shall be 1, 2, 4, 8, 12, or 16. + + + the number of bits used to represent the edge flag for each vertex. + The value of BitsPerFlag shall be 2, 4, or 8, + but only the least significant 2 bits in each flag value shall be used. + The value for the edge flag shall be 0, 1, or 2. + + + the + int[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the number of bits used to represent each vertex coordinate. + The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + the number of bits used to represent each colour component. + The value shall be 1, 2, 4, 8, 12, or 16. + + + the number of bits used to represent the edge flag for each vertex. + The value of BitsPerFlag shall be 2, 4, or 8, + but only the least significant 2 bits in each flag value shall be used. + The value for the edge flag shall be 0, 1, or 2. + + + the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + + Gets the number of bits used to represent each vertex coordinate. + the number of bits. Can be 1, 2, 4, 8, 12, 16, 24, or 32. + + + Sets the number of bits used to represent each vertex coordinate. + the number of bits to be set. Shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + Gets the number of bits used to represent each colour component. + the number of bits. Can be 1, 2, 4, 8, 12, or 16. + + + Sets the number of bits used to represent each colour component. + the number of bits to be set. Shall be 1, 2, 4, 8, 12, or 16. + + + Gets the number of bits used to represent the edge flag for each vertex. + + Gets the number of bits used to represent the edge flag for each vertex. + But only the least significant 2 bits in each flag value shall be used. + The valid flag values are 0, 1 or 2. + + the number of bits. Can be 2, 4 or 8. + + + Sets the number of bits used to represent the edge flag for each vertex. + + Sets the number of bits used to represent the edge flag for each vertex. + But only the least significant 2 bits in each flag value shall be used. + The valid flag values are 0, 1 or 2. + + the number of bits to be set. Shall be 2, 4 or 8. + + + + Gets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Gets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + + Decode object. + + + + + Sets the + float[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Sets the + float[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + float[] + of Decode object to set. + + + + + Sets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Sets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + + Decode object to set. + + + + + The class that extends + + class and is in charge of Shading Dictionary with + lattice-form Gouraud-shaded triangle mesh type. + + + The class that extends + + class and is in charge of Shading Dictionary with + lattice-form Gouraud-shaded triangle mesh type. + This type is similar to + + but instead of using free-form geometry, + the vertices are arranged in a pseudorectangular lattice, + which is topologically equivalent to a rectangular grid. + The vertices are organized into rows, which need not be geometrically linear. + The verticals data in stream is similar to + + , + except there is no edge flag. + + + + + Creates the new instance of the class from the existing + . + + + from which this + + will be created + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the number of bits used to represent each vertex coordinate. + The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + the number of bits used to represent each colour component. + The value shall be 1, 2, 4, 8, 12, or 16. + + + the number of vertices in each row of the lattice (shall be > 1). + The number of rows need not be specified. + + + the + int[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the number of bits used to represent each vertex coordinate. + The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + the number of bits used to represent each colour component. + The value shall be 1, 2, 4, 8, 12, or 16. + + + the number of vertices in each row of the lattice (shall be > 1). + The number of rows need not be specified. + + + the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + + Gets the number of bits used to represent each vertex coordinate. + the number of bits. Can be 1, 2, 4, 8, 12, 16, 24, or 32. + + + Sets the number of bits used to represent each vertex coordinate. + the number of bits to be set. Shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + Gets the number of bits used to represent each colour component. + the number of bits. Can be 1, 2, 4, 8, 12, or 16. + + + Sets the number of bits used to represent each colour component. + the number of bits to be set. Shall be 1, 2, 4, 8, 12, or 16. + + + Gets the number of vertices in each row of the lattice. + the number of vertices. Can only be greater than 1. + + + Sets the number of vertices in each row of the lattice. + + Sets the number of vertices in each row of the lattice. + The number of rows need not be specified. + + the number of vertices to be set. Shall be greater than 1. + + + + Gets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Gets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + + Decode object. + + + + + Sets the + float[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Sets the + float[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + float[] + of Decode object to set. + + + + + Sets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Sets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + + Decode object to set. + + + + + The class that extends + + class and is in charge of Shading Dictionary with + Coons Patch mesh type. + + + The class that extends + + class and is in charge of Shading Dictionary with + Coons Patch mesh type. + This type of shading is constructed from one or more colour patches, each bounded by four cubic Bézier curves. + Degenerate Bézier curves are allowed and are useful for certain graphical effects. + At least one complete patch shall be specified. + The shape of patch is defined by 12 control points. + Colours are specified for each corner of the unit square, + and bilinear interpolation is used to fill in colours over the entire unit square. + Coordinates are mapped from the unit square into a four-sided patch whose sides are not necessarily linear. + The mapping is continuous: the corners of the unit square map to corners of the patch + and the sides of the unit square map to sides of the patch. + For the format of data stream, that defines patches (see ISO-320001 Table 85). + If the shading dictionary contains a Function entry, the colour data for each corner of a patch + shall be specified by a single parametric value t rather than by n separate colour components c1...cn. + + + + + Creates the new instance of the class from the existing + . + + + from which this + + will be created + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the number of bits used to represent each vertex coordinate. + The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + the number of bits used to represent each colour component. + The value shall be 1, 2, 4, 8, 12, or 16. + + + the number of bits used to represent the edge flag for each vertex. + The value of BitsPerFlag shall be 2, 4, or 8, + but only the least significant 2 bits in each flag value shall be used. + The value for the edge flag shall be 0, 1, 2 or 3. + + + the + int[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the number of bits used to represent each vertex coordinate. + The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + the number of bits used to represent each colour component. + The value shall be 1, 2, 4, 8, 12, or 16. + + + the number of bits used to represent the edge flag for each vertex. + The value of BitsPerFlag shall be 2, 4, or 8, + but only the least significant 2 bits in each flag value shall be used. + The value for the edge flag shall be 0, 1, 2 or 3. + + + the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + + Gets the number of bits used to represent each vertex coordinate. + the number of bits. Can be 1, 2, 4, 8, 12, 16, 24, or 32. + + + Sets the number of bits used to represent each vertex coordinate. + the number of bits to be set. Shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + Gets the number of bits used to represent each colour component. + the number of bits. Can be 1, 2, 4, 8, 12, or 16. + + + Sets the number of bits used to represent each colour component. + the number of bits to be set. Shall be 1, 2, 4, 8, 12, or 16. + + + Gets the number of bits used to represent the edge flag for each vertex. + + Gets the number of bits used to represent the edge flag for each vertex. + But only the least significant 2 bits in each flag value shall be used. + The valid flag values are 0, 1, 2 or 3. + + the number of bits. Can be 2, 4 or 8. + + + Sets the number of bits used to represent the edge flag for each vertex. + + Sets the number of bits used to represent the edge flag for each vertex. + But only the least significant 2 bits in each flag value shall be used. + The valid flag values are 0, 1, 2 or 3. + + the number of bits to be set. Shall be 2, 4 or 8. + + + + Gets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Gets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + + Decode object. + + + + + Sets the + float[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Sets the + float[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + float[] + of Decode object to set. + + + + + Sets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Sets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + + Decode object to set. + + + + + The class that extends + + class and is in charge of Shading Dictionary with + Tensor-Product Patch mesh type. + + + The class that extends + + class and is in charge of Shading Dictionary with + Tensor-Product Patch mesh type. + This type of shading is identical to + + , except that it's based on a + bicubic tensor-product patch defined by 16 control points. + For the format of data stream, that defines patches, see ISO-320001 Table 86. + + + + + Creates the new instance of the class from the existing + . + + + from which this + + will be created + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the number of bits used to represent each vertex coordinate. + The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + the number of bits used to represent each colour component. + The value shall be 1, 2, 4, 8, 12, or 16. + + + the number of bits used to represent the edge flag for each vertex. + The value of BitsPerFlag shall be 2, 4, or 8, + but only the least significant 2 bits in each flag value shall be used. + The value for the edge flag shall be 0, 1, 2 or 3. + + + the + int[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + + Creates the new instance of the class. + + the + + object in which colour values shall be expressed. + The special Pattern space isn't excepted. + + + the number of bits used to represent each vertex coordinate. + The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + the number of bits used to represent each colour component. + The value shall be 1, 2, 4, 8, 12, or 16. + + + the number of bits used to represent the edge flag for each vertex. + The value of BitsPerFlag shall be 2, 4, or 8, + but only the least significant 2 bits in each flag value shall be used. + The value for the edge flag shall be 0, 1, 2 or 3. + + + the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + + Gets the number of bits used to represent each vertex coordinate. + the number of bits. Can be 1, 2, 4, 8, 12, 16, 24, or 32. + + + Sets the number of bits used to represent each vertex coordinate. + the number of bits to be set. Shall be 1, 2, 4, 8, 12, 16, 24, or 32. + + + Gets the number of bits used to represent each colour component. + the number of bits. Can be 1, 2, 4, 8, 12, or 16. + + + Sets the number of bits used to represent each colour component. + the number of bits to be set. Shall be 1, 2, 4, 8, 12, or 16. + + + Gets the number of bits used to represent the edge flag for each vertex. + + Gets the number of bits used to represent the edge flag for each vertex. + But only the least significant 2 bits in each flag value shall be used. + The valid flag values are 0, 1, 2 or 3. + + the number of bits. Can be 2, 4 or 8. + + + Sets the number of bits used to represent the edge flag for each vertex. + + Sets the number of bits used to represent the edge flag for each vertex. + But only the least significant 2 bits in each flag value shall be used. + The valid flag values are 0, 1, 2 or 3. + + the number of bits to be set. Shall be 2, 4 or 8. + + + + Gets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Gets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + + Decode object. + + + + + Sets the + float[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Sets the + float[] + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + float[] + of Decode object to set. + + + + + Sets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. + + + Sets the + + of numbers specifying how to map vertex coordinates and colour components + into the appropriate ranges of values. The ranges shall be specified as follows: + [x_min x_max y_min y_max c1_min c1_max … cn_min cn_max]. + Only one pair of color values shall be specified if a Function entry is present. + + + the + + Decode object to set. + + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + Creates a new separation color space. + The name for the separation color + The alternate colorspace + + The function how the transform colors in the separation color space + to the alternate color space + + + + Creates a new separation color space. + The name for the separation color + The alternate colorspace + + The function how the transform colors in the separation color space + to the alternate color space + + + + Gets the function to calulate a separation color value to an alternative colorspace. + + a + + to perform the calculation + + + + Creates a new DeviceN colorspace. + the names of the components + the alternate colorspace + the function to transform colors to the alternate colorspace + + + Creates a new DiviceN colorspace. + the names of the components + the alternate colorspace + the function to transform colors to the alternate colorspace + + + Creates a new NChannel colorspace. + the names for the components + the alternative colorspace + the function to transform colors to the alternate color space + NChannel specific attributes + + + Creates a new NChannel colorspace. + the names for the components + the alternative colorspace + the function to transform colors to the alternate color space + NChannel specific attributes + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + Compression constants for . + + + + A possible compression level. + + + A possible compression level. + + + A possible compression level. + + + A possible compression level. + + + A possible compression level. + + + An OutputStream that counts the written bytes. + + An OutputStream that counts the written bytes. + You should not use same instance of this class in different threads as far as it's not thread safe. + + + + Creates an instance of output stream which counts written bytes. + + inner + + + + + + + + + + + + + + + + + + + + Gets amount of bytes written to the inner output stream. + amount of bytes + + + A copy filter that will handle goto annotations and actions separately. + + + + Initilazes a copy filter that will set all needed information aside to handle objects with a page destination + after all pages are copied. + + + Initilazes a copy filter that will set all needed information aside to handle objects with a page destination + after all pages are copied. + + + + the + + the pages are copied from + + + the + + the pages are copied to + + + + + Class with additional properties for + + processing. + + + Class with additional properties for + + processing. + Needs to be passed at document initialization. + + + + Default constructor, use provided setters for configuration options. + + + Creates a copy of class instance. + the base for new class instance + + + Sets document meta info. + meta info to set + + this + + instance + + + + + Creates + + instance. + + + + + associated with this handler + + + + + Stores all embedded streams present in the + . + + + Stores all embedded streams present in the + . + Note that during this method we traverse through every indirect object of the document. + + + + + Checks, whether this + + was stored as embedded stream. + + to be checked + true if this stream is embedded, false otherwise + + + + Encryption constants for + . + + + + Type of encryption. + Type of encryption. RC4 encryption algorithm will be used with the key length of 40 bits. + + + Type of encryption. + Type of encryption. RC4 encryption algorithm will be used with the key length of 128 bits. + + + Type of encryption. + Type of encryption. AES encryption algorithm will be used with the key length of 128 bits. + + + Type of encryption. + Type of encryption. AES encryption algorithm will be used with the key length of 256 bits. + + + Add this to the mode to keep the metadata in clear text. + + + Add this to the mode to keep encrypt only the embedded files. + + + The operation permitted when the document is opened with the user password. + + + The operation permitted when the document is opened with the user password. + + + The operation permitted when the document is opened with the user password. + + + The operation permitted when the document is opened with the user password. + + + The operation permitted when the document is opened with the user password. + + + The operation permitted when the document is opened with the user password. + + + The operation permitted when the document is opened with the user password. + + + The operation permitted when the document is opened with the user password. + + + Mask to separate the encryption type from the encryption mode. + + + Allows configuration of output PDF encryption. + + + Sets the encryption options for the document. + + the user password. Can be null or of zero length, which is equal to + omitting the user password + + + the owner password. If it's null or empty, iText will generate + a random string to be used as the owner password + + + the user permissions. The open permissions for the document can be + + , + + , + + , + + , + + , + + , + + and + . + The permissions can be combined by ORing them + + + the type of encryption. It can be one of + + , + + , + + or + . + Optionally + + can be OEed + to output the metadata in cleartext. + + can be ORed as well. + Please be aware that the passed encryption types may override permissions: + + implicitly sets + + and + + as false; + + implicitly sets + + as false; + + + this + + + + + Sets the certificate encryption options for the document. + + Sets the certificate encryption options for the document. + + An array of one or more public certificates must be provided together with an array of the same size + for the permissions for each certificate. + + the public certificates to be used for the encryption + + the user permissions for each of the certificates + The open permissions for the document can be + + , + + , + + , + + , + + , + + , + + and + . + The permissions can be combined by ORing them + + + the type of encryption. It can be one of + + , + + , + + or + . + Optionally + + can be ORed to output the metadata in cleartext. + + can be ORed as well. + Please be aware that the passed encryption types may override permissions: + + implicitly sets + + and + + as false; + + implicitly sets + + as false; + + + this + + + + + Graphics state parameter dictionary wrapper. + + Graphics state parameter dictionary wrapper. + See ISO-320001, 8.4.5 Graphics State Parameter Dictionaries. + + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard separable blend mode. + Standard separable blend mode. See ISO-320001, table 136 + + + Standard nonseparable blend mode. + Standard nonseparable blend mode. See ISO-320001, table 137 + + + Standard nonseparable blend mode. + Standard nonseparable blend mode. See ISO-320001, table 137 + + + Standard nonseparable blend mode. + Standard nonseparable blend mode. See ISO-320001, table 137 + + + Standard nonseparable blend mode. + Standard nonseparable blend mode. See ISO-320001, table 137 + + + + Create instance of graphics state parameter dictionary wrapper + by existed + + object + + instance of graphics state parameter dictionary + + + Create default instance of graphics state parameter dictionary + + + + Gets line width value, + LW + key. + + + a + float + value if exist, otherwise + . + + + + + Sets line width value, + LW + key. + + + a + float + value. + + object itself. + + + + Gets line gap style value, + LC + key. + + 0 - butt cap, 1 - round cap, 2 - projecting square cap. + + + + Sets line gap style value, + LC + key. + + 0 - butt cap, 1 - round cap, 2 - projecting square cap. + object itself. + + + + Gets line join style value, + LJ + key. + + 0 - miter join (see also miter limit), 1 - round join, 2 - bevel join. + + + + Sets line join style value, + LJ + key. + + 0 - miter join (see also miter limit), 1 - round join, 2 - bevel join. + object itself. + + + + Gets miter limit value, + ML key. + + + Gets miter limit value, + ML key + . See also line join style. + + + a + float + value if exist, otherwise + . + + + + + Sets miter limit value, + ML key. + + + Sets miter limit value, + ML key + . See also line join style. + + + a + float + value. + + object itself. + + + + Gets line dash pattern value, + D + key. + + + a + PdfArray + , that represents line dash pattern. + + + + + Sets line dash pattern value, + D + key. + + + a + PdfArray + , that represents line dash pattern. + + object itself. + + + + Gets rendering intent value, + RI + key. + + + Gets rendering intent value, + RI + key. + Valid values are: + AbsoluteColorimetric + , + RelativeColorimetric + , + Saturation + , + Perceptual. + + + a + PdfName + instance. + + + + + Sets rendering intent value, + RI + key. + + + a + PdfName + instance, Valid values are: + AbsoluteColorimetric + , + RelativeColorimetric + , + Saturation + , + Perceptual. + + object itself. + + + + Get overprint flag value for stroking operations, + OP + key. + + + a + boolean + value if exist, otherwise + . + + + + + Set overprint flag value for stroking operations, + OP + key. + + + + + , for applying overprint for stroking operations. + + object itself. + + + + Get overprint flag value for non-stroking operations, + op + key. + + + a + boolean + value if exist, otherwise + . + + + + + Set overprint flag value for non-stroking operations, + op + key. + + + + + , for applying overprint for non-stroking operations. + + object itself. + + + + Get overprint control mode, + OPM + key. + + + an + int + value if exist, otherwise + . + + + + + Set overprint control mode, + OPM + key. + + + an + int + value, see ISO-320001, 8.6.7 Overprint Control. + + object itself. + + + + Gets font and size, + Font + key. + + + a + + of the form + [font size] + , where + font + shall be an indirect reference to a font dictionary and + size + shall be a number expressed in text space units. + + + + + Sets font and size, + Font + key. + + + Sets font and size, + Font + key. + NOTE: If you want add the font object which has just been created, make sure to register the font with + + method first. + + + a + + of the form + [font size] + , where + + shall be an indirect reference to a font dictionary and + size + shall be a number expressed in text space units. + + object itself. + + + + Gets the black-generation function value, + BG. + + + a + + , should be + . + + + + + Sets the black-generation function value, + BG. + + + a + + , shall be + . + + object itself. + + + + Gets the black-generation function value or + Default + , + BG2 + key. + + + a + + value, should be either + + or + . + + + + + Sets the black-generation function value or + Default + , + BG2 + key. + + + Sets the black-generation function value or + Default + , + BG2 + key. + Note, if both + BG + and + BG2 + are present in the same graphics state parameter dictionary, + BG2 + takes precedence. + + + a + + value, shall be either + + or + Default. + + object itself. + + + + Gets the undercolor-removal function, + UCR + key. + + + a + + , should be + . + + + + + Sets the undercolor-removal function, + UCR + key. + + + a + + , shall be + . + + object itself. + + + + Gets the undercolor-removal function value or + Default + , + UCR2 + key. + + + a + + value, should be either + + or + . + + + + + Sets the undercolor-removal function value or + Default + , + UCR2 + key. + + + Sets the undercolor-removal function value or + Default + , + UCR2 + key. + Note, if both + UCR + and + UCR2 + are present in the same graphics state parameter dictionary, + UCR2 + takes precedence. + + + a + + value, shall be either + + or + Default. + + object itself. + + + + Gets the transfer function value, + TR + key. + + + a + + , should be either + + , + + or + . + + + + + Sets the transfer function value, + TR + key. + + + a + + , shall be either + + , + + or + . + + object itself. + + + + Gets the transfer function value or + Default + , + TR2 + key. + + + a + + , should be either + + , + + or + . + + + + + Sets the transfer function value or + Default + , + TR2 + key. + + + Sets the transfer function value or + Default + , + TR2 + key. + Note, if both + TR + and + TR2 + are present in the same graphics state parameter dictionary, + TR2 + takes precedence. + + + a + + , shall be either + + , + + , + + or + Default. + + object itself. + + + + Gets the halftone dictionary, stream or + Default + , + HT + key. + + + a + + , should be either + + , + + or + . + + + + + Sets the halftone or + Default + , + HT + key. + + + a + + , shall be either + + , + + or + . + + object itself. + + + + Gets the flatness tolerance value, + FL + key. + + + a + float + value if exist, otherwise + . + + + + + Sets the flatness tolerance value, + FL + key. + + + a + float + value. + + object itself. + + + + Gets the smoothness tolerance value, + SM + key. + + + a + float + value if exist, otherwise + . + + + + + Sets the smoothness tolerance value, + SM + key. + + + a + float + value. + + object itself. + + + + Gets value of an automatic stroke adjustment flag, + SA + key. + + + a + boolean + value if exist, otherwise + . + + + + + Sets value of an automatic stroke adjustment flag, + SA + key. + + + a + boolean + value. + + object itself. + + + + Gets the current blend mode for the transparent imaging model, + BM + key. + + + a + + , should be either + + or + + . array is deprecated in PDF 2.0. + + + + + Sets the current blend mode for the transparent imaging model, + BM + key. + + + a + + , shall be either + + or + + ; array is deprecated in PDF 2.0. + + object itself. + + + + Gets the current soft mask, + SMask + key. + + + a + + , should be either + + or + . + + + + + Sets the current soft mask, + SMask + key. + + + a + + , shall be either + + or + . + + object itself. + + + + Gets the current alpha constant, specifying the constant shape or constant opacity value + for stroking operations in the transparent imaging model, + CA + key. + + + a + float + value if exist, otherwise + . + + + + + Sets the current alpha constant, specifying the constant shape or constant opacity value + for stroking operations in the transparent imaging model, + CA + key. + + + a + float + value. + + object itself. + + + + Gets the current alpha constant, specifying the constant shape or constant opacity value + for non-stroking operations in the transparent imaging model, + ca + key. + + + a + float + value if exist, otherwise + . + + + + + Sets the current alpha constant, specifying the constant shape or constant opacity value + for non-stroking operations in the transparent imaging model, + ca + key. + + + a + float + value. + + object itself. + + + + Gets the alpha source flag ("alpha is shape"), specifying whether the current soft mask and alpha constant + shall be interpreted as shape values ( + + ) or opacity values ( + + ), + AIS + key. + + + a + boolean + value if exist, otherwise + . + + + + + Sets the alpha source flag ("alpha is shape"), specifying whether the current soft mask and alpha constant + shall be interpreted as shape values ( + + ) or opacity values ( + + ), + AIS + key. + + + if + + - alpha as shape values, if + + — as opacity values. + + object itself. + + + + Gets the text knockout flag, which determine the behaviour of overlapping glyphs + within a text object in the transparent imaging model, + TK + key. + + + a + boolean + value if exist, otherwise + . + + + + + Sets the text knockout flag, which determine the behaviour of overlapping glyphs + within a text object in the transparent imaging model, + TK + key. + + + + + if enabled. + + object itself. + + + PDF 2.0. + + PDF 2.0. This graphics state parameter controls whether black point + compensation is performed while doing CIE-based colour conversions. + + true to enable, false to disable + object itself + + + PDF 2.0. + PDF 2.0. Checks whether the black point compensation is performed while doing CIE-based colour conversions. + + + true if black point compensation is used, false if it is not used, or + null is the value is set to Default, or not set at all + + + + PDF 2.0. + PDF 2.0. Sets halftone origin + X location of the halftone origin in the current coordinate system + Y location of the halftone origin in the current coordinate system + + this + + instance + + + + PDF 2.0. + PDF 2.0. Gets halftone origin + + an array of two values specifying X and Y values of the halftone origin in the current coordinate system, + respectively, or null if halftone origin is not specified + + + + Puts the value into Graphics state parameter dictionary and associates it with the specified key. + + + Puts the value into Graphics state parameter dictionary and associates it with the specified key. + If the key is already present, it will override the old value with the specified one. + + key to insert or to override + the value to associate with the specified key + object itself. + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + byte[] containing encrypted file + the encrypted payload dictionary + mime-type of the file + Pdfdictionary containing file parameters + PdfFileSpec containing the file specification of the encrypted payload + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + byte[] containing the file + the encrypted payload dictionary + Pdfdictionary containing file parameters + PdfFileSpec containing the file specification of the encrypted payload + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + byte[] containing the file + the encrypted payload dictionary + PdfFileSpec containing the file specification of the encrypted payload + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + path to the encrypted file + the encrypted payload dictionary + mime-type of the file + Pdfdictionary containing file parameters + PdfFileSpec containing the file specification of the encrypted payload + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + path to the encrypted file + the encrypted payload dictionary + mime-type of the file + PdfFileSpec containing the file specification of the encrypted payload + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + path to the encrypted file + the encrypted payload dictionary + PdfFileSpec containing the file specification of the encrypted payload + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + stream containing encrypted file + the encrypted payload dictionary + mime-type of the file + Pdfdictionary containing file parameters + PdfFileSpec containing the file specification of the encrypted payload + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + stream containing encrypted file + the encrypted payload dictionary + mime-type of the file + PdfFileSpec containing the file specification of the encrypted payload + + + Embed a encrypted payload to a PdfDocument. + PdfDocument to add the file to + stream containing encrypted file + the encrypted payload dictionary + PdfFileSpec containing the file specification of the encrypted payload + + + + Wrap the passed + + to the specific + + object, + according to the type of the passed pdf object. + + object to wrap + + wrapped + + instance + + + + Create an external file specification. + + + + instance to make this file specification indirect + + file specification string, describing the path to the external file + + value that represents the relationship between the component of the passed PDF document + that refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an external file specification. + + + + instance to make this file specification indirect + + file specification string, describing the path to the external file + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + byte[] containing the file + file description + actual file name stored in the pdf + + subtype of the embedded file. The value of this entry shall conform + to the MIME media type names + + + + + containing fil parameters + + + value that represents the relationship between the component of the passed PDF document + that refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + byte[] containing the file + actual file name stored in the pdf + + + + containing fil parameters + + + value that represents the relationship between the component of the passed PDF document + that refers to this file specification and the associated file. If null, + + will be added. + + the file description + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + byte[] containing the file + actual file name stored in the pdf + + + + containing fil parameters + + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + byte[] containing the file + actual file name stored in the pdf + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + byte[] containing the file + file description + actual file name stored in the pdf + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + file specification string, describing the path to the file to embed + file description + actual file name stored in the pdf + + subtype of the embedded file. The value of this entry shall conform + to the MIME media type names + + dictionary with file parameters + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + file specification string, describing the path to the file to embed + file description + actual file name stored in the pdf + + subtype of the embedded file. The value of this entry shall conform + to the MIME media type names + + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + file specification string, describing the path to the file to embed + file description + actual file name stored in the pdf + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + path to the file to embed + actual file name stored in the pdf + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + stream containing the file to embed + file description + actual file name stored in the pdf + + subtype of the embedded file. The value of this entry shall conform + to the MIME media type names + + dictionary with file parameters + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + stream containing the file to embed + file description + actual file name stored in the pdf + + subtype of the embedded file. The value of this entry shall conform + to the MIME media type names + + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + an embedded file stream dictionary + file description + actual file name stored in the pdf + + subtype of the embedded file. The value of this entry shall conform + to the MIME media type names + + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + Create an embedded file specification. + + + + instance to make this file specification indirect + + an embedded file stream dictionary + actual file name stored in the pdf + + value that represents the relationship between the component of the passed PDF document that + refers to this file specification and the associated file. If null, + + will be added. + + + + + containing the file specification of the file + + + + PDF 2.0. + PDF 2.0. Sets a stream object defining the thumbnail image for the file specification. + image used as a thumbnail + + this + + instance + + + + PDF 2.0. + PDF 2.0. Gets a stream object defining the thumbnail image for the file specification. + image used as a thumbnail, or null if it is not set + + + Handles ASCII85Decode filter + + + Decodes the input bytes according to ASCII85. + the byte[] to be decoded + the decoded byte[] + + + + + + Decodes the input bytes according to ASCII85. + the byte[] to be decoded + the out stream which will be used to write the bytes. + the decoded byte[] + + + Handles ASCIIHexDecode filter + + + Decodes a byte[] according to ASCII Hex encoding. + byte[] to be decoded + decoded byte[] + + + + + + Decodes a byte[] according to ASCII Hex encoding. + byte[] to be decoded + the out stream which will be used to write the bytes. + decoded byte[] + + + Handles CCITTFaxDecode filter + + + Handles a DCTDecode filter. + + Handles a DCTDecode filter. For now no modification applies and the data would be return as is + (in JPEG baseline format). + + + + A filter that doesn't modify the stream at all + + + Encapsulates filter behavior for PDF streams. + + Encapsulates filter behavior for PDF streams. Classes generally interace with this + using the static getDefaultFilterHandlers() method, then obtain the desired + + via a lookup. + + + + + The default + + s used by iText + + + + + the default + + s used by iText + + + + Handles FlateDecode filter. + + + A helper to flateDecode. + the input data + + + + to read a correct stream. + + to try to read a corrupted stream. + + the decoded data + + + Input byte array. + PdfDictionary of decodeParams. + a byte array + + + + + + A helper to flateDecode. + the input data + + + + to read a correct stream. + + to try to read a corrupted stream. + + the out stream which will be used to write the bytes. + the decoded data + + + Handles strict FlateDecode filter. + + + + + + A helper to flateDecode. + the input data + the out stream which will be used to write the bytes. + the decoded data + + + + The main interface for creating a new + FilterHandler + + + + Decode the byte[] using the provided filterName. + the bytes that need to be decoded + PdfName of the filter + decode parameters + + the dictionary of the stream. Can contain additional information needed to decode the + byte[]. + + decoded byte array + + + Handles a JPXDecode filter. + + Handles a JPXDecode filter. For now no modification applies and the data would be return as is + (in JPEG2000 format). + + + + Handles LZWDECODE filter + + + Decodes a byte[] according to the LZW encoding. + byte[] to be decoded + decoded byte[] + + + + + + Decodes a byte[] according to the LZW encoding. + byte[] to be decoded + the out stream which will be used to write the bytes. + decoded byte[] + + + A class for performing LZW decoding. + + + Creates an LZWDecoder instance. + + + Method to decode LZW compressed data. + The compressed data. + Array to return the uncompressed data in. + + + Initialize the string table. + + + Write out the string just uncompressed. + content to write to the uncompressed data + + + Add a new string to the string table. + stored string + string to be appended to the stored string + + + Add a new string to the string table. + byte[] to store in the string table + + + Append newString to the end of oldString. + string be appended to + string that is to be appended to oldString + combined string + + + Attempt to get the next code. + + Attempt to get the next code. Exceptions are caught to make + this robust to cases wherein the EndOfInformation code has been + omitted from a strip. Examples of such cases have been observed + in practice. + + next code + + + Handles RunLengthDecode filter. + + + + + + Data container for debugging information. + + Data container for debugging information. This class keeps a record of every registered product that + was involved in the creation of a certain PDF file. This information can then be used to log to the + logger or to the file. + + + + Default constructor. + Default constructor. Initializes the productDataSet. + + + Registers a product to be added to the fingerprint or other debugging info. + ProductData to be added + true if the fingerprint did not already contain the specified element + + + Returns the registered products. + registered products. + + + The abstract PdfFunction class that represents the Function Dictionary or Stream PDF object. + + The abstract PdfFunction class that represents the Function Dictionary or Stream PDF object. + Holds common properties and methods and a factory method. (see ISO-320001 Chapter 7.10) + + + Either a + + or a + + + + + Constructs a PdfFunction from a new PdfObject. + The new, empty, object, created in a concrete implementation + The function type, can be 0, 2, 3 or 4 + + the valid input domain, input will be clipped to this domain + contains a min max pair per input component + + + the valid output range, oputput will be clipped to this range + contains a min max pair per output component + + + + Constructs a PdfFunction from an existing PdfObject. + + Either a + + or a + + + + + The function type, (see ISO-320001 Table 38). + The function type, either 0, 2, 3 or 4 + + + Chacks wether the output of the function matches in components with the passed by color space. + The color space to verify against + True when compatible + + + The number of input components. + The number of input components + + + The number of output components. + The number of output components + + + The valid input domain, input will be clipped to this domain contains a min max pair per input component. + + + The valid input domain, input will be clipped to this domain contains a min max pair per input component. + + (see ISO-320001 Table 38) + + the input domain + + + The valid input domain, input will be clipped to this domain contains a min max pair per input component. + + + The valid input domain, input will be clipped to this domain contains a min max pair per input component. + + (see ISO-320001 Table 38) + + the new set of limits + + + the valid output range, output will be clipped to this range contains a min max pair per output component. + + + the valid output range, output will be clipped to this range contains a min max pair per output component. + + (see ISO-320001 Table 38) + + the output range + + + the valid output range, output will be clipped to this range contains a min max pair per output component. + + + the valid output range, output will be clipped to this range contains a min max pair per output component. + + (see ISO-320001 Table 38) + + the new set of limts + + + Performs the calculation in bulk on a set of raw data and returns a new set of raw data. + The uninterpreted set of data to be transformed + Where to start converting the data + How many of the input bytes should be converted + How many bytes represents one input value + How many bytes represents one output value + the transformed result as a raw byte array + + + Performs the calculation in bulk on a set of raw data and returns a new set of raw data. + The uninterpreted set of data to be transformed + Where to start converting the data + How many of the input bytes should be converted + How many bytes represents one input value + How many bytes represents one output value + a custom input convertor + a custom output convertor + the transformed result as a raw byte array + + + Clip input values to the allowed domain. + + Clip input values to the allowed domain. + + (see ISO-320001 Table 38) + + the input values to be clipped + the values clipped between the boundaries defined in the domain + + + Clip output values to the allowed range, if there is a range. + + Clip output values to the allowed range, if there is a range. + + (see ISO-320001 Table 38) + + the output values to be clipped + the values clipped between the boundaries defined in the range + + + Calculates one set of input components to one set of output components. + + The input values size must contain + + items + + + an array the size of + + items containing the result + + + + The class that represents the Pdf Function. + + + Represents a type 0 pdf function. + + + Represents a type 2 pdf function. + + + Represents a type 3 pdf function. + + + Represents a type 4 pdf function. + + + + Factory method to create a function instance based on an existing + . + + + Either a + + or a + + representing + a function + + + Depending on the type, a + + , a + + , + a + + or a + + + + + Encode normalized input value. + input normalized value + encode min value + encode max value + encoded value + + + Calculates floor sample coordinates for the normalized input array. + input array normalized to domain + encode mapping + encoded sample coordinates of the nearest left interpolation point + + + Maps sample coordinates to linear position in samples table. + sample encoded coordinates + number of samples in each input dimension + position in samples table + + + Calculated component-by-component normalized distances from input array to the nearest left interpolation point. + + + Calculated component-by-component normalized distances from input array to the nearest left interpolation point. + Input array shall be normalized to domain + + input array normalized to domain + encode mapping + component-by-component normalized distances from input array to the nearest left interpolation point + + + + Calculates normalized distance from input value to the nearest left interpolation point. + + Calculates normalized distance from input value to the nearest left interpolation point. + Input value shall be normalized to domain component + + input value normalized to domain component + encode min value + encode max value + normalized distance from input value to the nearest left interpolation point + + + Solves the system of linear equations by sweep method where the matrix is 3-diagonal. + + Solves the system of linear equations by sweep method where the matrix is 3-diagonal. + Main diagonal elements are 4, lower and upper diagonals: 1. + + x[0] = 0, + x[0] + 4*x[1] + x[2] = f[0], + x[1] + 4*x[2] + x[3] = f[1], + ... + x[n-1] + 4*x[n] + x[n+1] = f[n-1], + x[n] = 0 + + right hand side + solution, first and last values are zeroes + + + Calculates second derivatives at each interpolation point by sweep method with 3-diagonal matrix. + + + + Calculates function decoded values. + + Calculates function decoded values. + + Function values are stored sequentially in samples table. For a function with multidimensional input + (more than one input variables), the sample values in the first dimension vary fastest, + and the values in the last dimension vary slowest. Order example for size array [4, 4, 4]: + f(0,0,0), f(1,0,0), f(2,0,0), f(3,0,0), f(0,1,0), f(1,1,0), ..., f(3,3,0), f(3,3,1), f(3,3,2), f(3,3,3). + For example in this case f(1,1,0) has position 5. + If the function has multiple output values each value shall occupy bitsPerSample bits and + stored sequentially as well. + + output dimension coordinate (values from [0, ..., outputDimension - 1]) + position in samples table + function decoded value + + + Gets a minimal distance between samples of same dimension in samples table for each dimension. + for each dimension a minimal distance between samples of same dimension in samples table + + + Decode sampled value. + sampled value + output dimension coordinate (values from [0, ..., outputDimension - 1]) + decoded value + + + Interpolates function by linear interpolation formula using function values at neighbouring points. + + input normalized to [0, 1] by neighbouring points + function value at the left neighbouring point + function value at the right neighbouring point + function value obtained by linear interpolation + + + Interpolates function by cubic interpolation formula using function values at neighbouring points. + + input normalized to [0, 1] by neighbouring points + function value at the next to left neighbouring point + function value at the left neighbouring point + function value at the right neighbouring point + function value at the next to right neighbouring point + function value obtained by cubic interpolation + + + + Interpolates function by cubic spline formula using function and its second derivative values at neighbouring + points. + + input normalized to [0, 1] by neighbouring points + function value in the left neighbouring point + function value in the right neighbouring point + second derivative value in the left neighbouring point + second derivative value in the right neighbouring point + function value interpolated by cubic spline formula + + + + This class represents Pdf type 2 function that defines an exponential + interpolation of one input value to n output values. + + + This class represents Pdf type 2 function that defines an exponential + interpolation of one input value to n output values. + + For more info see ISO 32000-1, section 7.10.3 "Type 2 (Exponential Interpolation) Functions". + + + + Instantiates a new PdfType2Function instance based on passed PdfDictionary instance. + the function dictionary + + + Gets output size of function. + + Gets output size of function. + + If Range field is absent, the size of C0 array will be returned. + + output size of function + + + Gets values of C0 array. + the values of C0 array + + + Sets values of C0 array. + the values of C0 array + + + Gets values of C1 array. + the values of C1 array + + + Sets values of C1 array. + the values of C1 array + + + Gets value of N field. + the value of N field + + + sets value of N field. + the value of N field + + + + This class represents Pdf type 3 function that defines a stitching of the subdomains + of several 1-input functions to produce a single new 1-input function. + + + This class represents Pdf type 3 function that defines a stitching of the subdomains + of several 1-input functions to produce a single new 1-input function. + + For more info see ISO 32000-1, section 7.10.4 "Type 3 (Stitching) Functions". + + + + Instantiates a new PdfType3Function instance based on passed PdfDictionary instance. + the function dictionary + + + (see ISO-320001 Table 41). + + the valid input domain, input will be clipped to this domain + contains a min max pair per input component + + + the valid output range, oputput will be clipped to this range + contains a min max pair per output component + + The list of functions to stitch + + (Required) An array of k − 1 numbers that, in combination with Domain, shall define + the intervals to which each function from the Functions array shall apply. + Bounds elements shall be in order of increasing value, and each value shall be within + the domain defined by Domain. + + + (Required) An array of 2 × k numbers that, taken in pairs, shall map each subset of the domain + defined by Domain and the Bounds array to the domain of the corresponding function. + + + + (Required) An array of k 1-input functions that shall make up the stitching function. + + (Required) An array of k 1-input functions that shall make up the stitching function. + The output dimensionality of all functions shall be the same, and compatible with the value + of Range if Range is present. + + (see ISO-320001 Table 41) + + the list of functions + + + (Required) An array of k 1-input functions that shall make up the stitching function. + + (Required) An array of k 1-input functions that shall make up the stitching function. + The output dimensionality of all functions shall be the same, and compatible with the value + of Range if Range is present. + + (see ISO-320001 Table 41) + + the list of functions + + + + An array of k − 1 numbers that, in combination with Domain, shall define + the intervals to which each function from the Functions array shall apply. + + + An array of k − 1 numbers that, in combination with Domain, shall define + the intervals to which each function from the Functions array shall apply. + Bounds elements shall be in order of increasing value, and each value shall be within + the domain defined by Domain. + + (see ISO-320001 Table 41) + + the bounds + + + + (Required) An array of k − 1 numbers that, in combination with Domain, shall define + the intervals to which each function from the Functions array shall apply. + + + (Required) An array of k − 1 numbers that, in combination with Domain, shall define + the intervals to which each function from the Functions array shall apply. + Bounds elements shall be in order of increasing value, and each value shall be within + the domain defined by Domain. + + (see ISO-320001 Table 41) + + the new set of bounds + + + + An array of 2 × k numbers that, taken in pairs, shall map each subset of the domain defined + by Domain and the Bounds array to the domain of the corresponding function. + + + An array of 2 × k numbers that, taken in pairs, shall map each subset of the domain defined + by Domain and the Bounds array to the domain of the corresponding function. + + (see ISO-320001 Table 41) + + the encode values + + + + (Required) An array of 2 × k numbers that, taken in pairs, shall map each subset of the domain defined + by Domain and the Bounds array to the domain of the corresponding function. + + + (Required) An array of 2 × k numbers that, taken in pairs, shall map each subset of the domain defined + by Domain and the Bounds array to the domain of the corresponding function. + + (see ISO-320001 Table 41) + + the new set of encodings + + + Gets output size of function. + + Gets output size of function. + + If Range field is absent, the output size of functions will be returned. + + output size of function + + + Maps passed value from actual range to expected range. + the value to map + the start of actual range + the end of actual range + the start of expected range + the end of expected range + the mapped value + + + + This interface defines logic which can be used to perform a custom copying + operation of a + . + + + + Copies a page. + + Copies a page. + The new page must already be created before calling this, either in a new + + or in the same + + as the old page. + + the source page + the target page in a target document + + + + Interface used to create instances of + . + + + + + Create + + on the base of the page + . + + + the + + object on which the + + will be based + + + created + + + + + + Create + + with given page size and add it to the + . + + + + + to add page + + + + + of the created page + + + created + + + + + Type of object to conform. + + + The interface generalizing the layer types (PdfLayer, PdfLayerMembership). + + + Gets the object representing the layer. + the object representing the layer + + + Gets the PdfIndirectReference that represents this layer. + the PdfIndirectReference that represents this layer + + + + An optional content group is a dictionary representing a collection of graphics + that can be made visible or invisible dynamically by users of viewer applications. + + + An optional content group is a dictionary representing a collection of graphics + that can be made visible or invisible dynamically by users of viewer applications. + In iText they are referenced as layers. +

    + To be able to be wrapped with this + + the + + must be indirect. +
    +
    + + Used for titling group of objects but not actually grouping them. + + + Creates a new layer by existing dictionary, which must be an indirect object. + the layer dictionary, must have an indirect reference. + + + Creates a new layer by its name and document. + the layer name + the PdfDocument which the layer belongs to + + + Creates a title layer. + + Creates a title layer. A title layer is not really a layer but a collection of layers + under the same title heading. + + the title text + the PdfDocument + the title layer + + + + Use this method to set a collection of optional content groups + whose states are intended to follow a "radio button" paradigm. + + + Use this method to set a collection of optional content groups + whose states are intended to follow a "radio button" paradigm. + That is, the state of at most one optional content group + in the array should be ON at a time: if one group is turned + ON, all others must be turned OFF. + + the PdfDocument + the radio group + + + Adds a child layer. + Adds a child layer. Nested layers can only have one parent. + the child layer + + + Gets the parent of this layer, be it a title layer, or a usual one. + the parent of the layer, or null if it has no parent + + + Sets the name of the layer to be displayed in the Layers panel. + the name of the layer. + + + Gets the initial visibility of the layer when the document is opened. + the initial visibility of the layer + + + Sets the initial visibility of the layer when the document is opened. + the initial visibility of the layer + + + Gets whether the layer is currently locked or not. + + Gets whether the layer is currently locked or not. If the layer is locked, + it will not be possible to change its state (on/off) in a viewer. + + true if the layer is currently locked, false otherwise. + + + Use this method to lock an optional content group. + + Use this method to lock an optional content group. + The state of a locked group cannot be changed through the user interface + of a viewer application. Producers can use this entry to prevent the visibility + of content that depends on these groups from being changed by users. + + sets whether the layer is currently locked or not + + + Gets the layer visibility in Acrobat's layer panel + the layer visibility in Acrobat's layer panel + + + Sets the visibility of the layer in Acrobat's layer panel. + + Sets the visibility of the layer in Acrobat's layer panel. If false + the layer cannot be directly manipulated by the user. Note that any children layers will + also be absent from the panel. + + the visibility of the layer in Acrobat's layer panel + + + Gets a collection of current intents specified for this layer. + + Gets a collection of current intents specified for this layer. + The default value is + + , so it will be the only element of the + resultant collection if no intents are currently specified. + + the collection of intents. + + + Sets the intents of the layer. + the list of intents. + + + + Used by the creating application to store application-specific + data associated with this optional content group. + + a text string specifying the application that created the group + + a string defining the type of content controlled by the group. Suggested + values include but are not limited to Artwork, for graphic-design or publishing + applications, and Technical, for technical designs such as building plans or + schematics + + + + + Specifies the language of the content controlled by this + optional content group + + + a language string which specifies a language and possibly a locale + (for example, es-MX represents Mexican Spanish) + + + used by viewer applications when there is a partial match but no exact + match between the system language and the language strings in all usage dictionaries + + + + + Specifies the recommended state for content in this + group when the document (or part of it) is saved by a viewer application to a format + that does not support optional content (for example, an earlier version of + PDF or a raster image format). + + the export state + + + + Specifies a range of magnifications at which the content + in this optional content group is best viewed. + + + the minimum recommended magnification factors at which the group + should be ON. A negative value will set the default to 0 + + + the maximum recommended magnification factor at which the group + should be ON. A negative value will set the largest possible magnification supported by the + viewer application + + + + + Specifies that the content in this group is intended for + use in printing + + + a name specifying the kind of content controlled by the group; + for example, Trapping, PrintersMarks and Watermark + + + indicates that the group should be + set to that state when the document is printed from a viewer application + + + + + Indicates that the group should be set to that state when the + document is opened in a viewer application. + + the view state + + + + Specifies one or more users for whom this optional content group + is primarily intended. + + a name that can be Ind (individual), Ttl (title), or Org (organization). + + one or more text strings representing + the name(s) of the individual, position or organization + + + + Indicates that the group contains a pagination artifact. + + one of the following names: "HF" (Header Footer), + "FG" (Foreground), "BG" (Background), or "L" (Logo). + + + + Gets the indirect reference to the current layer object. + the indirect reference to the object representing the layer + + + Gets the title of the layer if it is a title layer, or null if it is a usual layer. + the title of the layer if it is a title layer, or null if it is a usual layer + + + Gets the list of the current child layers of the layer. + + Gets the list of the current child layers of the layer. + BE CAREFUL! Do not try to add a child layer using the resultant child list, + use #addChild method instead. + + the list of the current child layers, null if the layer has no children. + + + + Gets the + + that owns that layer. + + + the + + that owns that layer + + + + Creates a title layer without registering it in PdfOCProperties. + the title of the layer + the document this title layer belongs to + the created layer + + + Gets the /Usage dictionary, creating a new one if necessary. + the /Usage dictionary + + + + Content typically belongs to a single optional content group, + and is visible when the group is ON and invisible when it is OFF. + + + Content typically belongs to a single optional content group, + and is visible when the group is ON and invisible when it is OFF. To express more + complex visibility policies, content should not declare itself to belong to an optional + content group directly, but rather to an optional content membership dictionary + represented by this class. +

    + To be able to be wrapped with this + + the + + must be indirect. +
    +
    + + Creates a new, empty membership layer. + + a + + where a new empty membership layer creates + + + + Creates a new PdfLayerMembership instance by its PdfDictionary, which must be an indirect object. + + the membership dictionary, must have an indirect reference. + + + Gets the collection of the layers this layer membership operates with. + + list of + layers + this layer membership operates with + + + + Adds a new layer to the current layer membership. + the layer to be added + + + + Sets the visibility policy for content belonging to this + membership dictionary. + + + Sets the visibility policy for content belonging to this + membership dictionary. Possible values are AllOn, AnyOn, AnyOff and AllOff. + AllOn - Visible only if all of the entries are ON. + AnyOn - Visible if any of the entries are ON. + AnyOff - Visible if any of the entries are OFF. + AllOff - Visible only if all of the entries are OFF. + The default value is AnyOn. + + the visibility policy + + + Gets the visibility policy for content belonging to this optional content membership dictionary. + the visibility policy for content belonging to this membership dictionary + + + + Sets the visibility expression for content belonging to this + membership dictionary. + + + A (nested) array of which the first value is /And, /Or, or /Not + followed by a series of indirect references to OCGs or other visibility + expressions. + + + + Gets the visibility expression for content belonging to this optional content membership dictionary. + + the visibility expression for content belonging to this membership dictionary, if not set return null + + + + + Gets the + + that owns that layer membership. + + + the + + that owns that layer membership + + + + + This class represents /OCProperties entry if pdf catalog and manages + the layers of the pdf document. + + + This class represents /OCProperties entry if pdf catalog and manages + the layers of the pdf document. + + To be able to be wrapped with this + + the + + must be indirect. + + + + Creates a new PdfOCProperties instance. + the document the optional content belongs to + + + + Creates a new PdfOCProperties instance by the dictionary it represents, + the dictionary must be an indirect object. + + the dictionary of optional content properties, must have an indirect reference. + + + + + Use this method to set a collection of optional content groups + whose states are intended to follow a "radio button" paradigm. + + + Use this method to set a collection of optional content groups + whose states are intended to follow a "radio button" paradigm. + That is, the state of at most one optional content group + in the array should be ON at a time: if one group is turned + ON, all others must be turned OFF. + + the radio group + + + Fills the underlying PdfDictionary object with the current layers and their settings. + + Fills the underlying PdfDictionary object with the current layers and their settings. + Note that it completely regenerates the dictionary, so your direct changes to the dictionary + will not take any affect. + + the resultant dictionary + + + Fills the underlying PdfDictionary object with the current layers and their settings. + + Fills the underlying PdfDictionary object with the current layers and their settings. + Note that it completely regenerates the dictionary, so your direct changes to the dictionary + will not take any affect. + + + the flag indicating whether it is necessary + to delete OCGs not from the current document + + the resultant dictionary + + + Gets the list of all the layers currently registered in the OCProperties. + + Gets the list of all the layers currently registered in the OCProperties. + Note that this is just a new list and modifications to it will not affect anything. + + + list of all the + layers + currently registered in the OCProperties + + + + This method registers a new layer in the OCProperties. + the new layer + + + + Gets the + + that owns that OCProperties. + + + the + + that owns that OCProperties + + + + + Gets the order of the layers in which they will be displayed in the layer view panel, + including nesting. + + + + Populates the /AS entry in the /D dictionary. + + + Reads the layers from the document to be able to modify them in the future. + + + Reads the /Order in the /D entry and initialized the parent-child hierarchy. + + + + An array specifying a visibility expression, used to compute visibility + of content based on a set of optional content groups. + + + + Constructs a new PdfVisibilityExpression instance by its raw PdfArray. + the array representing the visibility expression + + + Creates a visibility expression. + should be either PdfName#And, PdfName#Or, or PdfName#Not + + + Adds a new operand to the current visibility expression. + the layer operand to be added. + + + Adds a new opeand to the current visibility expression. + the PdfVisibilityExpression instance operand to be added + + + Handles memory limits aware processing. + + + + + Creates a + + which will be used for decompression of the passed pdf stream. + + the pdf stream which is going to be decompressed. + + the + + which will be used for decompression of the passed pdf stream + + + + + A + + handles memory allocation and prevents decompressed + pdf streams from occupation of more space than allowed. + + + A + + handles memory allocation and prevents decompressed + pdf streams from occupation of more space than allowed. + A configured MemoryLimitsAwareHandler can be set as a property of + + instance which is passed to + . + + + + + + Creates a + + which will be used to handle decompression of pdf streams. + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default, based on the size of the document. + + the size of the document, which is going to be handled by iText. + + + Gets the maximum allowed size which can be occupied by a single decompressed pdf stream. + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + This value correlates with maximum heap size. This value should not exceed limit of the heap size. + iText will throw an exception if during decompression a pdf stream which was identified as + requiring memory limits awareness occupies more memory than allowed. + + + the maximum allowed size which can be occupied by a single + decompressed pdf stream. + + + this + + instance. + + + + + Gets the maximum allowed size which can be occupied by all decompressed pdf streams. + the maximum allowed size value which streams may occupy + + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + This value can be limited by the maximum expected PDF file size when it's completely decompressed. + Setting this value correlates with the maximum processing time spent on document reading + iText will throw an exception if during decompression pdf streams which were identified as + requiring memory limits awareness occupy more memory than allowed. + + + he maximum allowed size which can be occupied by all decompressed pdf + streams. + + + this + + instance. + + + + + + Performs a check if the + + with provided setup of the filters requires + memory limits awareness during decompression. + + + is an + + of names of filters + + true if PDF stream is suspicious and false otherwise + + + Gets maximum number of elements in xref structure. + maximum number of elements in xref structure. + + + Sets maximum number of elements in xref structure. + maximum number of elements in xref structure. + + + Performs a check of possible extension of xref structure. + capacity to which we need to expand xref array. + + + Considers the number of bytes which are occupied by the decompressed pdf stream. + + Considers the number of bytes which are occupied by the decompressed pdf stream. + If memory limits have not been faced, throws an exception. + + the number of bytes which are occupied by the decompressed pdf stream. + + this + + instance. + + + + + Begins handling of current pdf stream decompression. + + this + + instance. + + + + Ends handling of current pdf stream decompression. + + Ends handling of current pdf stream decompression. + If memory limits have not been faced, throws an exception. + + + this + + instance. + + + + + This class implements an output stream which can be used for memory limits aware decompression of pdf streams. + + + + The maximum size of array to allocate. + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + + The maximum size of array to allocate. + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + + Creates a new byte array output stream. + + Creates a new byte array output stream. The buffer capacity is + initially 32 bytes, though its size increases if necessary. + + + + + Creates a new byte array output stream, with a buffer capacity of + the specified size, in bytes. + + the initial size. + + + Gets the maximum size which can be occupied by this output stream. + the maximum size which can be occupied by this output stream. + + + Sets the maximum size which can be occupied by this output stream. + the maximum size which can be occupied by this output stream. + + this + + + + + + + + + This class shall be used for creation of destinations, associated with outline items, annotations + or actions within current document. + + + This class shall be used for creation of destinations, associated with outline items, annotations + or actions within current document. + If you need to create a destination, associated with an object in another PDF + (e.g. Remote Go-To actions or Embedded Go-To actions), you should use + + class instead. + Note that despite methods with integer value for page parameter are deprecated in this class, + Adobe Acrobat handles such destinations correctly, but removes them completely from a PDF, + when it is saved as an optimized pdf with the "discard-invalid-links" option. + Therefore it is strongly recommended to use methods accepting pdfPage instance, if the destination is inside of the current document. + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified by the factor zoom and positioned at the upper-left corner of the window. + + the destination page + the X coordinate of the left edge of the destination rectangle + the Y coordinate of the upper edge of the destination rectangle + zoom factor + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire page within the window both horizontally and vertically. + + the destination page + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire width of the page within the window. + + the destination page + the Y coordinate of the upper edge of the destination rectangle + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire height of the page within the window. + + the destination page + the X coordinate of the left edge of the destination rectangle + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the rectangle specified by the coordinates left, bottom, right, and top + entirely within the window both horizontally and vertically. + + the destination page + the X coordinate of the left edge of the destination rectangle + the Y coordinate of the lower edge of the destination rectangle + the X coordinate of the right edge of the destination rectangle + the Y coordinate of the upper edge of the destination rectangle + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit its bounding box entirely within the window both horizontally and vertically. + + the destination page + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire width of its bounding box within the window. + + the destination page + the Y coordinate of the upper edge of the destination rectangle + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire height of its bounding box within the window. + + the destination page + the X coordinate of the left edge of the destination rectangle + + newly created + + + + + + Creates a + + associated with an object inside current PDF document. + + the destination page + + a + + specifying one of the possible ways to define the area to be displayed. + See ISO 32000-1, section 12.3.2.2 "Explicit Destinations", Table 151 – Destination syntax + + the X coordinate of the left edge of the destination rectangle + the Y coordinate of the lower edge of the destination rectangle + the X coordinate of the right edge of the destination rectangle + the Y coordinate of the upper edge of the destination rectangle + zoom factor + + newly created + + + + + + This class shall be used for creation of destinations, associated Remote Go-To and Embedded Go-To actions only, + i.e. the destination point is in another PDF. + + + This class shall be used for creation of destinations, associated Remote Go-To and Embedded Go-To actions only, + i.e. the destination point is in another PDF. + If you need to create a destination, associated with an object inside current PDF, you should use + + class instead. + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified by the factor zoom and positioned at the upper-left corner of the window. + + the destination page + the X coordinate of the left edge of the destination rectangle + the Y coordinate of the upper edge of the destination rectangle + zoom factor + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire page within the window both horizontally and vertically. + + the destination page + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire width of the page within the window. + + the destination page + the Y coordinate of the upper edge of the destination rectangle + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire height of the page within the window. + + the destination page + the X coordinate of the left edge of the destination rectangle + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the rectangle specified by the coordinates left, bottom, right, and top + entirely within the window both horizontally and vertically. + + the destination page + the X coordinate of the left edge of the destination rectangle + the Y coordinate of the lower edge of the destination rectangle + the X coordinate of the right edge of the destination rectangle + the Y coordinate of the upper edge of the destination rectangle + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit its bounding box entirely within the window both horizontally and vertically. + + the destination page + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire width of its bounding box within the window. + + the destination page + the Y coordinate of the upper edge of the destination rectangle + + newly created + + + + + + Creates + . + + + Creates + + . The designated page will be displayed with its contents + magnified just enough to fit the entire height of its bounding box within the window. + + the destination page + the X coordinate of the left edge of the destination rectangle + + newly created + + + + + + Creates a + + associated with an object in another PDF document. + + the destination page + + a + + specifying one of the possible ways to define the area to be displayed. + See ISO 32000-1, section 12.3.2.2 "Explicit Destinations", Table 151 – Destination syntax + + the X coordinate of the left edge of the destination rectangle + the Y coordinate of the lower edge of the destination rectangle + the X coordinate of the right edge of the destination rectangle + the Y coordinate of the upper edge of the destination rectangle + zoom factor + + newly created + + + + + This class allows to free the memory taken by already processed pages when handling big PDF files. + + + This class allows to free the memory taken by already processed pages when handling big PDF files. + It provides three alternative approaches for this, each of which has its own advantages and most suitable use cases: + + , + + , + . + + Each approach is designed to be most suitable for specific modes of document processing. There are four document + processing modes: reading, writing, stamping and append mode. + + Reading mode: The + + instance is initialized using only + + by + + constructor. + + Writing mode: The + + instance is initialized using only + + by + + constructor. + + Stamping mode: The + + instance is initialized using both + + and + + by + + constructor. If the optional third + + argument is passed, its + + method shall NOT be called.
    + This mode allows to update the existing document by completely recreating it. The complete document will be rewritten + by the end of + + call. + + Append mode: The + + instance is initialized using both + + and + + by + + constructor. The third + + argument shall have + + method called.
    + This mode preserves the document intact with all its data, but adds additional data at the end of the file, + which "overrides" and introduces amends to the original document. In this mode it's not required to rewrite the + complete document which can be highly beneficial for big PDF documents handling. + + The + + class operates with two concepts of PDF objects states: flushed and released objects. + + Flushed object is the one which is finalized and has been completely written to the output stream. This frees its + memory but makes it impossible to modify it or read data from it. Whenever there is an attempt to modify or to fetch + flushed object inner contents an exception will be thrown. Flushing is only possible for objects in the writing + and stamping modes, also its possible to flush modified objects in append mode. + + Released object is the one which has not been modified and has been "detached" from the + + , making it + possible to remove it from memory during the GC, even if the document is not closed yet. All released object instances + become read-only and any modifications will not be reflected in the resultant document. Read-only instances should be + considered as copies of the original objects. Released objects can be re-read, however after re-reading new object + instances are created. Releasing is only possible for not modified objects in reading, stamping and append modes. + It's important to remember though, that during + + in stamping mode all released objects + will be re-read. + + The + + class doesn't work with PdfADocument instances. +
    +
    + + Flushes to the output stream all objects belonging to the given page. + + Flushes to the output stream all objects belonging to the given page. This frees the memory taken by those + objects, but makes it impossible to modify them or read data from them. + + This method is mainly designed for writing and stamping modes. It will throw an exception for documents + opened in reading mode (see + + for more details on modes). This method can also be used for append + mode if new pages are added or existing pages are heavily modified and + + is not enough. + + This method is highly effective in freeing the memory and works properly for the vast majority of documents + and use cases, however it can potentially cause failures. If document handling fails with exception after + using this method, one should re-process the document with a "safe flushing" alternative + (see + + or consider using append mode and + + method). + + The unsafety comes from the possibility of objects being shared between pages and the fact that object data + cannot be read after the flushing. Whenever flushed object is attempted to be modified or its data is fetched + the exception will be thrown (flushed object can be added to the other objects, though). + + In stamping/append mode the issue occurs if some object is shared between two or more pages, and the first page + is flushed, and later for processing of the second page this object is required to be read/modified. Normally only + page resources (like images and fonts) are shared, which are often not required for page processing: for example + for page stamping (e.g. adding watermarks, headers, etc) only new resources are added. Among examples of when the + page resources are indeed required (and therefore the risk of this method causing failures being high) would be + page contents parsing: text extraction, any general + + class usage, usage of pdfSweep addon. + + In writing mode this method normally will work without issues: by default iText creates page objects in such way + that they are independent from each other. Again, the resources can be shared, but as mentioned above + it's safe to add already flushed resources to the other pages because this doesn't require reading data from them. + + For append mode only modified objects are flushed, all others are released and can be re-read later on. + + This method shall be used only when it's known that the page and its inner structures processing is finished. + This includes reading data from pages, page modification and page handling via addons/utilities. + + the page number which low level objects structure is to be flushed to the output stream. + + + + Releases memory taken by all not modified objects belonging to the given page, including the page dictionary itself. + + + Releases memory taken by all not modified objects belonging to the given page, including the page dictionary itself. + This affects only the objects that are read from the existing input PDF. + + This method is mainly designed for reading mode and also can be used in append mode (see + + for more details on modes). In append mode modified objects will be kept in memory. + The page and all its inner structure objects can be re-read again. + + This method will not have any effect in the writing mode. It is also not advised to be used in stamping mode: + even though it will indeed release the objects, they will be definitely re-read again on document closing, which + would affect performance. + + When using this method in append mode (or in stamping mode), be careful not to try to modify the object instances + obtained before the releasing! See + + for details on released objects state. + + This method shall be used only when it's known that the page and its inner structures processing is finished. + This includes reading data from pages, page modification and page handling via addons/utilities. + + the page number which low level objects structure is to be released from memory. + + + + Flushes to the output stream modified objects that can belong only to the given page, which makes this method + "safe" compared to the + . + + + Flushes to the output stream modified objects that can belong only to the given page, which makes this method + "safe" compared to the + + . Flushed object frees the memory, but it's impossible to + modify such objects or read data from them. This method releases all other page structure objects that are not + modified. + + This method is mainly designed for the append mode. It is similar to the + + , but it + additionally releases all page objects that were not flushed. This method is ideal for small amendments of pages, + but it makes more sense to use + + for newly created or heavily modified pages.
    + This method will throw an exception for documents opened in reading mode (see + + for more details on modes). It is also not advised to be used in stamping mode: even though it will indeed + release the objects and free the memory, the released objects will definitely be re-read again on document + closing, which would affect performance. + + When using this method in append mode (or in stamping mode), be careful not to try to modify the object instances + obtained before this method call! See + + for details on released and flushed objects state. + + This method shall be used only when it's known that the page and its inner structures processing is finished. + This includes reading data from pages, page modification and page handling via addons/utilities. +
    + the page number which low level objects structure is to be flushed or released from memory. + +
    + + + Page label numbering style constants for + . + + + + 1, 2, 3, 4... + + + I, II, III, IV... + + + i, ii, iii, iv... + + + A, B, C, D... + + + a, b, c, d... + + + Enumeration of all the PDF/A conformance levels. + + + Specifying the characteristics of the annotation’s border. + + Specifying the characteristics of the annotation’s border. + See ISO 32000-1 12.5.2, Table 164 - Entries common to all annotation dictionaries, Key - border. + + Note (PDF 1.2): The dictionaries for some annotation types can include the BS (border style) entry. + That entry specifies a border style dictionary that has more settings than this class. + If an annotation has BS entry, then + + is ignored. + + + + + Creates a + + with three numbers defining the horizontal + corner radius, vertical corner radius, and border width, all in default user + space units. + + + Creates a + + with three numbers defining the horizontal + corner radius, vertical corner radius, and border width, all in default user + space units. If the corner radii are 0, the border has square (not rounded) + corners; if the border width is 0, no border is drawn. + + horizontal corner radius + vertical corner radius + width of the border + + + + Creates a + + with three numbers defining the horizontal + corner radius, vertical corner radius, and border width, all in default user + space units and a dash pattern for the border lines. + + + Creates a + + with three numbers defining the horizontal + corner radius, vertical corner radius, and border width, all in default user + space units and a dash pattern for the border lines. If the corner radii are 0, + the border has square (not rounded) corners; if the border width is 0, no border is drawn. + + horizontal corner radius + vertical corner radius + width of the border + the dash pattern + + + A representation of an array as described in the PDF specification. + + A representation of an array as described in the PDF specification. A PdfArray can contain any + subclass of + . + + + + Create a new, empty PdfArray. + + + + Create a new PdfArray with the provided PdfObject as the first item in the + array. + + first item in the array + + + Create a new PdfArray. + Create a new PdfArray. The array is filled with the items of the provided PdfArray. + PdfArray containing items that will added to this PdfArray + + + Create a new PdfArray. + + Create a new PdfArray. The array is filled with the four values of the Rectangle in the + following order: left, bottom, right, top. + + Rectangle whose 4 values will be added to the PdfArray + + + Create a new PdfArray. + Create a new PdfArray. The PdfObjects in the list will be added to the PdfArray. + List of PdfObjects to be added to this PdfArray + + + + Create a new PdfArray filled with the values in the float[] as + . + + values to be added to this PdfArray + + + + Create a new PdfArray filled with the values in the double[] as + . + + values to be added to this PdfArray + + + + Create a new PdfArray filled with the values in the int[] as + . + + values to be added to this PdfArray + + + + Create a new PdfArray filled with the values in the boolean[] as + . + + values to be added to this PdfArray + + + Create a new PdfArray filled with a list of Strings. + + Create a new PdfArray filled with a list of Strings. The boolean value decides if the Strings + should be added as + + (true) or as + + (false). + + list of strings to be added to the list + indicates whether the strings should be added as PdfName (true) or as PdfString (false) + + + + Create a new PdfArray. + Create a new PdfArray. The PdfObjects in the iterable object will be added to the PdfArray. + List of PdfObjects to be added to this PdfArray + Initial capacity of this PdfArray + + + Returns an iterator over an array of PdfObject elements. + + Returns an iterator over an array of PdfObject elements. +
    + NOTE: since 7.0.1 it returns collection of direct objects. + If you want to get + + instances for the indirect objects value, + you shall use + + method. +
    + an Iterator. +
    + + Adds the specified PdfObject at the specified index. + Adds the specified PdfObject at the specified index. All objects after this index will be shifted by 1. + + position to insert the PdfObject + PdfObject to be added + + + + Sets the PdfObject at the specified index in the PdfArray. + the position to set the PdfObject + PdfObject to be added + true if the operation changed the PdfArray + + + + Adds the Collection of PdfObjects. + the Collection of PdfObjects to be added + + + + + Adds content of the + PdfArray. + + + the + PdfArray + to be added + + + + + Gets the (direct) PdfObject at the specified index. + index of the PdfObject in the PdfArray + the PdfObject at the position in the PdfArray + + + Removes the PdfObject at the specified index. + position of the PdfObject to be removed + + + + Removes the first occurrence of the specified PdfObject, if it is present. + a PdfObject to be removed + + + + Gets the first index of the specified PdfObject. + PdfObject to find the index of + index of the PdfObject + + + + Returns a sublist of this PdfArray, starting at fromIndex (inclusive) and ending at toIndex (exclusive). + + the position of the first element in the sublist (inclusive) + the position of the last element in the sublist (exclusive) + List of PdfObjects + + + + true is to extract direct object always. + index of the element to return + the element at the specified position in this list + + + Returns the element at the specified index as a PdfArray. + Returns the element at the specified index as a PdfArray. If the element isn't a PdfArray, null is returned. + + position of the element to be returned + the element at the index as a PdfArray + + + Returns the element at the specified index as a PdfDictionary. + Returns the element at the specified index as a PdfDictionary. If the element isn't a PdfDictionary, null is returned. + + position of the element to be returned + the element at the index as a PdfDictionary + + + Returns the element at the specified index as a PdfStream. + Returns the element at the specified index as a PdfStream. If the element isn't a PdfStream, null is returned. + + position of the element to be returned + the element at the index as a PdfStream + + + Returns the element at the specified index as a PdfNumber. + Returns the element at the specified index as a PdfNumber. If the element isn't a PdfNumber, null is returned. + + position of the element to be returned + the element at the index as a PdfNumber + + + Returns the element at the specified index as a PdfName. + Returns the element at the specified index as a PdfName. If the element isn't a PdfName, null is returned. + + position of the element to be returned + the element at the index as a PdfName + + + Returns the element at the specified index as a PdfString. + Returns the element at the specified index as a PdfString. If the element isn't a PdfString, null is returned. + + position of the element to be returned + the element at the index as a PdfString + + + Returns the element at the specified index as a PdfBoolean. + Returns the element at the specified index as a PdfBoolean. If the element isn't a PdfBoolean, null is returned. + + position of the element to be returned + the element at the index as a PdfBoolean + + + Returns the first four elements of this array as a PdfArray. + + Returns the first four elements of this array as a PdfArray. The first four values need to be + PdfNumbers, if not a PdfException will be thrown. + + Rectangle of the first four values + + + Returns this array as an array of floats. + Returns this array as an array of floats. Will throw a PdfException when it encounters an issue. + this array as an array of floats + + + Returns this array as an array of doubles. + Returns this array as an array of doubles. Will throw a PdfException when it encounters an issue. + + this array as an array of doubles + + + Returns this array as an array of longs. + Returns this array as an array of longs. Will throw a PdfException when it encounters an issue. + this array as an array of longs + + + Returns this array as an array of ints. + Returns this array as an array of ints. Will throw a PdfException when it encounters an issue. + this array as an array of ints + + + Returns this array as an array of booleans. + Returns this array as an array of booleans. Will throw a PdfException when it encounters an issue. + + this array as an array of booleans + + + Release content of PdfArray. + + + + + + Store a boolean value + value to store + + + Gets PdfBoolean existing static class variable equivalent for given boolean value. + + Gets PdfBoolean existing static class variable equivalent for given boolean value. + Note, returned object will be direct only, which means it is impossible to make in indirect. + If required PdfBoolean has to be indirect, + use + + constructor instead. + + boolean variable defining value of PdfBoolean to return. + existing static PdfBoolean class variable. + + + The root of a document’s object hierarchy. + + + + Map of the + . + + + Map of the + + . Used for creation + name tree + dictionary. + + + + Defining the page labelling for the document. + + + The document’s optional content properties dictionary. + + + + Create + + dictionary. + + the dictionary to be wrapped + + + + Create + + to + . + + + A + + object representing the document + to which redaction applies + + + + Use this method to get the Optional Content Properties Dictionary. + + Use this method to get the Optional Content Properties Dictionary. + Note that if you call this method, then the + + with OCProperties will be + generated from + + object right before closing the + + , + so if you want to make low-level changes in Pdf structures themselves ( + + , + + , etc), then you should address directly those objects, e.g.: + + PdfCatalog pdfCatalog = pdfDoc.getCatalog(); + PdfDictionary ocProps = pdfCatalog.getAsDictionary(PdfName.OCProperties); + // manipulate with ocProps. + + Also note that this method is implicitly called when creating a new PdfLayer instance, + so you should either use hi-level logic of operating with layers, + or manipulate low-level Pdf objects by yourself. + + + true to create new /OCProperties entry in catalog if not exists, + false to return null if /OCProperties entry in catalog is not present. + + the Optional Content Properties Dictionary + + + + Get + + with indirect reference associated with the object. + + the resultant dictionary + + + PdfCatalog will be flushed in PdfDocument.close(). + PdfCatalog will be flushed in PdfDocument.close(). User mustn't flush PdfCatalog! + + + A value specifying a destination that shall be displayed when the document is opened. + + A value specifying a destination that shall be displayed when the document is opened. + See ISO 32000-1, Table 28 – Entries in the catalog dictionary. + + + instance of + . + + destination + + + A value specifying an action that shall be performed when the document is opened. + + A value specifying an action that shall be performed when the document is opened. + See ISO 32000-1, Table 28 – Entries in the catalog dictionary. + + + instance of + . + + action + + + The actions that shall be taken in response to various trigger events affecting the document as a whole. + + + The actions that shall be taken in response to various trigger events affecting the document as a whole. + See ISO 32000-1, Table 28 – Entries in the catalog dictionary. + + the key of which the associated value needs to be returned + + instance of + . + + additional action + + + Get page mode of the document. + + current instance of + + + + + This method sets a page mode of the document. + + This method sets a page mode of the document. +
    + Valid values are: + PdfName.UseNone + , + PdfName.UseOutlines + , + PdfName.UseThumbs + , + PdfName.FullScreen + , + PdfName.UseOC + , + PdfName.UseAttachments. +
    + page mode. + current instance of PdfCatalog +
    + + Get page layout of the document. + name object of page layout that shall be used when document is opened + + + This method sets a page layout of the document + page layout of the document + + + + instance with applied page layout + + + + Get viewer preferences of the document. + dictionary of viewer preferences + + + + This method sets the document viewer preferences, specifying the way the document shall be displayed on the + screen + + + document's + viewer preferences + + + + + instance with applied viewer preferences + + + + This method gets Names tree from the catalog. + type of the tree (Dests, AP, EmbeddedFiles etc). + + returns + + + + + This method returns the NumberTree of Page Labels + + defines whether the NumberTree of Page Labels should be created + if it didn't exist before + + + returns + + + + + Get natural language. + natural language + + + An entry specifying the natural language, and optionally locale. + + An entry specifying the natural language, and optionally locale. Use this + to specify the Language attribute on a Tagged Pdf element. + For the content usage dictionary, use PdfName.Language + + + + language + to be set + + + + + Add an extensions dictionary containing developer prefix identification and version + numbers for developer extensions that occur in this document. + + + Add an extensions dictionary containing developer prefix identification and version + numbers for developer extensions that occur in this document. + See ISO 32000-1, Table 28 – Entries in the catalog dictionary. + + + enables developers to identify their own extension + relative to a base version of PDF + + + + + Gets collection dictionary that a conforming reader shall use to enhance the presentation of file attachments + stored in the PDF document. + + + + + wrapper of collection dictionary. + + + + + Sets collection dictionary that a conforming reader shall use to enhance the presentation of file attachments + stored in the PDF document. + + + + dictionary + + + + + instance with applied collection dictionary + + + + + Add key and value to + + dictionary. + + the dictionary key corresponding with the PDF object + the value of key + the key and value + + + Remove key from catalog dictionary. + the dictionary key corresponding with the PDF object + the key + + + + True indicates that getOCProperties() was called, may have been modified, + and thus its dictionary needs to be reconstructed. + + boolean indicating if the dictionary needs to be reconstructed + + + this method return map containing all pages of the document with associated outlines. + map containing all pages of the document with associated outlines + + + This methods adds new name to the Dests NameTree. + This methods adds new name to the Dests NameTree. It throws an exception, if the name already exists. + + Name of the destination. + + An object destination refers to. Must be an array or a dictionary with key /D and array. + See ISO 32000-1 12.3.2.3 for more info. + + + + This methods adds a new name to the specified NameTree. + This methods adds a new name to the specified NameTree. It throws an exception, if the name already exists. + + key in the name tree + value in the name tree + type of the tree (Dests, AP, EmbeddedFiles etc). + + + This method returns a complete outline tree of the whole document. + + if the flag is true, the method read the whole document and creates outline tree. + If false the method gets cached outline tree (if it was cached via calling + getOutlines method before). + + + fully initialized + + object. + + + + Indicates if the catalog has any outlines + + + + , if there are outlines and + + otherwise. + + + + This flag determines if Outline tree of the document has been built via calling getOutlines method. + + + This flag determines if Outline tree of the document has been built via calling getOutlines method. + If this flag is false all outline operations will be ignored + + state of outline mode. + + + This method removes all outlines associated with a given page + the page to remove outlines + + + This method sets the root outline element in the catalog. + the outline dictionary that shall be the root of the document’s outline hierarchy + + + + Construct + dictionary + iteratively. + + + Construct + dictionary + iteratively. Invalid pdf documents will be processed depending on + + , if it set to lenient, we will ignore and process invalid outline structure, otherwise + + will be thrown. + + + + dictionary + root. + + map containing the PdfObjects stored in the tree. + + + Represents the line dash pattern. + + Represents the line dash pattern. The line dash pattern shall control the pattern + of dashes and gaps used to stroke paths. It shall be specified by a dash, gap and + a dash phase. + + + + This is the length of a dash. + + + This is the length of a gap. + + + This is the phase. + + + Creates a new line dash pattern. + + + Creates a new line dash pattern. + length of dash + + + Creates a new line dash pattern. + length of dash + length of gap + + + Creates a new line dash pattern. + length of dash + length of gap + this is the phase + + + Gets dash of PdfDashPattern. + float value. + + + Gets gap of PdfDashPattern. + float value. + + + Gets phase of PdfDashPattern. + float value. + + + + PdfDate + is the PDF date object. + + PDF defines a standard date format. The PDF date format closely follows the format + defined by the international standard ASN.1 (Abstract Syntax Notation One, defined + in CCITT X.208 or ISO/IEC 8824). A date is a + PdfString + of the form: + + + (D:YYYYMMDDHHmmSSOHH'mm') + + + See also ISO-320001 7.9.4, "Dates". + + + + + + + Constructs a + PdfDate + -object. + + + the date that has to be turned into a + PdfDate + >-object + + + + + Constructs a + PdfDate + -object, representing the current day and time. + + + + Gives the W3C format of the PdfDate. + a formatted date + + + + Gives the W3C format of the + PdfDate + . + + the date in the format D:YYYYMMDDHHmmSSOHH'mm' + a formatted date + + + + Converts a PDF string representing a date into a + DateTime + . + + the PDF string representing a date + + a + DateTime + representing the date + + + + + Beginning with BaseVersion 1.7, the extensions dictionary lets developers + designate that a given document contains extensions to PDF. + + + Beginning with BaseVersion 1.7, the extensions dictionary lets developers + designate that a given document contains extensions to PDF. The presence + of the extension dictionary in a document indicates that it may contain + developer-specific PDF properties that extend a particular base version + of the PDF specification. + The extensions dictionary enables developers to identify their own extensions + relative to a base version of PDF. Additionally, the convention identifies + extension levels relative to that base version. The intent of this dictionary + is to enable developers of PDF-producing applications to identify company-specific + specifications that PDF-consuming applications use to interpret the extensions. + + + + An instance of this class for Adobe 1.7 Extension level 3. + + + An instance of this class for ETSI 1.7 Extension level 2. + + + An instance of this class for ETSI 1.7 Extension level 5. + + + The prefix used in the Extensions dictionary added to the Catalog. + + + The base version. + + + The extension level within the base version. + + + Creates a PdfDeveloperExtension object. + the prefix referring to the developer + the number of the base version + the extension level within the baseverion. + + + Gets the prefix name. + a PdfName + + + Gets the baseVersion name. + a PdfName + + + Gets the extension level within the baseVersion. + an integer + + + + Generations the developer extension dictionary corresponding + with the prefix. + + a PdfDictionary + + + A representation of a Dictionary as described by the PDF Specification. + + A representation of a Dictionary as described by the PDF Specification. A Dictionary is a mapping between keys + and values. Keys are + PdfNames + and the values are + PdfObjects + . Each key can only be associated with one value and + adding a new value to an existing key will override the previous value. A value of null should be ignored when + the PdfDocument is closed. + + + + Creates a new PdfDictionary instance. + + + Creates a new PdfDictionary instance. + + Creates a new PdfDictionary instance. This constructor inserts the content of the specified Map into this + PdfDictionary instance. + + Map containing values to be inserted into PdfDictionary + + + Creates a new PdfDictionary instance. + + Creates a new PdfDictionary instance. This constructor inserts the content of the specified Set into this + PdfDictionary instance. + + Set containing Map#Entries to be inserted into PdfDictionary + + + Creates a new PdfDictionary instance. + + Creates a new PdfDictionary instance. This constructor inserts the content of the specified PdfDictionary + into this PdfDictionary instance. + + PdfDictionary containing values to be inserted into PdfDictionary + + + Returns the number of key-value pairs in this PdfDictionary. + number of key-value pairs + + + Returns true if there are no key-value pairs in this PdfDictionary. + true if there are no key-value pairs in this PdfDictionary + + + Returns true if this PdfDictionary contains the specified key. + the key to check + true if key is present in the PdfDictionary + + + Returns true if this PdfDictionary contains the specified value. + the value to check + true if value is present in the PdfDictionary + + + Returns the value associated to this key. + the key of which the associated value needs to be returned + the value associated with this key + + + Returns the value associated to this key as a PdfArray. + Returns the value associated to this key as a PdfArray. If the value isn't a PdfArray, null is returned. + + the key of which the associated value needs to be returned + PdfArray associated with this key + + + Returns the value associated to this key as a PdfDictionary. + + Returns the value associated to this key as a PdfDictionary. + If the value isn't a PdfDictionary, null is returned. + + the key of which the associated value needs to be returned + PdfDictionary associated with this key + + + Returns the value associated to this key as a PdfStream. + Returns the value associated to this key as a PdfStream. If the value isn't a PdfStream, null is returned. + + the key of which the associated value needs to be returned + PdfStream associated with this key + + + Returns the value associated to this key as a PdfNumber. + Returns the value associated to this key as a PdfNumber. If the value isn't a PdfNumber, null is returned. + + the key of which the associated value needs to be returned + PdfNumber associated with this key + + + Returns the value associated to this key as a PdfName. + Returns the value associated to this key as a PdfName. If the value isn't a PdfName, null is returned. + + the key of which the associated value needs to be returned + PdfName associated with this key + + + Returns the value associated to this key as a PdfString. + Returns the value associated to this key as a PdfString. If the value isn't a PdfString, null is returned. + + the key of which the associated value needs to be returned + PdfString associated with this key + + + Returns the value associated to this key as a PdfBoolean. + Returns the value associated to this key as a PdfBoolean. If the value isn't a PdfBoolean, null is returned. + + the key of which the associated value needs to be returned + PdfBoolean associated with this key + + + Returns the value associated to this key as a Rectangle. + + Returns the value associated to this key as a Rectangle. If the value isn't a PdfArray of which the + firt four elements are PdfNumbers, null is returned. + + the key of which the associated value needs to be returned + PdfArray associated with this key + + + + Returns the value associated to this key as a Float. + Returns the value associated to this key as a Float. If the value isn't a Pdfnumber, null is returned. + + the key of which the associated value needs to be returned + Float associated with this key + + + Returns the value associated to this key as an Integer. + Returns the value associated to this key as an Integer. If the value isn't a Pdfnumber, null is returned. + + the key of which the associated value needs to be returned + Integer associated with this key + + + Returns the value associated to this key as a Boolean. + Returns the value associated to this key as a Boolean. If the value isn't a PdfBoolean, null is returned. + + the key of which the associated value needs to be returned + Boolean associated with this key + + + Inserts the value into this PdfDictionary and associates it with the specified key. + + Inserts the value into this PdfDictionary and associates it with the specified key. If the key is already + present in this PdfDictionary, this method will override the old value with the specified one. + + key to insert or to override + the value to associate with the specified key + the previous PdfObject associated with this key + + + Removes the specified key from this PdfDictionary. + key to be removed + the removed value associated with the specified key + + + Inserts all the key-value pairs into this PdfDictionary. + PdfDictionary holding the key-value pairs to be copied + + + Removes all key-value pairs from this PdfDictionary. + + + Returns all the keys of this PdfDictionary as a Set. + Set of keys + + + Returns all the values of this map in a Collection. + + if false, collection will contain + + instances + for the indirect objects in dictionary, otherwise it will contain collection of direct objects. + + a Collection holding all the values + + + Returns all the values of this map in a Collection. + + Returns all the values of this map in a Collection. +
    + NOTE: since 7.0.1 it returns collection of direct objects. + If you want to get + + instances for the indirect objects value, + you shall use + + method. +
    + a Collection holding all the values +
    + + Returns a Set holding the key-value pairs as Map#Entry objects. + + Returns a Set holding the key-value pairs as Map#Entry objects. +
    + NOTE: since 7.0.1 it returns collection of direct objects. + If you want to get + + instances for the indirect objects value, + you shall use + + method. +
    + a Set of Map.Entry objects +
    + + Creates clones of the dictionary in the current document. + + Creates clones of the dictionary in the current document. + It's possible to pass a list of keys to exclude when cloning. + + list of objects to exclude when cloning dictionary. + cloned dictionary. + + + Copies dictionary to specified document. + + Copies dictionary to specified document. + It's possible to pass a list of keys to exclude when copying. + + document to copy dictionary to. + list of objects to exclude when copying dictionary. + + + + + copied dictionary. + + + Copies dictionary to specified document. + + Copies dictionary to specified document. + It's possible to pass a list of keys to exclude when copying. + + document to copy dictionary to. + list of objects to exclude when copying dictionary. + + + + + + + + a filter to apply while copying arrays and dictionaries + Use + + for no filtering + + copied dictionary. + + + true is to extract direct object always. + the key to get the value from the map + key if indirect reference is present + + + This method merges different fields from two dictionaries into the current one + a dictionary whose fields should be merged into the current dictionary. + + + + + + + + + Release content of PdfDictionary. + + + Main enter point to work with PDF document. + + + List of indirect objects used in the document. + + + To be adjusted destinations. + + To be adjusted destinations. + Key - originating page on the source document + Value - a hashmap of Parent pdf objects and destinations to be updated + + + + PdfWriter associated with the document. + + PdfWriter associated with the document. + Not null if document opened either in writing or stamping mode. + + + + PdfReader associated with the document. + + PdfReader associated with the document. + Not null if document is opened either in reading or stamping mode. + + + + XMP Metadata for the document. + + + Document catalog. + + + Document trailed. + + + Document info. + + + Document version. + + + flag determines whether to write unused objects to result document + + + Cache of already serialized objects from this document for smart mode. + + + Handler which will be used for decompression of pdf streams. + + + Default page size. + + Default page size. + New page by default will be created with this size. + + + + The original (first) id when the document is read initially. + + + The original modified (second) id when the document is read initially. + + + Open PDF document in reading mode. + PDF reader. + + + Open PDF document in reading mode. + PDF reader. + document properties + + + Open PDF document in writing mode. + + Open PDF document in writing mode. + Document has no pages when initialized. + + PDF writer + + + Open PDF document in writing mode. + + Open PDF document in writing mode. + Document has no pages when initialized. + + PDF writer + document properties + + + Opens PDF document in the stamping mode. + + Opens PDF document in the stamping mode. +
    +
    + PDF reader. + PDF writer. +
    + + Open PDF document in stamping mode. + PDF reader. + PDF writer. + properties of the stamping process + + + Sets the XMP Metadata. + the xmpMetadata to set + serialization options + + + Use this method to set the XMP Metadata. + The xmpMetadata to set. + + + Sets the XMP Metadata. + the xmpMetadata to set + + + Gets XMPMetadata. + the XMPMetadata + + + Gets XMPMetadata or create a new one. + if true, create a new empty XMPMetadata if it did not present. + existed or newly created XMPMetadata byte array. + + + Gets PdfObject by object number. + object number. + + + + or + + , if object not found. + + + + Get number of indirect objects in the document. + number of indirect objects. + + + Gets the page by page number. + page number. + + page by page number. may return + + in case the page tree is broken + + + + + Gets the + + instance by + . + + + + + that present page. + + + page by + . + + + + Get the first page of the document. + first page of the document. + + + Gets the last page of the document. + last page. + + + + Marks + + object as embedded file stream. + + + Marks + + object as embedded file stream. Note that this method is for internal usage. + To add an embedded file to the PDF document please use specialized API for file attachments. + (e.g. + + , + + ) + + to be marked as embedded file stream + + + Creates and adds new page to the end of document. + added page + + + Creates and adds new page with the specified page size. + page size of the new page + added page + + + Creates and inserts new page to the document. + position to addPage page to + inserted page + + + Creates and inserts new page to the document. + position to addPage page to + page size of the new page + inserted page + + + Adds page to the end of document. + page to add. + added page. + + + Inserts page to the document. + position to addPage page to + page to addPage + inserted page + + + Gets number of pages of the document. + number of pages. + + + Gets page number by page. + the page. + page number. + + + + Gets page number by + . + + + + + that present page. + + + page number by + . + + + + Moves page to new place in same document with all it tag structure + page to be moved in document if present + indicates before which page new one will be inserted to + true if this document contained the specified page + + + Moves page to new place in same document with all it tag structure + number of Page that will be moved + indicates before which page new one will be inserted to + + + + Removes the first occurrence of the specified page from this document, + if it is present. + + + Removes the first occurrence of the specified page from this document, + if it is present. Returns true if this document + contained the specified element (or equivalently, if this document + changed as a result of the call). + + page to be removed from this document, if present + true if this document contained the specified page + + + Removes page from the document by page number. + the one-based index of the PdfPage to be removed + + + Gets document information dictionary. + + Gets document information dictionary. + + is lazy initialized. It will be initialized during the first call of this method. + + document information dictionary. + + + Gets original document id + + Gets original document id + + In order to set originalDocumentId + + should be used + + original dccument id + + + Gets modified document id + + Gets modified document id + + In order to set modifiedDocumentId + + should be used + + modified document id + + + Gets default page size. + + Gets default page size. + New pages by default are created with this size. + + default page size + + + Sets default page size. + + Sets default page size. + New pages by default will be created with this size. + + page size to be set as default + + + + + + + + + + + + + + + + + + + + + + Gets + PdfWriter + associated with the document. + + PdfWriter associated with the document. + + + + Gets + PdfReader + associated with the document. + + PdfReader associated with the document. + + + + Returns + + if the document is opened in append mode, and + + otherwise. + + + + + if the document is opened in append mode, and + + otherwise. + + + + Creates next available indirect reference. + created indirect reference. + + + Gets PDF version. + PDF version. + + + Gets PDF catalog. + PDF catalog. + + + Close PDF document. + + + Gets close status of the document. + true, if the document has already been closed, otherwise false. + + + Gets tagged status of the document. + true, if the document has tag structure, otherwise false. + + + Specifies that document shall contain tag structure. + + Specifies that document shall contain tag structure. + See ISO 32000-1, section 14.8 "Tagged PDF" + + + this + + instance + + + + + Gets + + of tagged document. + + + + + in case document is tagged, otherwise it returns null. + + + + + + Gets next parent index of tagged document. + -1 if document is not tagged, or >= 0 if tagged. + + + + + + Gets document + TagStructureContext. + + + Gets document + TagStructureContext. + The document must be tagged, otherwise an exception will be thrown. + + + document + TagStructureContext. + + + + + Copies a range of pages from current document to + . + + + Copies a range of pages from current document to + . + Use this method if you want to copy pages across tagged documents. + This will keep resultant PDF structure consistent. + + If outlines destination names are the same in different documents, all + such outlines will lead to a single location in the resultant document. + In this case iText will log a warning. This can be avoided by renaming + destinations names in the source document. + + start of the range of pages to be copied. + end of the range of pages to be copied. + a document to copy pages to. + a position where to insert copied pages. + list of copied pages + + + + Copies a range of pages from current document to + . + + + Copies a range of pages from current document to + + . This range is inclusive, both + page + and + + are included in list of copied pages. + Use this method if you want to copy pages across tagged documents. + This will keep resultant PDF structure consistent. + + If outlines destination names are the same in different documents, all + such outlines will lead to a single location in the resultant document. + In this case iText will log a warning. This can be avoided by renaming + destinations names in the source document. + + 1-based start of the range of pages to be copied. + + 1-based end (inclusive) of the range of pages to be copied. This page is included in list + of copied pages. + + a document to copy pages to. + a position where to insert copied pages. + + a copier which bears a special copy logic. May be null. + It is recommended to use the same instance of + + for the same output document. + + list of new copied pages + + + + Copies a range of pages from current document to + + appending copied pages to the end. + + + Copies a range of pages from current document to + + appending copied pages to the end. This range + is inclusive, both + page + and + + are included in list of copied pages. + Use this method if you want to copy pages across tagged documents. + This will keep resultant PDF structure consistent. + + If outlines destination names are the same in different documents, all + such outlines will lead to a single location in the resultant document. + In this case iText will log a warning. This can be avoided by renaming + destinations names in the source document. + + 1-based start of the range of pages to be copied. + + 1-based end (inclusive) of the range of pages to be copied. This page is included in list of + copied pages. + + a document to copy pages to. + list of new copied pages + + + + Copies a range of pages from current document to + + appending copied pages to the end. + + + Copies a range of pages from current document to + + appending copied pages to the end. This range + is inclusive, both + page + and + + are included in list of copied pages. + Use this method if you want to copy pages across tagged documents. + This will keep resultant PDF structure consistent. + + If outlines destination names are the same in different documents, all + such outlines will lead to a single location in the resultant document. + In this case iText will log a warning. This can be avoided by renaming + destinations names in the source document. + + 1-based start of the range of pages to be copied. + + 1-based end (inclusive) of the range of pages to be copied. This page is included in list of + copied pages. + + a document to copy pages to. + + a copier which bears a special copy logic. May be null. + It is recommended to use the same instance of + + for the same output document. + + list of new copied pages. + + + + Copies a range of pages from current document to + . + + + Copies a range of pages from current document to + . + Use this method if you want to copy pages across tagged documents. + This will keep resultant PDF structure consistent. + + If outlines destination names are the same in different documents, all + such outlines will lead to a single location in the resultant document. + In this case iText will log a warning. This can be avoided by renaming + destinations names in the source document. + + list of pages to be copied. + a document to copy pages to. + a position where to insert copied pages. + list of new copied pages + + + + Copies a range of pages from current document to + . + + + Copies a range of pages from current document to + . + Use this method if you want to copy pages across tagged documents. + This will keep resultant PDF structure consistent. + + If outlines destination names are the same in different documents, all + such outlines will lead to a single location in the resultant document. + In this case iText will log a warning. This can be avoided by renaming + destinations names in the source document. + + list of pages to be copied. + a document to copy pages to. + a position where to insert copied pages. + + a copier which bears a special copy logic. May be null. + It is recommended to use the same instance of + + for the same output document. + + list of new copied pages + + + + Copies a range of pages from current document to + + appending copied pages to the end. + + + Copies a range of pages from current document to + + appending copied pages to the end. + Use this method if you want to copy pages across tagged documents. + This will keep resultant PDF structure consistent. + + If outlines destination names are the same in different documents, all + such outlines will lead to a single location in the resultant document. + In this case iText will log a warning. This can be avoided by renaming + destinations names in the source document. + + list of pages to be copied. + a document to copy pages to. + list of copied pages + + + + Copies a range of pages from current document to + + appending copied pages to the end. + + + Copies a range of pages from current document to + + appending copied pages to the end. + Use this method if you want to copy pages across tagged documents. + This will keep resultant PDF structure consistent. + + If outlines destination names are the same in different documents, all + such outlines will lead to a single location in the resultant document. + In this case iText will log a warning. This can be avoided by renaming + destinations names in the source document. + + list of pages to be copied. + a document to copy pages to. + + a copier which bears a special copy logic. May be null. + It is recommended to use the same instance of + + for the same output document. + + list of copied pages + + + Flush all copied objects and remove them from copied cache. + + Flush all copied objects and remove them from copied cache. + + Note, if you will copy objects from the same document, duplicated objects will be created. + That's why usually this method is meant to be used when all copying from source document is finished. + For other cases one can also consider other flushing mechanisms, e.g. pages-based flushing. + + source document + + + + Checks, whether + + method will close associated PdfReader. + + + true, + + method is going to close associated PdfReader, otherwise false. + + + + + Sets, whether + + method shall close associated PdfReader. + + + true, + + method shall close associated PdfReader, otherwise false. + + + + + Checks, whether + + method will close associated PdfWriter. + + + true, + + method is going to close associated PdfWriter, otherwise false. + + + + + Sets, whether + + method shall close associated PdfWriter. + + + true, + + method shall close associated PdfWriter, otherwise false. + + + + + Checks, whether + + will flush unused objects, + e.g. unreachable from PDF Catalog. + + + Checks, whether + + will flush unused objects, + e.g. unreachable from PDF Catalog. By default - false. + + + false, if + + shall not flush unused objects, otherwise true. + + + + + Sets, whether + + shall flush unused objects, + e.g. unreachable from PDF Catalog. + + + false, if + + shall not flush unused objects, otherwise true. + + + + This method returns a complete outline tree of the whole document. + + if the flag is + + , the method reads the whole document and creates outline tree. + If the flag is + + , the method gets cached outline tree + (if it was cached via calling getOutlines method before). + + + fully initialize + + object. + + + + This method initializes an outline tree of the document and sets outline mode to true. + + + This methods adds new name in the Dests NameTree. + This methods adds new name in the Dests NameTree. It throws an exception, if the name already exists. + + Name of the destination. + + An object destination refers to. Must be an array or a dictionary with key /D and array. + See ISO 32000-1 12.3.2.3 for more info. + + + + Gets static copy of cross reference table. + a static copy of cross reference table + + + Gets document trailer. + document trailer. + + + + Adds + + that shall specify the colour characteristics of output devices + on which the document might be rendered. + + + + + to add. + + + + + Checks whether PDF document conforms a specific standard. + + Checks whether PDF document conforms a specific standard. + Shall be override. + + An object to conform. + type of object to conform. + + + Checks whether PDF document conforms a specific standard. + + Checks whether PDF document conforms a specific standard. + Shall be override. + + an object to conform. + type of object to conform. + + + + associated with an object to check. + + current content stream + + + Checks whether PDF document conforms a specific standard. + + Checks whether PDF document conforms a specific standard. + Shall be override. + + + a + + object to conform. + + + + + associated with an object to check. + + + + Adds file attachment at document level. + name of the destination. + + + + object. + + + + Adds file associated with PDF document as a whole and identifies the relationship between them. + + Adds file associated with PDF document as a whole and identifies the relationship between them. + + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method is very similar to + . + However, besides adding file description to Names tree, it adds file to array value of the AF key in the document + catalog. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + the file description + file specification dictionary of associated file + + + + Returns files associated with PDF document. + associated files array. + + + + Gets the encrypted payload of this document, + or returns + + if this document isn't an unencrypted wrapper document. + + encrypted payload of this document. + + + Sets an encrypted payload, making this document an unencrypted wrapper document. + + Sets an encrypted payload, making this document an unencrypted wrapper document. + The file spec shall include the AFRelationship key with a value of EncryptedPayload, + and shall include an encrypted payload dictionary. + + + encrypted payload file spec. + + can produce one. + + + + This method retrieves the page labels from a document as an array of String objects. + + + + list of page labels if they were found, or + + otherwise + + + + Indicates if the document has any outlines + + + + , if there are outlines and + + otherwise. + + + + Sets the flag indicating the presence of structure elements that contain user properties attributes. + + the user properties flag + + + + Create a new instance of + + or load already created one. + + + + + that presents + . + + + instance of + + + Note, PdfFont which created with + + won't be cached + until it will be added to + + or + . + + + + Gets default font for the document: Helvetica, WinAnsi. + + Gets default font for the document: Helvetica, WinAnsi. + One instance per document. + + + instance of + + or + + on error. + + + + + Adds a + + instance to this document so that this font is flushed automatically + on document close. + + + Adds a + + instance to this document so that this font is flushed automatically + on document close. As a side effect, the underlying font dictionary is made indirect if it wasn't the case yet + + + a + + instance to add + + the same PdfFont instance. + + + Registers a product for debugging purposes. + product to be registered. + true if the product hadn't been registered before. + + + Returns the object containing the registered products. + fingerprint object + + + + Find + + from loaded fonts with corresponding fontProgram and encoding or CMAP. + + a font name or path to a font program + an encoding or CMAP + the font instance, or null if font wasn't found + + + Obtains numeric document id. + document id + + + + Obtains document id as a + . + + document id + + + Gets a persistent XMP metadata serialization options. + serialize options + + + Sets a persistent XMP metadata serialization options. + serialize options + + + + Initialize + . + + + + Save the link annotation in a temporary storage for further copying. + + Save the link annotation in a temporary storage for further copying. + Save destinations in a temporary storage for further copying. + + + just copied + + link annotation belongs to. + + + + + itself. + + + + Save destinations in a temporary storage for further copying. + + the + + to be updated itself. + + + a destination consumer that will handle the copying when the + destination still resolves, it gets the new destination as input + + + a destination consumer that will handle the copying when the + destination is not available, it gets the original destination + as input + + + + Checks whether PDF document conforms a specific standard. + + Checks whether PDF document conforms a specific standard. + Shall be override. + + + + + Mark an object with + . + + an object to mark. + + + Flush an object. + object to flush. + indicates whether object can be placed into object stream. + + + Initializes document. + + new pdf version of the resultant file if stamper is used and the version needs to be + changed, + or + + otherwise + + + + Adds custom XMP metadata extension. + Adds custom XMP metadata extension. Useful for PDF/UA, ZUGFeRD, etc. + + + + to add custom metadata to. + + + + Updates XMP metadata. + + Updates XMP metadata. + Shall be override. + + + + + Update XMP metadata values from + . + + the XMPMetadata + + + List all newly added or loaded fonts + + List of + . + + + + Flushes all newly added or loaded fonts. + + + Checks page before adding and add. + one-base index of the page. + + + + to add. + + + + Checks page before adding. + + + + to add. + + + + checks whether a method is invoked at the closed document + + + Returns the factory for creating page instances. + + implementation of + + for current document + + + + + Initializes the new instance of document's structure tree root + . + + + Initializes the new instance of document's structure tree root + . + See ISO 32000-1, section 14.7.2 Structure Hierarchy. + + dictionary to create structure tree root + + + Gets list of indirect references. + list of indirect references. + + + Removes all widgets associated with a given page from AcroForm structure. + Removes all widgets associated with a given page from AcroForm structure. Widgets can be either pure or merged. + + to remove from. + + + This method copies all given outlines + outlines to be copied + document where outlines should be copied + + + This method gets all outlines to be copied including parent outlines + current outline + a Set of outlines to be copied + + + This method copies create new outlines in the Document to copy. + - Set of outlines to be copied + - new parent outline + - old parent outline + + + Create a PdfDocumentInfo based on the passed PdfDictionary. + PdfDictionary containing PdfDocumentInfo + + + Create a default, empty PdfDocumentInfo and link it to the passed PdfDocument + document the info will belong to + + + + Sets a producer line for the + + described by this instance. + + is a new producer line to set + this instance + + + Paulo Soares + Kazuya Ujihara + + + Creates the encryption. + + the user password. Can be null or of zero length, which is equal to + omitting the user password + + + the owner password. If it's null or empty, iText will generate + a random string to be used as the owner password + + + the user permissions + The open permissions for the document can be + + , + + , + + , + + , + + , + + , + + and + . + The permissions can be combined by ORing them + + + the type of encryption. It can be one of + + , + + , + + or + . + Optionally + + can be + ORed to output the metadata in cleartext. + + can be ORed as well. + Please be aware that the passed encryption types may override permissions: + + implicitly sets + + and + + as false; + + implicitly sets + + as false; + + document id which will be used for encryption + + the + + of the target document for encryption + + + + Creates the certificate encryption. + + Creates the certificate encryption. + + An array of one or more public certificates must be provided together with + an array of the same size for the permissions for each certificate. + + the public certificates to be used for the encryption + + the user permissions for each of the certificates + The open permissions for the document can be + + , + + , + + , + + , + + , + + , + + and + . + The permissions can be combined by ORing them + + + the type of encryption. It can be one of + + , + + , + + or + . + Optionally + + can be ORed + to output the metadata in cleartext. + + can be ORed as well. + Please be aware that the passed encryption types may override permissions: + + implicitly sets + + and + + as false; + + implicitly sets + + as false; + + + the + + of the target document for encryption + + + + Creates a PdfLiteral that contains an array of two id entries. + + Creates a PdfLiteral that contains an array of two id entries. These entries are both hexadecimal + strings containing 16 hex characters. The first entry is the original id, the second entry + should be different from the first one if the document has changed. + + the first id + whether the document has been changed or not + PdfObject containing the two entries. + + + Creates a PdfLiteral that contains an array of two id entries. + + Creates a PdfLiteral that contains an array of two id entries. These entries are both hexadecimal + strings containing 16 hex characters. The first entry is the original id, the second entry + should be different from the first one if the document has changed. + + the first id + the second id + PdfObject containing the two entries. + + + Gets the encryption permissions. + + Gets the encryption permissions. It can be used directly in + . + See ISO 32000-1, Table 22 for more details. + + the encryption permissions, an unsigned 32-bit quantity. + + + Gets encryption algorithm and access permissions. + the crypto mode value + + + + document id which was used for encryption. Could be null, if encryption doesn't rely on document id. + + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 algorithm. + + owner password of the encrypted document. + user password, or null if not a standard encryption handler was used. + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + This class takes any PDF and returns exactly the same but + encrypted. + + + This class takes any PDF and returns exactly the same but + encrypted. All the content, links, outlines, etc, are kept. + It is also possible to change the info dictionary. + + + + Entry point to encrypt a PDF document. + the read PDF + the output destination + + encryption properties. See + . + + + an optional + String + map to add or change + the info dictionary. Entries with + + values delete the key in the original info dictionary + + + + Entry point to encrypt a PDF document. + the read PDF + the output destination + + encryption properties. See + . + + + + Give you a verbose analysis of the permissions. + the permissions value of a PDF file + a String that explains the meaning of the permissions value + + + Tells you if printing is allowed. + the permissions value of a PDF file + true if printing is allowed + + + Tells you if modifying content is allowed. + the permissions value of a PDF file + true if modifying content is allowed + + + Tells you if copying is allowed. + the permissions value of a PDF file + true if copying is allowed + + + Tells you if modifying annotations is allowed. + the permissions value of a PDF file + true if modifying annotations is allowed + + + Tells you if filling in fields is allowed. + the permissions value of a PDF file + true if filling in fields is allowed + + + Tells you if repurposing for screenreaders is allowed. + the permissions value of a PDF file + true if repurposing for screenreaders is allowed + + + Tells you if document assembly is allowed. + the permissions value of a PDF file + true if document assembly is allowed + + + Tells you if degraded printing is allowed. + the permissions value of a PDF file + true if degraded printing is allowed + + + + Sets the + + that will be used during + + creation. + + meta info to set + + this + + instance + + + + + Sets the + + + the properties to set + + this + + instance + + + + Entry point to encrypt a PDF document. + the read PDF + the output destination + + an optional + String + map to add or change + the info dictionary. Entries with + + values delete the key in the original info dictionary + + + + Entry point to encrypt a PDF document. + the read PDF + the output destination + + + Object number. + + + Object generation. + + + PdfObject that current PdfIndirectReference instance refers to. + + + Indirect reference number of object stream containing refersTo object. + + Indirect reference number of object stream containing refersTo object. + If refersTo is not placed into object stream - objectStreamNumber = 0. + + + + + Offset in a document of the + refersTo + object. + + + Offset in a document of the + refersTo + object. + If the object placed into object stream then it is an object index inside object stream. + + + + PdfDocument object belongs to. + PdfDocument object belongs to. For direct objects it is null. + + + Gets direct object and try to resolve indirects chain. + + Gets direct object and try to resolve indirects chain. + + Note: If chain of references has length of more than 32, + this method return 31st reference in chain. + + + + + to resolve indirects chain + + + the + + result of indirect reference resolving + + + + Gets refersTo object offset in a document. + object offset in a document. If refersTo object is in object stream then -1. + + + Gets refersTo object index in the object stream. + object index in a document. If refersTo object is not in object stream then -1. + + + Marks indirect reference as free in the document. + + Marks indirect reference as free in the document. This doesn't "remove" indirect objects from the document, + it only ensures that corresponding xref entry is free and indirect object referred by this reference is no longer + linked to it. Actual object still might be written to the resultant document (and would get a new corresponding + indirect reference in this case) if it is still contained in some other object. + + This method will not give any result if the corresponding indirect object or another object + that contains a reference to this object is already flushed. + + Note: in some cases, removing a link of indirect object to it's indirect reference while + leaving the actual object in the document structure might lead to errors, because some objects are expected + to always have such explicit link (e.g. Catalog object, page objects, etc). + + + + + Checks if this + + instance corresponds to free indirect reference. + + + Checks if this + + instance corresponds to free indirect reference. + Indirect reference might be in a free state either because it was read as such from the opened existing + PDF document or because it was set free via + + method. + + + + + if this + + is free, + + otherwise. + + + + Gets a PdfWriter associated with the document object belongs to. + PdfWriter. + + + Gets a PdfReader associated with the document object belongs to. + PdfReader. + + + Sets special states of current object. + special flag of current object + + + PdfName for the abbreviation of FlateDecode. + + PdfName for the abbreviation of FlateDecode. For the Flatness Tolerance PdfName use + + (Uppercase 'L') + + + + PdfName for Flatness Tolerance. + + PdfName for Flatness Tolerance. For the PdfName with the FlateDecode abbreviation use + + (Lowercase 'L') + + + + map strings to all known static names + + + Create a PdfName from the passed string + string value, shall not be null. + + + Create a PdfName from the passed bytes + byte content, shall not be null. + + + Compare this PdfName to o. + PdfName to compare this object to/ + Comparison between both values or, if one of the values is null, Comparison between contents. If one of the values and one of the contents are equal to null, generate values and compare those. + + + + Creates the NameTree of current Document + Document catalog + the type of tree. Dests Tree, AP Tree etc. + + + Retrieves the names stored in the name tree + Map containing the PdfObjects stored in the tree + + + Add an entry to the name tree + key of the entry + object to add + + + True if the object has been modified, false otherwise. + + + Sets the modified flag to true. + Sets the modified flag to true. It means that the object has been modified. + + + Build a PdfDictionary containing the name tree + PdfDictionary containing the name tree + + + Representation of the null object in the PDF specification. + + + Creates a PdfNull instance. + + + + A + PdfNumber + -class is the PDF-equivalent of a + Double + -object. + + + A + PdfNumber + -class is the PDF-equivalent of a + Double + -object. + + PDF provides two types of numeric objects: integer and real. Integer objects represent mathematical integers. Real + objects represent mathematical real numbers. The range and precision of numbers may be limited by the internal + representations used in the computer on which the PDF processor is running. + An integer shall be written as one or more decimal digits optionally preceded by a sign. The value shall be + interpreted as a signed decimal integer and shall be converted to an integer object. + A real value shall be written as one or more decimal digits with an optional sign and a leading, trailing, or + embedded period (decimal point). + + + + + Creates an instance of + + and sets value. + + double value to set + + + + Creates an instance of + + and sets value. + + int value to set + + + + Creates an instance of + + with provided content. + + byte array content to set + + + + Returns value of current instance of + . + + + value of + + instance + + + + + Returns double value of current instance of + . + + + double value of + + instance + + + + Returns value and converts it to float. + value converted to float + + + Returns value and converts it to long. + value converted to long + + + Returns value and converts it to an int. + + Returns value and converts it to an int. If value surpasses + + , + + would be return. + + value converted to int + + + Sets value and convert it to double. + to set + + + Sets value. + to set + + + Increments current value. + + + Decrements current value. + + + Checks if string representation of the value contains decimal point. + true if contains so the number must be real not integer + + + Creates the NumberTree of current Document + Document catalog + the type of tree. ParentTree or PageLabels. + + + Indicates if the object has been flushed. + + + Indicates that the indirect reference of the object could be reused or have to be marked as free. + + + + Indicates that definition of the indirect reference of the object still not found (e.g. keys in XRefStm). + + + + Indicates that object changed (is used in append mode). + + + Indicates that the indirect reference of the object represents ObjectStream from original document. + + + Indicates that the indirect reference of the object represents ObjectStream from original document. + When PdfReader read ObjectStream reference marked as OriginalObjectStream + to avoid further reusing. + + + + For internal usage only. + + For internal usage only. Marks objects that shall be written to the output document. + Option is needed to build the correct PDF objects tree when closing the document. + As a result it avoids writing unused (removed) objects. + + + + Indicates that the object shall be indirect when it is written to the document. + + Indicates that the object shall be indirect when it is written to the document. + It is used to postpone the creation of indirect reference for the objects that shall be indirect, + so it is possible to create such objects without PdfDocument instance. + + + + Indicates that the object is highly sensitive and we do not want to release it even if release() is called. + + + Indicates that the object is highly sensitive and we do not want to release it even if release() is called. + This flag can be set in stamping mode in object wrapper constructors and is automatically set when setModified + flag is set (we do not want to release changed objects). + The flag is set automatically for some wrappers that need document even in reader mode (FormFields etc). + + + + + Indicates that we do not want this object to be ever written into the resultant document + (because of multiple objects read from the same reference inconsistency). + + + + Indicates that this object is not encrypted in the encrypted document. + + Indicates that this object is not encrypted in the encrypted document. + E.g. digital signature dictionary /Contents entry shall not be encrypted. + + + + If object is flushed the indirect reference is kept here. + + + Indicate same special states of PdfIndirectObject or PdfObject like @see Free, @see Reading, @see Modified. + + + + Gets object type. + object type. + + + Flushes the object to the document. + + + Flushes the object to the document. + indicates whether object can be placed into object stream. + + + Gets the indirect reference associated with the object. + + Gets the indirect reference associated with the object. + The indirect reference is used when flushing object to the document. + + indirect reference. + + + Checks if object is indirect. + + Checks if object is indirect. +
    + Note: + Return value + + doesn't necessarily mean that indirect reference of this object + is not null at the moment. Object could be marked as indirect and + be transformed to indirect on flushing. +
    + E.g. all PdfStreams are transformed to indirect objects when they are written, but they don't always + have indirect references at any given moment. +
    + + returns + + if object is indirect or is to be indirect in the resultant document. + +
    + + Marks object to be saved as indirect. + a document the indirect reference will belong to. + indirect reference which will be associated with this document + object itself. + + + Marks object to be saved as indirect. + a document the indirect reference will belong to. + object itself. + + + Indicates is the object has been flushed or not. + true if object has been flushed, otherwise false. + + + Indicates is the object has been set as modified or not. + Indicates is the object has been set as modified or not. Useful for incremental updates (e.g. appendMode). + + true is object has been set as modified, otherwise false. + + + Creates clone of the object which belongs to the same document as original object. + + Creates clone of the object which belongs to the same document as original object. + New object shall not be used in other documents. + + cloned object. + + + Creates clone of the object which belongs to the same document as original object. + + Creates clone of the object which belongs to the same document as original object. + New object shall not be used in other documents. + + Filter what will be copied or not + cloned object. + + + Copies object to a specified document. + + Copies object to a specified document. +

    + NOTE: Works only for objects that are read from document opened in reading mode, + otherwise an exception is thrown. +
    + document to copy object to. + copied object. +
    + + Copies object to a specified document. + + Copies object to a specified document. +

    + NOTE: Works only for objects that are read from document opened in reading mode, + otherwise an exception is thrown. +
    + document to copy object to. + + indicates if to allow copy objects which already have been copied. + If object is associated with any indirect reference and allowDuplicating is + false then already existing reference will be returned instead of copying object. + If allowDuplicating is true then object will be copied and new indirect + reference will be assigned. + + copied object. +
    + + Copies object to a specified document. + + Copies object to a specified document. +

    + NOTE: Works only for objects that are read from document opened in reading mode, + otherwise an exception is thrown. +
    + document to copy object to. + + + + a filter to apply while copying arrays and dictionaries + Use + + for no filtering + + copied object. +
    + + Copies object to a specified document. + + Copies object to a specified document. +

    + NOTE: Works only for objects that are read from document opened in reading mode, + otherwise an exception is thrown. +
    + document to copy object to. + + indicates if to allow copy objects which already have been copied. + If object is associated with any indirect reference and allowDuplicating is false + then already existing reference will be returned instead of copying object. + If allowDuplicating is true then object will be copied and new indirect reference + will be assigned. + + + + + a filter to apply while copying arrays and dictionaries + Use + + for no filtering + + copied object. +
    + + + Sets the 'modified' flag to the indirect object, the flag denotes that the object was modified since + the document opening. + + + Sets the 'modified' flag to the indirect object, the flag denotes that the object was modified since + the document opening. + It is recommended to set this flag after changing any PDF object. + + For example flag is used in the append mode (see + + ). + In append mode the whole document is preserved as is, and only changes to the document are + appended to the end of the document file. Because of this, only modified objects need to be flushed and are + allowed to be flushed (i.e. to be written). + + + this + + instance. + + + + + Checks if it's forbidden to release this + + instance. + + + Checks if it's forbidden to release this + + instance. + Some objects are vital for the living period of + + or may be + prevented from releasing by high-level entities dealing with the objects. + Also it's not possible to release the objects that have been modified. + + true if releasing this object is forbidden, otherwise false + + + + Checks if this PdfObject is of the type + PdfNull. + + true or false + + + + Checks if this PdfObject is of the type + PdfBoolean. + + true or false + + + + Checks if this PdfObject is of the type + PdfNumber. + + true or false + + + + Checks if this PdfObject is of the type + PdfString. + + true or false + + + + Checks if this PdfObject is of the type + PdfName. + + true or false + + + + Checks if this PdfObject is of the type + PdfArray. + + true or false + + + + Checks if this PdfObject is of the type + PdfDictionary. + + true or false + + + + Checks if this PdfObject is of the type + PdfStream. + + true or false + + + + Checks if this PdfObject is of the type + PdfIndirectReference. + + + true if this is an indirect reference, + otherwise false + + + + + Checks if this PdfObject is of the type + PdfLiteral. + + + true if this is a literal, + otherwise false + + + + Creates new instance of object. + new instance of object. + + + Checks state of the flag of current object. + special flag to check + true if the state was set. + + + Sets special states of current object. + special flag of current object + + this + + + + + Clear state of the flag of current object. + special flag state to clear + + this + + + + + Copies object content from object 'from'. + object to copy content from. + document to copy object to. + + + Copies object content from object 'from'. + object to copy content from. + document to copy object to. + + + + a filter that will apply on dictionaries and array + Use + + for no filtering + + + + + Processes two cases of object copying: + + copying to the other document + + cloning inside of the current document + + + + + Processes two cases of object copying: + + copying to the other document + + cloning inside of the current document + + + + This two cases are distinguished by the state of + document + parameter: + the second case is processed if + document + is + . + + if not null: document to copy object to; otherwise indicates that object is to be cloned. + + + indicates if to allow copy objects which already have been copied. + If object is associated with any indirect reference and allowDuplicating is false then + already existing reference will be returned instead of copying object. + If allowDuplicating is true then object will be copied and new indirect + reference will be assigned. + + copied object. + + + + Processes two cases of object copying: + + copying to the other document + + cloning inside of the current document + + + + + Processes two cases of object copying: + + copying to the other document + + cloning inside of the current document + + + + This two cases are distinguished by the state of + document + parameter: + the second case is processed if + document + is + . + + if not null: document to copy object to; otherwise indicates that object is to be cloned. + + + indicates if to allow copy objects which already have been copied. + If object is associated with any indirect reference and allowDuplicating is false then + already existing reference will be returned instead of copying object. + If allowDuplicating is true then object will be copied and new indirect reference will + be assigned. + + filters what will be copies or not + copied object. + + + Max number of objects in object stream. + + + Current object stream size (number of objects inside). + + + Stream containing object indices, a heading part of object stream. + + + This constructor is for reusing ByteArrayOutputStreams of indexStream and outputStream. + + This constructor is for reusing ByteArrayOutputStreams of indexStream and outputStream. + NOTE Only for internal use in PdfWriter! + + previous PdfObjectStream. + + + Adds object to the object stream. + object to add. + + + Gets object stream size (number of objects inside). + object stream size. + + + Marks object behind wrapper to be saved as indirect. + a document the indirect reference belongs to. + a reference which will be assigned for the object behind wrapper. + object itself. + + + Marks object behind wrapper to be saved as indirect. + a document the indirect reference will belong to. + object itself. + + + + Defines if the object behind this wrapper must be an indirect object in the + resultant document. + + + Defines if the object behind this wrapper must be an indirect object in the + resultant document. +

    + If this method returns true it doesn't necessarily mean that object + must be in the indirect state at any moment, but rather defines that + when the object will be written to the document it will be transformed into + indirect object if it's not indirect yet. +

    + Return value of this method shouldn't depend on any logic, it should return + always true or false. +
    + + true if in the resultant document the object behind the wrapper + must be indirect, otherwise false. + +
    + + + Some wrappers use object's indirect reference to obtain the + PdfDocument + to which the object belongs to. + + + Some wrappers use object's indirect reference to obtain the + PdfDocument + to which the object belongs to. For this matter, for these wrappers it is implicitly defined + that they work with indirect objects only. Commonly these wrappers have two constructors: one with + PdfDocument + as parameter to create a new object, and the other one which + wraps around the given + PdfObject + . This method should be used in the second + type of constructors to ensure that wrapper will able to obtain the + PdfDocument + instance. + + + the + PdfObject + to be checked if it is indirect. + + + + + Document outline object + See ISO-320001, 12.3.3 Document Outline. + + + + A flag for displaying the outline item’s text with italic font. + + + A flag for displaying the outline item’s text with bold font. + + + Create instance of document outline. + the text that shall be displayed on the screen for this item. + Outline dictionary + + + + the outline belongs to. + + + + Create instance of document outline. + the text that shall be displayed on the screen for this item. + Outline dictionary + + parent outline. + + and + + instead. + + + + This constructor creates root outline in the document. + + + + + + + Gets title of the outline. + String value. + + + + Sets title of the outline with + + encoding, + Title + key. + + String value. + + + + Sets color for the outline entry’s text, + C + key. + + + + + + + + + Gets color for the outline entry's text, + C + key. + + + color + . + + + + + Sets text style for the outline entry’s text, + F + key. + + + Could be either + + or + + . Default value is + 0. + + + + + Gets text style for the outline entry's text, + F + key. + + style value. + + + Gets content dictionary. + + + . + + + + Gets list of children outlines. + + List of + . + + + + Gets parent outline. + + + . + + + + + Gets + . + + + + . + + + + + Adds + + for the outline, + Dest + key. + + + instance of + . + + + + + Adds + + for the outline, + A + key. + + + instance of + . + + + + Defines if the outline needs to be closed or not. + + Defines if the outline needs to be closed or not. + By default, outlines are open. + + if false, the outline will be closed by default + + + Defines if the outline is open or closed. + true if open,false otherwise. + + + + Adds a new + PdfOutline + with specified parameters as a child to existing + PdfOutline + and put it to specified position in the existing + PdfOutline + children list. + + an outline title + + a position in the current outline child List where a new outline should be added. + If the position equals -1, then the outline will be put in the end of children list. + + just created outline + + + + Adds an + PdfOutline + as a child to existing + PdfOutline + and put it in the end of the existing + PdfOutline + children list. + + an outline title + just created outline + + + + Adds an + PdfOutline + as a child to existing + PdfOutline + and put it to the end of the existing + PdfOutline + children list. + + an outline to add. + just created outline + + + Remove this outline from the document. + Remove this outline from the document. Outlines that are children of this outline are removed recursively + + + + Clear list of children. + + + + Sets + . + + + instance of + . + + + + + Gets the Outline root in + + 's catalog entry + + + The + + of the document's Outline root, or + + if it can't be found. + + + + + Determines if the current + + object is the Outline Root. + + + + + if this is not the outline root or the root can not be found, + + otherwise. + + + + + Specify the colour characteristics of output devices on which the document might be rendered + See ISO 32000-1 14.11.5: Output Intents. + + + + Creates output intent dictionary. + + Creates output intent dictionary. Null values are allowed to + suppress any key. + By default output intent subtype is GTS_PDFA1, use setter to change it. + + + (required) identifying the intended output device or production condition in + human or machine readable form + + + (optional) identifying the intended output device or production + condition in human-readable form + + + identifying the registry in which the condition designated by + + is defined + + + (required if + + does not specify a standard + production condition; optional otherwise) containing additional information or + comments about the intended target device or production condition + + ICC profile stream. User is responsible for closing the stream + + + Document associated with PdfOutputStream. + + + Contains the business logic for cryptography. + + + Create a pdfOutputSteam writing to the passed OutputStream. + Outputstream to write to. + + + Write a PdfObject to the outputstream. + PdfObject to write + this PdfOutPutStream + + + Writes corresponding amount of bytes from a given long + a source of bytes, must be >= 0 + expected amount of bytes + + + Writes corresponding amount of bytes from a given int + a source of bytes, must be >= 0 + expected amount of bytes + + + Automatically rotate new content if the page has a rotation ( is disabled by default ) + + + + See + . + + + + Gets page size, defined by media box object. + Gets page size, defined by media box object. This method doesn't take page rotation into account. + + + + + that specify page size. + + + + Gets page size, considering page rotation. + + + + that specify size of rotated page. + + + + Gets the number of degrees by which the page shall be rotated clockwise when displayed or printed. + + + Gets the number of degrees by which the page shall be rotated clockwise when displayed or printed. + Shall be a multiple of 90. + + + + int + number of degrees. Default value: 0 + + + + Sets the page rotation. + + the + int + number of degrees by which the page shall be rotated clockwise + when displayed or printed. Shall be a multiple of 90. + + + this + + instance. + + + + + Gets the content stream at specified 0-based index in the Contents object + . + + + Gets the content stream at specified 0-based index in the Contents object + . + The situation when Contents object is a + + is treated like a one element array. + + + the + int + index of returned + . + + + + + object at specified index; + will return null in case page dictionary doesn't adhere to the specification, meaning that the document is an invalid PDF. + + + + + Gets the size of Contents object + . + + + Gets the size of Contents object + . + The situation when Contents object is a + + is treated like a one element array. + + + the + int + size of Contents object, or 1 if Contents object is a + . + + + + + Returns the Contents object if it is + + , or first stream in the array if it is + . + + + first + + in Contents object, or + + if Contents is empty. + + + + + Returns the Contents object if it is + + , or last stream in the array if it is + . + + + first + + in Contents object, or + + if Contents is empty. + + + + + Creates new + + object and puts it at the beginning of Contents array + (if Contents object is + + it will be replaced with one-element array). + + + Created + + object. + + + + + Creates new + + object and puts it at the end of Contents array + (if Contents object is + + it will be replaced with one-element array). + + + Created + + object. + + + + + Gets the + + wrapper object for this page resources. + + + Gets the + + wrapper object for this page resources. + If page doesn't have resource object, then it will be inherited from page's parents. + If neither parents nor page has the resource object, then the new one is created and added to page dictionary. +

    + NOTE: If you'll try to modify the inherited resources, then the new resources object will be created, + so you won't change the parent's resources. + This new object under the wrapper will be added to page dictionary on + + , + or you can add it manually with this line, if needed:
    + getPdfObject().put(PdfName.Resources, getResources().getPdfObject()); +
    + + + + wrapper of the page. + +
    + + + Sets + + object. + + + + + to set. + + + this + + instance. + + + + Sets the XMP Metadata. + + the + byte[] + of XMP Metadata to set. + + + this + + instance. + + + + Serializes XMP Metadata to byte array and sets it. + + the + + object to set. + + + the + + used while serialization. + + + this + + instance. + + + + Serializes XMP Metadata to byte array and sets it. + Serializes XMP Metadata to byte array and sets it. Uses padding equals to 2000. + + the + + object to set. + + + this + + instance. + + + + Gets the XMP Metadata object. + + + + object, that represent XMP Metadata. + + + + Copies page to the specified document. + + Copies page to the specified document. +

    + NOTE: Works only for pages from the document opened in reading mode, otherwise an exception is thrown. +
    + a document to copy page to. + + copied + . + +
    + + Copies page to the specified document. + + Copies page to the specified document. +

    + NOTE: Works only for pages from the document opened in reading mode, otherwise an exception is thrown. +
    + a document to copy page to. + + a copier which bears a special copy logic. May be null. + It is recommended to use the same instance of + + for the same output document. + + + copied + . + +
    + + Copies page as FormXObject to the specified document. + a document to copy to. + + copied + + object. + + + + + Gets the + + that owns that page, or + + if such document isn't exist. + + + + + that owns that page, or + + if such document isn't exist. + + + + Flushes page dictionary, its content streams, annotations and thumb image. + + Flushes page dictionary, its content streams, annotations and thumb image. + + If the page belongs to the document which is tagged, page flushing also triggers flushing of the tags, + which are considered to belong to the page. The logic that defines if the given tag (structure element) belongs + to the page is the following: if all the marked content references (dictionary or number references), that are the + descendants of the given structure element, belong to the current page - the tag is considered + to belong to the page. If tag has descendants from several pages - it is flushed, if all other pages except the + current one are flushed. + + + + Flushes page dictionary, its content streams, annotations and thumb image. + + Flushes page dictionary, its content streams, annotations and thumb image. If flushResourcesContentStreams is true, + all content streams that are rendered on this page (like FormXObjects, annotation appearance streams, patterns) + and also all images associated with this page will also be flushed. + + For notes about tag structure flushing see + PdfPage#flush() method. + + If PdfADocument is used, flushing will be applied only if flushResourcesContentStreams is true. + + Be careful with handling document in which some of the pages are flushed. Keep in mind that flushed objects are + finalized and are completely written to the output stream. This frees their memory but makes + it impossible to modify or read data from them. Whenever there is an attempt to modify or to fetch + flushed object inner contents an exception will be thrown. Flushing is only possible for objects in the writing + and stamping modes, also its possible to flush modified objects in append mode. + + + if true all content streams that are rendered on this page (like form xObjects, + annotation appearance streams, patterns) and also all images associated with this page + will be flushed. + + + + + Gets + + object specified by page's Media Box, that defines the boundaries of the physical medium + on which the page shall be displayed or printed + + + + + object specified by page Media Box, expressed in default user space units. + + + + + Sets the Media Box object, that defines the boundaries of the physical medium + on which the page shall be displayed or printed. + + + the + + object to set, expressed in default user space units. + + + this + + instance. + + + + + Gets the + + specified by page's CropBox, that defines the visible region of default user space. + + + Gets the + + specified by page's CropBox, that defines the visible region of default user space. + When the page is displayed or printed, its contents shall be clipped (cropped) to this rectangle + and then shall be imposed on the output medium in some implementation-defined manner. + + + the + + object specified by pages's CropBox, expressed in default user space units. + MediaBox by default. + + + + Sets the CropBox object, that defines the visible region of default user space. + + Sets the CropBox object, that defines the visible region of default user space. + When the page is displayed or printed, its contents shall be clipped (cropped) to this rectangle + and then shall be imposed on the output medium in some implementation-defined manner. + + + the + + object to set, expressed in default user space units. + + + this + + instance. + + + + + Sets the BleedBox object, that defines the region to which the contents of the page shall be clipped + when output in a production environment. + + + the + + object to set, expressed in default user space units. + + + this + + instance. + + + + + Gets the + + object specified by page's BleedBox, that define the region to which the + contents of the page shall be clipped when output in a production environment. + + + the + + object specified by page's BleedBox, expressed in default user space units. + CropBox by default. + + + + + Sets the ArtBox object, that define the extent of the page’s meaningful content + (including potential white space) as intended by the page’s creator. + + + the + + object to set, expressed in default user space units. + + + this + + instance. + + + + + Gets the + + object specified by page's ArtBox, that define the extent of the page’s + meaningful content (including potential white space) as intended by the page’s creator. + + + the + + object specified by page's ArtBox, expressed in default user space units. + CropBox by default. + + + + Sets the TrimBox object, that define the intended dimensions of the finished page after trimming. + + + the + + object to set, expressed in default user space units. + + + this + + instance. + + + + + Gets the + + object specified by page's TrimBox object, + that define the intended dimensions of the finished page after trimming. + + + the + + object specified by page's TrimBox, expressed in default user space units. + CropBox by default. + + + + Get decoded bytes for the whole page content. + byte array. + + + Gets decoded bytes of a certain stream of a page content. + index of stream inside Content. + byte array. + + + Calculates and returns the next available for this page's content stream MCID reference. + calculated MCID reference. + + + Gets the key of the page’s entry in the structural parent tree. + + the key of the page’s entry in the structural parent tree. + If page has no entry in the structural parent tree, returned value is -1. + + + + Helper method to add an additional action to this page. + + Helper method to add an additional action to this page. + May be used in chain. + + + a + + specifying the name of an additional action + + + the + + to add as an additional action + + + this + + instance. + + + + + Gets array of annotation dictionaries that shall contain indirect references + to all annotations associated with the page. + + + the + + < + + > containing all page's annotations. + + + + Checks if page contains the specified annotation. + + the + + to check. + + + + + if page contains specified annotation and + + otherwise. + + + + Adds specified annotation to the end of annotations array and tagged it. + + Adds specified annotation to the end of annotations array and tagged it. + May be used in chain. + + + the + + to add. + + + this + + instance. + + + + + Adds specified + + to specified index in annotations array with or without autotagging. + + + Adds specified + + to specified index in annotations array with or without autotagging. + May be used in chain. + + + the index at which specified annotation will be added. If + -1 + then annotation will be added + to the end of array. + + + the + + to add. + + + if + + the added annotation will be autotagged. + (see + + ) + + + this + + instance. + + + + Removes an annotation from the page. + + Removes an annotation from the page. +

    + NOTE: If document is tagged, PdfDocument's PdfTagStructure instance will point at annotation tag parent after method call. +
    + an annotation to be removed. + + this + + instance. + +
    + + + Gets the number of + + associated with this page. + + + the + int + number of + + associated with this page. + + + + This method gets outlines of a current page + + if the flag is + + , the method reads the whole document and creates outline tree. + If the flag is + + , the method gets cached outline tree + (if it was cached via calling getOutlines method before). + + return all outlines of a current page + + + + true - if in case the page has a rotation, then new content will be automatically rotated in the + opposite direction. On the rotated page this would look like if new content ignores page rotation. + + + + + If true - defines that in case the page has a rotation, then new content will be automatically rotated in the + opposite direction. + + + If true - defines that in case the page has a rotation, then new content will be automatically rotated in the + opposite direction. On the rotated page this would look like if new content ignores page rotation. + Default value - + . + + - true to ignore rotation of the new content on the rotated page. + + + this + + instance. + + + + This method adds or replaces a page label. + + The numbering style that shall be used for the numeric portion of each page label. + May be NULL + + The label prefix for page labels in this range. May be NULL + + this + + instance. + + + + This method adds or replaces a page label. + + The numbering style that shall be used for the numeric portion of each page label. + May be NULL + + The label prefix for page labels in this range. May be NULL + + The value of the numeric portion for the first page label in the range. Must be greater or + equal 1. + + + this + + instance. + + + + Sets a name specifying the tab order that shall be used for annotations on the page. + + Sets a name specifying the tab order that shall be used for annotations on the page. + The possible values are + + (row order), + + (column order), and + + (structure order). + Beginning with PDF 2.0, the possible values also include + + (annotations array order) and + + (widget order). + See ISO 32000 12.5, "Annotations" for details. + + + a + + specifying the annotations tab order. See method description for the allowed values. + + + this + + instance. + + + + Gets a name specifying the tab order that shall be used for annotations on the page. + + Gets a name specifying the tab order that shall be used for annotations on the page. + The possible values are + + (row order), + + (column order), and + + (structure order). + Beginning with PDF 2.0, the possible values also include + + (annotations array order) and + + (widget order). + See ISO 32000 12.5, "Annotations" for details. + + + a + + specifying the annotations tab order or null if tab order is not defined. + + + + Sets a stream object that shall define the page’s thumbnail image. + + Sets a stream object that shall define the page’s thumbnail image. Thumbnail images represent the contents of + its pages in miniature form + + the thumbnail image + + this + + object + + + + Sets a stream object that shall define the page’s thumbnail image. + + Sets a stream object that shall define the page’s thumbnail image. Thumbnail images represent the contents of + its pages in miniature form + + the thumbnail image, or null if it is not present + + + + Adds + + that shall specify the colour characteristics of output devices + on which the page might be rendered. + + + + + to add. + + + this + + object + + + + + + Helper method that associate specified value with specified key in the underlined + . + + + Helper method that associate specified value with specified key in the underlined + . + May be used in chain. + + + the + + key with which the specified value is to be associated. + + + the + + value to be associated with the specified key. + + + this + + object. + + + + + This flag is meaningful for the case, when page rotation is applied and ignorePageRotationForContent + is set to true. + + + This flag is meaningful for the case, when page rotation is applied and ignorePageRotationForContent + is set to true. NOTE: It is needed for the internal usage. +

    + This flag defines if inverse matrix (which rotates content into the opposite direction from page rotation + direction in order to give the impression of the not rotated text) is already applied to the page content stream. + See + +
    + true, if inverse matrix is already applied, false otherwise. +
    + + NOTE: For internal usage! Use this method only if you know what you are doing. + + NOTE: For internal usage! Use this method only if you know what you are doing. +

    + This method is called when inverse matrix (which rotates content into the opposite direction from page rotation + direction in order to give the impression of the not rotated text) is applied to the page content stream. + See + +
    +
    + + Adds file associated with PDF page and identifies the relationship between them. + + Adds file associated with PDF page and identifies the relationship between them. + + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method adds file to array value of the AF key in the page dictionary. + If description is provided, it also will add file description to catalog Names tree. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + the file description + file specification dictionary of associated file + + + + + Adds file associated with PDF page and identifies the relationship between them. + + + + Adds file associated with PDF page and identifies the relationship between them. + + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method adds file to array value of the AF key in the page dictionary. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + file specification dictionary of associated file + + + Returns files associated with PDF page. + defines whether AF arrays will be created if it doesn't exist + associated files array + + + + Algorithm for construction + + tree + + + + Creates a PdfPages tree. + + a + + which will be used to create the tree + + + + + Returns the + + at the specified position in this list. + + one-based index of the element to return + + the + + at the specified position in this list + + + + + Returns the + + by page's PdfDictionary. + + page's PdfDictionary + + the + PdfPage + object, that wraps + . + + + + Gets total number of @see PdfPages. + total number of pages + + + + Returns the index of the first occurrence of the specified page + in this tree, or 0 if this tree does not contain the page. + + + + + Returns the index of the first occurrence of the page in this tree + specified by it's PdfDictionary, or 0 if this tree does not contain the page. + + + + + Appends the specified + + to the end of this tree. + + + a + + to be added + + + + + Inserts + + into specific one-based position. + + one-base index of the page + + + + to insert. + + + + Removes the page at the specified position in this tree. + + Removes the page at the specified position in this tree. + Shifts any subsequent elements to the left (subtracts one from their + indices). + + the one-based index of the PdfPage to be removed + the page that was removed from the list + + + Generate PdfPages tree. + + root + + + + + Load page from pages tree node structure + page number to load + + set with already processed parents object reference numbers + if this method was called recursively to avoid infinite recursion. + + + + Initialize PdfPrimitiveObject from the passed bytes. + byte content, shall not be null. + + + Reads a PDF document. + + + + The default + + to be used. + + + + Constructs a new PdfReader. + source of bytes for the reader + properties of the created reader + + + Reads and parses a PDF document. + + the + InputStream + containing the document. If the inputStream is an instance of + + then the + + would be extracted. Otherwise the stream + is read to the end but is not closed. + + properties of the created reader + + + Reads and parses a PDF document. + + the + File + containing the document. + + + + Reads and parses a PDF document. + + the + InputStream + containing the document. If the inputStream is an instance of + + then the + + would be extracted. Otherwise the stream + is read to the end but is not closed. + + + + Reads and parses a PDF document. + the file name of the document + properties of the created reader + + + Reads and parses a PDF document. + the file name of the document + + + + Close + . + + + + + The iText is not responsible if you decide to change the + value of this parameter. + + + true to enable unethicalReading, false to disable it. + By default unethicalReading is disabled. + + + this + + instance. + + + + Defines if memory saving mode is enabled. + + Defines if memory saving mode is enabled. + + By default memory saving mode is disabled for the sake of time–memory trade-off. + + If memory saving mode is enabled, document processing might slow down, but reading will be less memory demanding. + + true to enable memory saving mode, false to disable it. + + this + + instance. + + + + + Get the current + + of the reader. + + + the current + + + + + + Set the + + for the reader. + + + Set the + + for the reader. If the argument is + + , then + the + + will be used. + + + the + + to set + + + this + + instance + + + + + Gets whether + + method shall close input stream. + + + true, if + + method will close input stream, + otherwise false. + + + + + Sets whether + + method shall close input stream. + + + true, if + + method shall close input stream, + otherwise false. + + + + If any exception generated while reading XRef section, PdfReader will try to rebuild it. + true, if PdfReader rebuilt Cross-Reference section. + + + + Some documents contain hybrid XRef, for more information see "7.5.8.4 Compatibility with Applications + That Do Not Support Compressed Reference Streams" in PDF 32000-1:2008 spec. + + true, if the document has hybrid Cross-Reference section. + + + Indicates whether the document has Cross-Reference Streams. + true, if the document has Cross-Reference Streams. + + + If any exception generated while reading PdfObject, PdfReader will try to fix offsets of all objects. + + + If any exception generated while reading PdfObject, PdfReader will try to fix offsets of all objects. + + This method's returned value might change over time, because PdfObjects reading + can be postponed even up to document closing. + + true, if PdfReader fixed offsets of PdfObjects. + + + Gets position of the last Cross-Reference table. + -1 if Cross-Reference table has rebuilt, otherwise position of the last Cross-Reference table. + + + Reads, decrypt and optionally decode stream bytes. + + Reads, decrypt and optionally decode stream bytes. + Note, this method doesn't store actual bytes in any internal structures. + + + a + + stream instance to be read and optionally decoded. + + true if to get decoded stream bytes, false if to leave it originally encoded. + byte[] array. + + + Reads and decrypt stream bytes. + + Reads and decrypt stream bytes. + Note, this method doesn't store actual bytes in any internal structures. + + + a + + stream instance to be read + + byte[] array. + + + + Reads, decrypts and optionally decodes stream bytes into + . + + + Reads, decrypts and optionally decodes stream bytes into + . + User is responsible for closing returned stream. + + + a + + stream instance to be read + + true if to get decoded stream, false if to leave it originally encoded. + + InputStream or + + if reading was failed. + + + + Decode bytes applying the filters specified in the provided dictionary using default filter handlers. + + the bytes to decode + the dictionary that contains filter information + the decoded bytes + + + Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers. + + the bytes to decode + the dictionary that contains filter information + the map used to look up a handler for each type of filter + the decoded bytes + + + + Gets a new file instance of the original PDF + document. + + a new file instance of the original PDF document + + + Provides the size of the opened file. + The size of the opened file. + + + + Checks if the document was opened with the owner password so that the end application + can decide what level of access restrictions to apply. + + + Checks if the document was opened with the owner password so that the end application + can decide what level of access restrictions to apply. If the document is not encrypted + it will return + . + + + + + if the document was opened with the owner password or if it's not encrypted, + + if the document was opened with the user password. + + + + Gets the encryption permissions. + + Gets the encryption permissions. It can be used directly in + . + See ISO 32000-1, Table 22 for more details. + + the encryption permissions, an unsigned 32-bit quantity. + + + Gets encryption algorithm and access permissions. + + + int + value corresponding to a certain type of encryption. + + + + + Gets the declared PDF/A conformance level of the source document that is being read. + + Gets the declared PDF/A conformance level of the source document that is being read. + Note that this information is provided via XMP metadata and is not verified by iText. + + is lazy initialized. + It will be initialized during the first call of this method. + + + conformance level of the source document, or + + if no PDF/A + conformance level information is specified. + + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 encryption algorithm. + + user password, or null if not a standard encryption handler was used or if ownerPasswordUsed wasn't use to open the document. + + + + + Gets original file ID, the first element in + + key of trailer. + + + Gets original file ID, the first element in + + key of trailer. + If the size of ID array does not equal 2, an empty array will be returned. + + The returned value reflects the value that was written in opened document. If document is modified, + the ultimate document id can be retrieved from + . + + byte array represents original file ID. + + + + + Gets modified file ID, the second element in + + key of trailer. + + + Gets modified file ID, the second element in + + key of trailer. + If the size of ID array does not equal 2, an empty array will be returned. + + The returned value reflects the value that was written in opened document. If document is modified, + the ultimate document id can be retrieved from + . + + byte array represents modified file ID. + + + + + Checks if the + + read with this + + is encrypted. + + + + + is the document is encrypted, otherwise + . + + + + Parses the entire PDF + + + Utility method that checks the provided byte source to see if it has junk bytes at the beginning. + + + Utility method that checks the provided byte source to see if it has junk bytes at the beginning. If junk bytes + are found, construct a tokeniser that ignores the junk. Otherwise, construct a tokeniser for the byte source as it is + + the source to check + a tokeniser that is guaranteed to start at the PDF header + + + Enumeration representing the strictness level for reading. + + + + The reading strictness level at which iText fails (throws an exception) in case of + contradiction with PDF specification, but still recovers from mild parsing errors + and ambiguities. + + + + + The reading strictness level at which iText tries to recover from parsing + errors if possible. + + + + + Checks whether the current instance represents more strict reading level than + the provided one. + + + Checks whether the current instance represents more strict reading level than + the provided one. Note that the + + is less strict than any other value. + + + the + + to compare with + + + + + if the current level is stricter than the provided one + + + + + Wrapper class that represent resource dictionary - that define named resources + used by content streams operators. + + + Wrapper class that represent resource dictionary - that define named resources + used by content streams operators. (ISO 32000-1, 7.8.3 Resource Dictionaries) + + + + Creates new instance from given dictionary. + + the + + object from which the resource object will be created. + + + + Creates new instance from empty dictionary. + + + Adds font to resources and registers PdfFont in the document for further flushing. + + a + + instance to which the font is added for further flushing + + + a + + instance to be added + + added font resource name. + + + + Adds + + object to the resources. + + + the + + to add. + + added image resource name. + + + + Adds + + to the resources as image. + + + the + + to add. + + added image resources name. + + + + Adds + + object to the resources. + + + the + + to add. + + added form resource name. + + + + Adds + + to the resources as form. + + + the + + to add. + + added form resources name. + + + + Adds the given Form XObject to the current instance of + . + + Form XObject. + Preferred name for the given Form XObject. + + the + + of the newly added resource + + + + + Adds + + object to the resources. + + + the + + to add. + + added graphics state parameter dictionary resource name. + + + + Adds + + to the resources as graphics state parameter dictionary. + + + the + + to add. + + added graphics state parameter dictionary resources name. + + + + Adds + + to the resources as properties list. + + + the + + to add. + + added properties list resources name. + + + + Adds + + object to the resources. + + + the + + to add. + + added color space resource name. + + + + Adds + + to the resources as color space. + + + the + + to add. + + added color space resources name. + + + + Adds + + object to the resources. + + + the + + to add. + + added pattern resource name. + + + + Adds + + to the resources as pattern. + + + the + + to add. + + added pattern resources name. + + + + Adds + + object to the resources. + + + the + + to add. + + added shading resource name. + + + + Adds + + to the resources as shading dictionary. + + + the + + to add. + + added shading dictionary resources name. + + + + + + Sets the value of default Gray Color Space (see ISO-320001 Paragraph 8.6.5.6). + the color space to set. + + + Sets the value of default RGB Color Space (see ISO-320001 Paragraph 8.6.5.6). + the color space to set. + + + Sets the value of default CMYK Color Space (see ISO-320001 Paragraph 8.6.5.6). + the color space to set. + + + + Gets the mapped resource name of the + + under the given wrapper. + + + Gets the mapped resource name of the + + under the given wrapper. +
    +
    + Note: if the name for the object won't be found, then the name of object's Indirect Reference will be searched. +
    + + the wrapper of the + + , for which the name will be searched. + + + the type of the underlined + + in wrapper. + + + the mapped resource name or + + if object isn't added to resources. + +
    + + + Gets the mapped resource name of the given + . + + + Gets the mapped resource name of the given + . +
    +
    + Note: if the name for the object won't be found, then the name of object's Indirect Reference will be searched. +
    + the object, for which the name will be searched. + + the mapped resource name or + + if object isn't added to resources. + +
    + + Gets the names of all the added resources. + the name of all the added resources. + + + Gets the array of predefined procedure set names (see ISO-320001 Paragraph 14.2). + + Gets the array of predefined procedure set names (see ISO-320001 Paragraph 14.2). + Deprecated in PDF 2.0. + + the array of predefined procedure set names. + + + Sets the array of predefined procedure set names (see ISO-320001 Paragraph 14.2). + + Sets the array of predefined procedure set names (see ISO-320001 Paragraph 14.2). + Deprecated in PDF 2.0. + + the array of predefined procedure set names to be set. + + + Gets the names of all resources of specified type. + + the resource type. Should be + + , + + , + + , + + , + + , + . + + + set of resources name of corresponding type. May be empty. + Will be empty in case of incorrect resource type. + + + + + Get the + + object that that contain resources of specified type. + + + the resource type. Should be + + , + + , + + , + + , + + , + . + + + the + + object containing all resources of specified type, + or + + in case of incorrect resource type. + + + + + Get the + + object with specified type and name. + + + the resource type. Should be + + , + + , + + , + + , + + , + . + + the name of the resource object. + + the + + with specified name in the resources of specified type or + + in case of incorrect type or missing resource with such name. + + + + Represents a resource name generator. + + Represents a resource name generator. The generator takes into account + the names of already existing resources thus providing us a unique name. + The name consists of the following parts: prefix (literal) and number. + + + + + Constructs an instance of + + class. + + + Type of resource. Should be + + , + + , + + , + + , + + , + . + + Prefix used for generating names. + + Seed for the value which is appended to the number each time + new name is generated. + + + + + Constructs an instance of + + class. + + + Type of resource. Should be + + , + + , + + , + + , + + , + . + + Prefix used for generating names. + + + Gets the resource type of generator. + + Type of resource. May be + + , + + , + + , + + , + + , + . + + + + Generates new (unique) resource name. + + the + + object for which name will be generated. + + new (unique) resource name. + + + Representation of a stream as described in the PDF Specification. + + + + Constructs a + PdfStream + -object. + + + initial content of + . + + the compression level (0 = best speed, 9 = best compression, -1 is default) + + + + Creates a PdfStream instance. + bytes to write to the PdfStream + + + Creates an efficient stream. + + Creates an efficient stream. No temporary array is ever created. The + InputStream + is totally consumed but is not closed. The general usage is: +
    +
    +            PdfDocument document = ?;
    +            InputStream in = ?;
    +            PdfStream stream = new PdfStream(document, in, PdfOutputStream.DEFAULT_COMPRESSION);
    +            ?
    +            stream.flush();
    +            in.close();
    +            
    +
    + + the + pdf document + in which this stream lies + + the data to write to this stream + the compression level (0 = best speed, 9 = best compression, -1 is default) + +
    + + Creates an efficient stream. + + Creates an efficient stream. No temporary array is ever created. The + InputStream + is totally consumed but is not closed. The general usage is: +
    +
    +            PdfDocument document = ?;
    +            InputStream in = ?;
    +            PdfStream stream = new PdfStream(document, in);
    +            stream.flush();
    +            in.close();
    +            
    +
    + + the + pdf document + in which this stream lies + + the data to write to this stream +
    + + + Constructs a + PdfStream + -object. + + the compression level (0 = best speed, 9 = best compression, -1 is default) + + + + Creates an empty PdfStream instance. + + + Gets output stream. + output stream + + + Gets compression level of this PdfStream. + + Gets compression level of this PdfStream. + For more details @see + . + + compression level. + + + Sets compression level of this PdfStream. + + Sets compression level of this PdfStream. + For more details @see + . + + the compression level (0 = best speed, 9 = best compression, -1 is default) + + + + Gets decoded stream bytes. + + Gets decoded stream bytes. + Note, + + and + + filters will be ignored. + + + byte content of the + PdfStream + . Byte content will be + + , + if the + PdfStream + was created by + InputStream. + + + + Gets stream bytes. + + Gets stream bytes. + Note, + + and + + filters will be ignored. + + true if to get decoded stream bytes, otherwise false. + + byte content of the + PdfStream + . Byte content will be + + , + if the + PdfStream + was created by + InputStream. + + + + Sets bytes as stream's content. + + Sets bytes as stream's content. + Could not be used with streams which were created by InputStream. + + new content for stream; if null then stream's content will be discarded + + + Sets or appends bytes to stream content. + + Sets or appends bytes to stream content. + Could not be used with streams which were created by InputStream. + + + New content for stream. These bytes are considered to be a raw data (i.e. not encoded/compressed/encrypted) + and if it's not true, the corresponding filters shall be set to the PdfStream object manually. + Data compression generally should be configured via + + and + is handled on stream writing to the output document. + If null and append is false then stream's content will be discarded. + + + If set to true then bytes will be appended to the end, + rather then replace original content. The original content will be decoded if needed. + + + + Update length manually in case its correction. + the new length + + + + Release content of PdfStream. + + + + A + PdfString + -class is the PDF-equivalent of a + JAVA- + String + -object. + + + A + PdfString + -class is the PDF-equivalent of a + JAVA- + String + -object. + + A string is a sequence of characters delimited by parenthesis. + If a string is too long to be conveniently placed on a single line, it may + be split across multiple lines by using the backslash character (\) at the + end of a line to indicate that the string continues on the following line. + Within a string, the backslash character is used as an escape to specify + unbalanced parenthesis, non-printing ASCII characters, and the backslash + character itself. Use of the \ddd escape sequence is the preferred + way to represent characters outside the printable ASCII character set.
    + This object is described in the 'Portable Document Format Reference Manual + version 1.7' section 3.2.3 (page 53-56). +
    + +
    + + Only PdfReader can use this method! + + byte content the + + will be created from + + boolean indicating if hex writing will be used + + + Gets the encoding of this string. + + the name of the encoding specifying the byte representation of current + + value + + + + + Returns the Unicode + String + value of this + PdfString + -object. + + + Unicode string value created by current + + object + + + + Gets bytes of String-value considering encoding. + byte array + + + Marks this string object as not encrypted in the encrypted document. + + Marks this string object as not encrypted in the encrypted document. + + If it's marked so, it will be considered as already in plaintext and decryption will not be performed for it. + In order to have effect, this method shall be called before + + and + + methods. + + NOTE: this method is only needed in a very specific cases of encrypted documents. E.g. digital signature dictionary + /Contents entry shall not be encrypted. Also this method isn't meaningful in non-encrypted documents. + + + + + Encrypt content of + value + and set as content. + + + Encrypt content of + value + and set as content. + generateContent() + won't be called. + + + + + instance + + true if value was encrypted, otherwise false. + + + Escape special symbols or convert to hexadecimal string. + + Escape special symbols or convert to hexadecimal string. + This method don't change either + value + or + content + ot the + PdfString. + + byte array to manipulate with. + Hexadecimal string or string with escaped symbols in byte array view. + + + + + defines an array with displacements and + + -objects. + + + + defines an array with displacements and + + -objects. + + A + + is used with the operator TJ in + . + The first object in this array has to be a + + ; + see reference manual version 1.3 section 8.7.5, pages 346-347. + OR + see reference manual version 1.6 section 5.3.2, pages 378-379. + To emit a more efficient array, we consolidate repeated numbers or strings into single array entries. + For example: "add( 50 ); add( -50 );" will REMOVE the combined zero from the array. + + + + + Adds content of the + PdfArray. + + + the + PdfArray + to be added + + + + + Adds the Collection of PdfObjects. + the Collection of PdfObjects to be added + + + + This class represents all official PDF versions. + + + Creates a PdfVersion class. + major version number + minor version number + + + + Creates a PdfVersion class from a String object if the specified version + can be found. + + version number + PdfVersion of the specified version + + + + Creates a PdfVersion class from a + + object if the specified version + can be found. + + version number + PdfVersion of the specified version + + + + PageMode constant for + . + + + + + PageMode constant for + . + + + + + PageMode constant for + . + + + + + PageMode constant for + . + + + + + Direction constant for + . + + + + + Direction constant for + . + + + + + PageBoundary constant for + + , + + , + + , + . + + + + + PageBoundary constant for + + , + + , + + , + . + + + + + PageBoundary constant for + + , + + , + + , + . + + + + + PageBoundary constant for + + , + + , + + , + . + + + + + PageBoundary constant for + + , + + , + + , + . + + + + ViewArea constant. + + + ViewClip constant. + + + PrintArea constant. + + + PrintClip constant. + + + + Page scaling option constant for + . + + + + + Page scaling option constant for + . + + + + + The paper handling option constant for + . + + + + + The paper handling option constant for + . + + + + + The paper handling option constant for + . + + + + This method sets HideToolBar flag to true or false + HideToolBar flag's boolean value + + current instance of + + + + + This method sets HideMenuBar flag to true or false + HideMenuBar flag's boolean value + + current instance of + + + + + This method sets HideWindowUI flag to true or false + HideWindowUI flag's boolean value + + current instance of + + + + + This method sets FitWindow flag to true or false + FitWindow flag's boolean value + + current instance of + + + + + This method sets CenterWindow flag to true or false + CenterWindow flag's boolean value + + current instance of + + + + + This method sets DisplayDocTitle flag to true or false + DisplayDocTitle flag's boolean value + + current instance of + + + + + This method sets NonFullScreenPageMode property. + + This method sets NonFullScreenPageMode property. Allowed values are UseNone, UseOutlines, useThumbs, UseOC. + This entry is meaningful only if the value of the PageMode entry in the Catalog dictionary is FullScreen + + NonFullScreenPageMode property type value + + current instance of + + + + + This method sets predominant reading order of text. + reading order type value + + current instance of + + + + + + This method sets the name of the page boundary representing the area of a page that shall be displayed when + viewing the document on the screen. + + + This method sets the name of the page boundary representing the area of a page that shall be displayed when + viewing the document on the screen. + Deprecated in PDF 2.0. + + page boundary type value + + current instance of + + + + + + This method sets the name of the page boundary to which the contents of a page shall be clipped when + viewing the document on the screen. + + + This method sets the name of the page boundary to which the contents of a page shall be clipped when + viewing the document on the screen. + Deprecated in PDF 2.0. + + page boundary type value + + current instance of + + + + + + This method sets the name of the page boundary representing the area of a page that shall be + rendered when printing the document. + + + This method sets the name of the page boundary representing the area of a page that shall be + rendered when printing the document. + Deprecated in PDF 2.0. + + page boundary type value + + current instance of + + + + + + This method sets the name of the page boundary to which the contents of a page shall be clipped when + printing the document. + + + This method sets the name of the page boundary to which the contents of a page shall be clipped when + printing the document. + Deprecated in PDF 2.0. + + page boundary type value + + current instance of + + + + + + This method sets the page scaling option that shall be selected when a print dialog is displayed for this + document. + + + This method sets the page scaling option that shall be selected when a print dialog is displayed for this + document. Valid values are None and AppDefault. + + page scaling option's type value + + current instance of + + + + + This method sets the paper handling option that shall be used when printing the file from the print dialog. + + + This method sets the paper handling option that shall be used when printing the file from the print dialog. + The following values are valid: Simplex, DuplexFlipShortEdge, DuplexFlipLongEdge. + + paper handling option's type value + + current instance of + + + + + This method sets PickTrayByPDFSize flag to true or false. + PickTrayByPDFSize flag's boolean value + + current instance of + + + + + This method sets the page numbers used to initialize the print dialog box when the file is printed. + + the array of page numbers + + current instance of + + + + + This method sets the number of copies that shall be printed when the print dialog is opened for this file. + + the number of copies to print when the print dialog is opened + + current instance of + + + + + PDF 2.0. + + PDF 2.0. Sets an array of names of Viewer preference settings that + shall be enforced by PDF processors and that shall not be overridden by + subsequent selections in the application user interface + + array of names specifying settings to enforce in the PDF processors + + this + + instance + + + + PDF 2.0. + + PDF 2.0. Gets an array of names of Viewer preference settings that + shall be enforced by PDF processors and that shall not be overridden by + subsequent selections in the application user interface + + array of names specifying settings to enforce in the PDF processors + + + Currently active object stream. + + Currently active object stream. + Objects are written to the object stream if fullCompression set to true. + + + + Is used to avoid duplications on object copying. + + Is used to avoid duplications on object copying. + It stores hashes of the indirect reference from the source document and the corresponding + indirect references of the copied objects from the new document. + + + + Is used in smart mode to serialize and store serialized objects content. + + + Create a PdfWriter writing to the passed File and with default writer properties. + File to write to. + + + Create a PdfWriter writing to the passed outputstream and with default writer properties. + Outputstream to write to. + + + Create a PdfWriter writing to the passed filename and with default writer properties. + filename of the resulting pdf. + + + Create a PdfWriter writing to the passed filename and using the passed writer properties. + filename of the resulting pdf. + writerproperties to use. + + + Indicates if to use full compression mode. + true if to use full compression, false otherwise. + + + Gets default compression level for @see PdfStream. + + Gets default compression level for @see PdfStream. + For more details @see + . + + compression level. + + + Sets default compression level for @see PdfStream. + + Sets default compression level for @see PdfStream. + For more details @see + . + + compression level. + + this + + instance + + + + Sets the smart mode. + + Sets the smart mode. +
    + In smart mode when resources (such as fonts, images,...) are + encountered, a reference to these resources is saved + in a cache, so that they can be reused. + This requires more memory, but reduces the file size + of the resulting PDF document. +
    + True for enabling smart mode. + + this + + instance + +
    + + Flushes the object. + Flushes the object. Override this method if you want to define custom behaviour for object flushing. + + object to flush. + indicates whether object can be placed into object stream. + + + Copies a PdfObject either stand alone or as part of the PdfDocument passed as documentTo. + object to copy + optional target document + allow that some objects will become duplicated by this action + the copies object + + + Copies a PdfObject either stand alone or as part of the PdfDocument passed as documentTo. + object to copy + optional target document + allow that some objects will become duplicated by this action + + + + a filter to apply while copying arrays and dictionaries + * Use + + for no filtering + + the copies object + + + Writes object to body of PDF document. + object to write. + + + Writes PDF header. + + + Flushes all objects which have not been flushed yet. + + a + + of + references + that are forbidden to be flushed + automatically. + + + + Flushes all modified objects which have not been flushed yet. + Flushes all modified objects which have not been flushed yet. Used in case incremental updates. + + a + + of + references + that are forbidden to be flushed + automatically. + + + + Gets the current object stream. + object stream. + + + Flush all copied objects. + id of the source document + + + A representation of a cross-referenced table of a PDF document. + + + + Free references linked list is stored in a form of a map, where: + key - free reference obj number; + value - previous item in the linked list of free references for the object denoted by the key. + + + + + Creates a + + which will be used to store xref structure of the pdf document. + + + Creates a + + which will be used to store xref structure of the pdf document. + Capacity and + + instance would be set by default values. + + + + + Creates a + + which will be used to store xref structure of the pdf document. + + initial capacity of xref table. + + + + Creates a + + which will be used to store xref structure of the pdf document. + + + custom + + to set. + + + + + Creates a + + which will be used to store xref structure of the pdf document. + + initial capacity of xref table. + + memoryLimitsAwareHandler custom + + to set. + + + + + Sets custom + . + + instance to set. + + + Adds indirect reference to list of indirect objects. + indirect reference to add. + reference from param + + + Get size of cross-reference table. + amount of lines including zero-object + + + Calculates a number of stored references to indirect objects. + number of indirect objects + + + Get appropriate reference to indirect object. + is the index of required object + reference to object with the provided index + + + Convenience method to write the fingerprint preceding the trailer. + + Convenience method to write the fingerprint preceding the trailer. + The fingerprint contains information on iText products used in the generation or manipulation + of an outputted PDF file. + + pdfDocument to write the fingerprint to + + + Creates next available indirect reference. + + is the current + document + + created indirect reference. + + + Set the reference to free state. + is a reference to be updated. + + + Gets the capacity of xref stream. + the capacity of xref stream. + + + Increase capacity of the array of indirect references. + is a new capacity to set + + + Writes cross reference table and trailer to PDF. + + is the current + document + + field id + pdf encryption + + + + Change the state of the cross-reference table to mark that reading of the document + was completed. + + + + Check if reading of the document was completed. + true if reading was completed and false otherwise + + + Set up appropriate state for the free references list. + + is the current + document + + + + Method is used for object streams to avoid reuse existed references. + + is the current + document + + created indirect reference to the object stream + + + Clear the state of the cross-reference table. + + + Gets size of the offset. + Gets size of the offset. Max size is 2^40, i.e. 1 Tb. + + + Removes indirect reference from free references linked list. + + Removes indirect reference from free references linked list. + It does not removes it from xref table and affects only the linked list formed by offset values of free references. + + + object number of the reference to be removed. + Removes the free reference with the least object number if this parameter is less than zero: + this could be used for finding the next free reference for reusing. + + + + + instance of the removed free reference corresponding to the object number + passed as parameter. + + - if given object number doesn't correspond to free reference or equals to zero. + + + + Defines the password which will be used if the document is encrypted with standard encryption. + + Defines the password which will be used if the document is encrypted with standard encryption. + This could be either user or owner password. + + the password to use in order to open the document + + this + + instance + + + + + Defines the certificate which will be used if the document is encrypted with public key + encryption (see Pdf 1.7 specification, 7.6.4. Public-Key Security Handlers) + + + the recipient + + , + serves as recipient identifier + + + the recipient private + + to the certificate + + + this + + instance + + + + + Defines the certificate which will be used if the document is encrypted with public key + encryption (see Pdf 1.7 specification, 7.6.4. Public-Key Security Handlers) + + + the recipient + + , + serves as recipient identifier + + + this + + instance + + + + Sets the memory handler which will be used to handle decompressed PDF streams. + the memory handler which will be used to handle decompressed PDF streams + + + this + + instance + + + + Defines if the document will be edited in append mode. + + this + + instance + + + + Defines if the encryption of the original document (if it was encrypted) will be preserved. + + Defines if the encryption of the original document (if it was encrypted) will be preserved. + By default, the resultant document doesn't preserve the original encryption. + + + this + + instance + + + + Statistics aggregator which aggregates number of pages in PDF documents. + + + Aggregates number of pages from the provided event. + + + + instance + + + + Retrieves Map where keys are ranges of pages and values are the amounts of such PDF documents. + + aggregated + + + + + Merges data about amounts of ranges of pages from the provided aggregator into this aggregator. + + + + from which data will be taken. + + + + Class which represents event for counting the number of pages in a PDF document. + Class which represents event for counting the number of pages in a PDF document. Only for internal usage. + + + + + Creates an instance of this class based on the + + and the number of pages. + + the number of pages in the PDF document during the processing of which the event was sent + + is a description of the product which has generated an event + + + + + + + + + Gets number of pages in the PDF document during the processing of which the event was sent. + the number of pages + + + Statistics aggregator which aggregates size of PDF documents. + + + Aggregates size of the PDF document from the provided event. + + + + instance + + + + Retrieves Map where keys are ranges of document sizes and values are the amounts of such PDF documents. + + + aggregated + + + + + Merges data about amounts of ranges of document sizes from the provided aggregator into this aggregator. + + + + + from which data will be taken. + + + + Class which represents event related to size of the PDF document. + Class which represents event related to size of the PDF document. Only for internal usage. + + + + Creates an instance of this class based on the + + and the size of the document. + + the number of bytes in the PDF document during the processing of which the event was sent + + is a description of the product which has generated an event + + + + + + + + + Gets number of bytes in the PDF document during the processing of which the event was sent. + the number of pages + + + + Internal helper class which is used to effectively build parent tree and also find marked content references: + for specified page, by MCID or by struct parent index. + + + + Represents parentTree in structTreeRoot. + Represents parentTree in structTreeRoot. It contains only those entries that belong to the already flushed pages. + + + + Init ParentTreeHandler. + Init ParentTreeHandler. On init the parent tree is read and stored in this instance. + + + Gets a list of all marked content references on the page. + + + Creates and flushes parent tree entry for the page. + + Creates and flushes parent tree entry for the page. + Effectively this means that new content mustn't be added to the page. + + + + + for which to create parent tree entry. Typically this page is flushed after this + call. + + + + Represents Marked Content Reference (MCR) object wrapper. + + + A wrapper for namespace dictionaries (ISO 32000-2 section 14.7.4). + + A wrapper for namespace dictionaries (ISO 32000-2 section 14.7.4). + A namespace dictionary defines a namespace within the structure tree. + + This pdf entity is meaningful only for the PDF documents of version 2.0 and higher. + + + + + Constructs namespace from the given + + that represents namespace dictionary. + + + Constructs namespace from the given + + that represents namespace dictionary. + This method is useful for property reading in reading mode or modifying in stamping mode. + + + a + + that represents namespace in the document. + + + + Constructs a namespace defined by the given namespace name. + + a + + defining the namespace name (conventionally a uniform + resource identifier, or URI). + + + + Constructs a namespace defined by the given namespace name. + + a + + defining the namespace name (conventionally a uniform + resource identifier, or URI). + + + + Sets the string defining the namespace name. + + a + + defining the namespace name (conventionally a uniform + resource identifier, or URI). + + + this + + instance. + + + + Sets the string defining the namespace name. + + a + + defining the namespace name (conventionally a uniform + resource identifier, or URI). + + + this + + instance. + + + + Gets the string defining the namespace name. + + a + + defining the namespace name (conventionally a uniform + resource identifier, or URI). + + + + Sets file specification identifying the schema file, which defines this namespace. + + a + + identifying the schema file. + + + this + + instance. + + + + Gets file specification identifying the schema file, which defines this namespace. + + a + + identifying the schema file. + + + + + A dictionary that maps the names of structure types used in the namespace to their approximate equivalents in another + namespace. + + + a + + which is comprised of a set of keys representing structure element types + in the namespace defined within this namespace dictionary. The corresponding value for each of these + keys shall either be a single + + identifying a structure element type in the default + namespace or an + + where the first value shall be a structure element type name + in a target namespace with the second value being an indirect reference to the target namespace dictionary. + + + this + + instance. + + + + + A dictionary that maps the names of structure types used in the namespace to their approximate equivalents in another + namespace. + + + a + + which is comprised of a set of keys representing structure element types + in the namespace defined within this namespace dictionary. The corresponding value for each of these + keys shall either be a single + + identifying a structure element type in the default + namespace or an + + where the first value shall be a structure element type name + in a target namespace with the second value being an indirect reference to the target namespace dictionary. + + + + + Adds to the namespace role map (see + + ) a single role mapping to the + default standard structure namespace. + + + a + + identifying structure element type in this namespace. + + + a + + identifying a structure element type in the default standard structure namespace. + + + this + + instance. + + + + + Adds to the namespace role map (see + + ) a single role mapping to the + target namespace. + + + a + + identifying structure element type in this namespace. + + + a + + identifying a structure element type in the target namespace. + + + a + + identifying the target namespace. + + + this + + instance. + + + + A wrapper for structure element dictionaries (ISO-32000 14.7.2 "Structure Hierarchy"). + + A wrapper for structure element dictionaries (ISO-32000 14.7.2 "Structure Hierarchy"). + + The logical structure of a document shall be described by a hierarchy of objects called + the structure hierarchy or structure tree. At the root of the hierarchy shall be a dictionary object + called the structure tree root (see + + ). Immediate children of the structure tree root + are structure elements. Structure elements are other structure elements or content items. + + + + Method to distinguish struct elements from other elements of the logical tree (like mcr or struct tree root). + + + the + + to check on containing struct elements + + + if the type of + + is StructElem or + + contains the required key S + then true, otherwise false + + + + Gets attributes object. + + sometimes attributes object may not exist. + Pass + + if you want to create empty dictionary in such case. + The attributes dictionary will be stored inside element. + + attributes dictionary. + + + parent of the current structure element. Returns null if parent isn't set or if either current element or parent are invalid. + + + + Gets list of the direct kids of structure element. + + Gets list of the direct kids of structure element. + If certain kid is flushed, there will be a + + in the list on it's place. + + list of the direct kids of structure element. + + + + A + + identifies the structure element or elements to which the item of content, contained + within this structure element, refers (e.g. footnotes, endnotes, sidebars, etc.). + + + a + + < + + > containing zero, one or more structure elements. + + + + + A + + identifies the structure element to which the item of content, contained + within this structure element, refers (e.g. footnotes, endnotes, sidebars, etc.). + + + A + + identifies the structure element to which the item of content, contained + within this structure element, refers (e.g. footnotes, endnotes, sidebars, etc.). + + This value has meaning only for the PDF documents of version 2.0 and higher. + + + a + + to which the item of content, contained within this structure element, refers. + + + + A namespace this element belongs to (see ISO 32000-2 14.7.4, "Namespaces"). + + A namespace this element belongs to (see ISO 32000-2 14.7.4, "Namespaces"). If not present, the + element shall be considered to be in the default standard structure namespace. + + + a + + this element belongs to. + + + + A namespace this element belongs to (see ISO 32000-2 14.7.4, "Namespaces"). + + A namespace this element belongs to (see ISO 32000-2 14.7.4, "Namespaces"). + + This value has meaning only for the PDF documents of version 2.0 and higher. + + + a + + this element belongs to, or null if element is desired to be considered + in the default standard structure namespace. + + + + Attribute for a structure element that may be used as pronunciation hint. + + Attribute for a structure element that may be used as pronunciation hint. It is an exact replacement for content + enclosed by the structure element and its children. + + This value has meaning only for the PDF documents of version 2.0 and higher. + + + a + + which defines an exact replacement for content enclosed by the structure + element and its children. This value is to be interpreted based on the PhoneticAlphabet attribute in effect. + + + + Attribute for a structure element that may be used as pronunciation hint. + + Attribute for a structure element that may be used as pronunciation hint. It is an exact replacement for content + enclosed by the structure element and its children. + + + a + + which defines an exact replacement for content enclosed by the structure + element and its children. This value is to be interpreted based on the PhoneticAlphabet attribute in effect. + + + + + Attribute for a structure element that indicates the phonetic alphabet used by a + + attribute. + + + Attribute for a structure element that indicates the phonetic alphabet used by a + + attribute. + Applies to the structure element and its children, except where overridden by a child structure element. + + This value has meaning only for the PDF documents of version 2.0 and higher. + + + the + + which defines phonetic alphabet used by a + + attribute. Possible values are: + + + + for the International Phonetic Alphabet by the International Phonetic Association; + + + + for Extended Speech Assessment Methods Phonetic Alphabet (X-SAMPA); + + + + for Pinyin Latin romanization (Mandarin); + + + + for Wade-Giles romanization (Mandarin). + + + Other values may be used. + + + + + Attribute for a structure element that indicates the phonetic alphabet used by a + + attribute. + + + Attribute for a structure element that indicates the phonetic alphabet used by a + + attribute. + Applies to the structure element and its children, except where overridden by a child structure element. + + + the + + which defines phonetic alphabet used by a + + , or null if not defined, + default value + + . See + + for other possible values. + + + + Adds file associated with structure element and identifies the relationship between them. + + Adds file associated with structure element and identifies the relationship between them. + + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method adds file to array value of the AF key in the structure element dictionary. + If description is provided, it also will add file description to catalog Names tree. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + the file description + file specification dictionary of associated file + + + + + Adds file associated with structure element and identifies the relationship between them. + + + + Adds file associated with structure element and identifies the relationship between them. + + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method adds file to array value of the AF key in the structure element dictionary. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + file specification dictionary of associated file + + + Returns files associated with structure element. + defines whether AF arrays will be created if it doesn't exist + associated files array + + + Represents a wrapper-class for structure tree root dictionary. + Represents a wrapper-class for structure tree root dictionary. See ISO-32000-1 "14.7.2 Structure hierarchy". + + + + Creates a new structure tree root instance, this initializes empty logical structure in the document. + + + Creates a new structure tree root instance, this initializes empty logical structure in the document. + This class also handles global state of parent tree, so it's not expected to create multiple instances + of this class. Instead, use + . + + a document to which new instance of struct tree root will be bound + + + Creates wrapper instance for already existing logical structure tree root in the document. + + Creates wrapper instance for already existing logical structure tree root in the document. + This class also handles global state of parent tree, so it's not expected to create multiple instances + of this class. Instead, use + . + + a dictionary that defines document structure tree root + a document, which contains given structure tree root dictionary + + + Gets list of the direct kids of StructTreeRoot. + + Gets list of the direct kids of StructTreeRoot. + If certain kid is flushed, there will be a + + in the list on it's place. + + list of the direct kids of StructTreeRoot. + + + Gets namespaces used within the document. + + Gets namespaces used within the document. Essentially this method returns value of + + wrapped in the + + and + + classes. Therefore limitations of the referred method are + applied to this method too. + + + a + + of + + s used within the document. + + + + + Adds a + + to the list of the namespaces used within the document. + + + Adds a + + to the list of the namespaces used within the document. + + This value has meaning only for the PDF documents of version 2.0 and higher. + + + a + + to be added. + + + + An array of namespaces used within the document. + + An array of namespaces used within the document. This value, however, is not automatically updated while + the document is processed. It identifies only the namespaces that were in the document at the moment of it's + opening. + + + + + of namespaces used within the document. + + + + + A + + containing one or more + + objects, where each specified file + is a pronunciation lexicon, which is an XML file conforming to the Pronunciation Lexicon Specification (PLS) Version 1.0. + + + A + + containing one or more + + objects, where each specified file + is a pronunciation lexicon, which is an XML file conforming to the Pronunciation Lexicon Specification (PLS) Version 1.0. + These pronunciation lexicons may be used as pronunciation hints when the document’s content is presented via + text-to-speech. Where two or more pronunciation lexicons apply to the same text, the first match – as defined by + the order of entries in the array and the order of entries inside the pronunciation lexicon file – should be used. + + See ISO 32000-2 14.9.6, "Pronunciation hints". + + + A + + containing one or more + . + + + + + Adds a single + + object, which specifies XML file conforming to PLS. + + + Adds a single + + object, which specifies XML file conforming to PLS. + For more info see + . + + This value has meaning only for the PDF documents of version 2.0 and higher. + + + a + + object, which specifies XML file conforming to PLS. + + + + Creates and flushes parent tree entry for the page. + + Creates and flushes parent tree entry for the page. + Effectively this means that new content mustn't be added to the page. + + + + + for which to create parent tree entry. Typically this page is flushed after this call. + + + + Gets an unmodifiable collection of marked content references on page. + + Gets an unmodifiable collection of marked content references on page. + NOTE: Do not remove tags when iterating over returned collection, this could + lead to the ConcurrentModificationException, because returned collection is backed by the internal list of the + actual page tags. + + + + + to obtain unmodifiable collection of marked content references + + the unmodifiable collection of marked content references on page, if no Mcrs defined returns null + + + + + Copies structure to a + . + + + Copies structure to a + . + NOTE: Works only for + + that is read from the document opened in reading mode, + otherwise an exception is thrown. + + document to copy structure to. Shall not be current document. + association between original page and copied page. + + + + Copies structure to a + + and insert it in a specified position in the document. + + + Copies structure to a + + and insert it in a specified position in the document. + NOTE: Works only for + + that is read from the document opened in reading mode, + otherwise an exception is thrown. + + document to copy structure to. + indicates where the structure to be inserted. + association between original page and copied page. + + + Moves structure associated with specified page and insert it in a specified position in the document. + + + Moves structure associated with specified page and insert it in a specified position in the document. + + NOTE: Works only for document with not flushed pages. + + page which tag structure will be moved + indicates before tags of which page tag structure will be moved to + + + Adds file associated with structure tree root and identifies the relationship between them. + + Adds file associated with structure tree root and identifies the relationship between them. + + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method adds file to array value of the AF key in the structure tree root dictionary. + If description is provided, it also will add file description to catalog Names tree. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + the file description + file specification dictionary of associated file + + + + + Adds file associated with structure tree root and identifies the relationship between them. + + + + Adds file associated with structure tree root and identifies the relationship between them. + + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method adds file to array value of the AF key in the structure tree root dictionary. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + file specification dictionary of associated file + + + Returns files associated with structure tree root. + defines whether AF arrays will be created if it doesn't exist + associated files array + + + + This class encapsulates information about the standard structure namespaces and provides some utility methods + connected to them. + + + This class encapsulates information about the standard structure namespaces and provides some utility methods + connected to them. The main purpose of this class is to determine if the given role in the specified namespace + belongs to the standard or known domain-specific namespace. + + See ISO 32000-2 14.8.6, "Standard structure namespaces" + + + + Specifies the name of the standard structure namespace for PDF 1.7 + + + Specifies the name of the standard structure namespace for PDF 2.0 + + + Gets the name of the default standard structure namespace. + + Gets the name of the default standard structure namespace. When a namespace is not + explicitly specified for a given structure element or attribute, it shall be assumed to be within this + default standard structure namespace. According to ISO 32000-2 default namespace is + . + + the name of the default standard structure namespace. + + + + Checks if the given namespace is identified as the one that is common within broad ranges of documents types + and doesn't require a role mapping for it's roles. + + a namespace to be checked, whether it defines a namespace of the known domain specific language. + + + true, if the given + + belongs to the domain-specific namespace, false otherwise. + + + + Checks if the given role is considered standard in the specified standard namespace. + a role to be checked if it is standard in the given standard structure namespace. + + a + + identifying standard structure namespace against which given role + will be checked. + + + false if the given role doesn't belong to the standard roles of the given standard structure namespace or + if the given namespace name is not standard; true otherwise. + + + + Checks if the given role matches the Hn role pattern. + + Checks if the given role matches the Hn role pattern. To match this pattern, the given role + shall always consist of the uppercase letter "H" and one or more digits, representing an unsigned integer + greater than or equal to 1, without leading zeroes or any other prefix or postfix. + + + a + + that specifies a role to be checked against Hn role pattern. + + true if the role matches, false otherwise. + + + Internal helper class which is used to copy, clone or move tag structure across documents. + + + + Copies structure to a + . + + + Copies structure to a + . +

    + NOTE: Works only for + PdfStructTreeRoot + that is read from the document opened in reading mode, + otherwise an exception is thrown. +
    + document to copy structure to. Shall not be current document. + association between original page and copied page. +
    + + + Copies structure to a + + and insert it in a specified position in the document. + + + Copies structure to a + + and insert it in a specified position in the document. +

    + NOTE: Works only for + PdfStructTreeRoot + that is read from the document opened in reading mode, + otherwise an exception is thrown. +
    + Also, to insert a tagged page into existing tag structure, existing tag structure shouldn't be flushed, otherwise + an exception may be raised. +
    + document to copy structure to. + indicates where the structure to be inserted. + association between original page and copied page. +
    + + Move tag structure of page to other place in the same document + document in which modifications will take place (should be opened in read-write mode) + + page, which tag structure will be moved + indicates before what page number structure will be inserted to + + + structure tree index of first separated (cloned) top + + + + Copies structure to a + . + + document to cpt structure to. + association between original page and copied page. + + indicates if page2page keys and values represent pages from + . + + + + the topmost parent added to set. If encountered flushed element - stops and returns this flushed element. + + + + Gets the topmost non-root structure element parent. + Gets the topmost non-root structure element parent. May be flushed. + starting element + + topmost non-root structure element parent, or + + if it doesn't have any + + + + + The accessibility properties are used to define properties of + structure elements + in Tagged PDF documents via + + API. + + + + Gets the role of element. + + Gets the role of element. + + See also + . + + the role + + + Sets the role of element. + + Sets the role of element. + + See also + . + + Calling this method with a null argument will make the tagging on the associated layout + element "neutral". The effect is that all children of the layout element will be + tagged as if they were direct children of the parent element. + + the role to be set + + this + + instance + + + + Gets the language identifier of element. + + Gets the language identifier of element. Should be in format xy-ZK (for example en-US). + + For more information see PDF Specification ISO 32000-1 section 14.9.2. + + the language + + + Sets the language identifier of element. + + Sets the language identifier of element. Should be in format xy-ZK (for example en-US). + + For more information see PDF Specification ISO 32000-1 section 14.9.2. + + the language to be set + + this + + instance + + + + Gets the actual text of element. + the actual text + + + Sets the actual text of element. + the actual text to be set + + this + + instance + + + + Gets the alternate description of element. + the alternate description + + + Sets the alternate description of element. + the alternation description to be set + + this + + instance + + + + Gets the expansion of element. + + Gets the expansion of element. + + Expansion it is the expanded form of an abbreviation of structure element. + + the expansion + + + Sets the expansion of element. + + Sets the expansion of element. + + Expansion it is the expanded form of an abbreviation of structure element. + + the expansion to be set + + this + + instance + + + + Gets the phoneme of element. + + Gets the phoneme of element. + + For more information see + . + + the phoneme + + + Sets the phoneme of element. + + Sets the phoneme of element. + + For more information see + . + + the phoneme to be set + + this + + instance + + + + Gets the phonetic alphabet of element. + + Gets the phonetic alphabet of element. + + For more information see + . + + the phonetic alphabet + + + Sets the phonetic alphabet of element. + + Sets the phonetic alphabet of element. + + For more information see + . + + the phonetic alphabet to be set + + this + + instance + + + + Gets the namespace of element. + the namespace + + + Sets the namespace of element. + the namespace to be set + + this + + instance + + + + Adds the reference to other tagged element. + + Adds the reference to other tagged element. + + For more information see + . + + the reference to be set + + this + + instance + + + + Gets the list of references to other tagged elements. + + Gets the list of references to other tagged elements. + + For more information see + . + + the list of references + + + Clears the list of references to other tagged elements. + + Clears the list of references to other tagged elements. + + For more information see + . + + + this + + instance + + + + Adds the attributes to the element. + the attributes to be added + + this + + instance + + + + Adds the attributes to the element with specified index. + + Adds the attributes to the element with specified index. + + If an attribute with the same O and NS entries is specified more than once, the later (in array order) + entry shall take precedence. For more information see PDF Specification ISO-32000 section 14.7.6. + + the attributes index + the attributes to be added + + this + + instance + + + + Clears the list of attributes. + + this + + instance + + + + Gets the attributes list. + the attributes list + + + + The class represents a basic implementation of + + that preserves specified + accessibility properties. + + + The class represents a basic implementation of + + that preserves specified + accessibility properties. Accessibility properties are used to define properties of + structure elements + in Tagged PDF documents via + + API. + + + + + Instantiates a new + + instance based on structure element role. + + the structure element role + + + + A helper interface that facilitates roles mapping resolving for the tag structures that are defined for different + PDF document specification versions. + + + A helper interface that facilitates roles mapping resolving for the tag structures that are defined for different + PDF document specification versions. + + Be aware, that it is explicitly allowed for the document by the specification to have circular or transitive mappings. + + + + Defines the current role of the resolver. + + Defines the current role of the resolver. On every successful resolving "step" the role returned by this method + changes in order to reflect the mapping of the previous role. + + + the + + which identifies current role of the resolver. + + + + Defines the namespace of the current role. + + the + + instance of the namespace dictionary wrapper. The role returned by the + + method call is considered to belong to this namespace. Might be null, which means that role belongs to the + default standard namespace. + + + + Checks if the current role belongs to one of the standard structure namespaces. + true if the current namespace is a standard structure namespace and the current role is defined as standard role in it. + + + + + Checks if the current role and namespace are specified to be obligatory mapped to the standard structure namespace + in order to be a valid role in the Tagged PDF. + + + true, if the current role in the current namespace either belongs to the standard structure roles or is in the + domain specific namespace; otherwise false. + + + + Performs a mapping resolving "step". + + Performs a mapping resolving "step". Essentially finds the role and it's namespace to which the current role is mapped to. + After this method call + + and + + methods might change their return value. + + + true if current role and/or namespace have changed their values; otherwise false which means that current + role is not mapped. + + + + + The class is used to provide connection between structure element of + Tagged PDF document and marked content sequence in PDF stream. + + + The class is used to provide connection between structure element of + Tagged PDF document and marked content sequence in PDF stream. + + See + + and + . + + + + + Creates a + + instance which represents a reference to + . + + + a structure element to which marked content will link (if insertIndex is -1, + otherwise to MC will link to kid with insertIndex of passed structure element) + + the tag pointer to structure element + + if insertIndex is -1, the referencedTag will be used as a + source of reference, otherwise the kid will be used + + + + Gets role of structure element. + the role of structure element + + + Creates next marked content identifier, which will be used to mark content in PDF stream. + the marked content identifier + + + Adds property, which will be associated with marked-content sequence. + the name of the property + the value of the property + + the + + instance + + + + Removes property. + Removes property. The property will not be associated with marked-content sequence. + the name of property to be deleted + + the + + instance + + + + Gets property which related to specified name. + the name of the property + the value of the property + + + + Gets properties, which will be associated with marked-content sequence as + . + + the properties + + + + TagStructureContext + class is used to track necessary information of document's tag structure. + + + TagStructureContext + class is used to track necessary information of document's tag structure. + It is also used to make some global modifications of the tag tree like removing or flushing page tags, however + these two methods and also others are called automatically and are for the most part for internal usage. +
    + There shall be only one instance of this class per + PdfDocument + . To obtain instance of this class use + . +
    +
    + + + Do not use this constructor, instead use + + method. + + + Do not use this constructor, instead use + + method. +
    + Creates + TagStructureContext + for document. There shall be only one instance of this + class per + PdfDocument. +
    + the document which tag structure will be manipulated with this class. +
    + + + Do not use this constructor, instead use + + method. + + + Do not use this constructor, instead use + + method. + + Creates + TagStructureContext + for document. There shall be only one instance of this + class per + PdfDocument. + + the document which tag structure will be manipulated with this class. + the version of the pdf standard to which the tag structure shall adhere. + + + + + If forbidUnknownRoles is set to true, then if you would try to add new tag which has not a standard role and + it's role is not mapped through RoleMap, an exception will be raised. + + + If forbidUnknownRoles is set to true, then if you would try to add new tag which has not a standard role and + it's role is not mapped through RoleMap, an exception will be raised. + Default value - true. + + new value of the flag + + current + + instance. + + + + Gets the version of the PDF standard to which the tag structure shall adhere. + the tag structure target version + + + + All tagging logic performed by iText automatically (along with addition of content, annotations etc) + uses + + returned by this method to manipulate the tag structure. + + + All tagging logic performed by iText automatically (along with addition of content, annotations etc) + uses + + returned by this method to manipulate the tag structure. + Typically it points at the root tag. This pointer also could be used to tweak auto tagging process + (e.g. move this pointer to the Section tag, which would result in placing all automatically tagged content + under Section tag). + + + the + TagTreePointer + which is used for all automatic tagging of the document. + + + + + Gets + + for the current document. + + + Gets + + for the current document. It allows to mark tags as waiting, + which would indicate that they are incomplete and are not ready to be flushed. + + + document's + + class instance. + + + + + A namespace that is used as a default value for the tagging for any new + + created + (including the pointer returned by + + , which implies that automatically + created tag structure will be in this namespace by default). + + + A namespace that is used as a default value for the tagging for any new + + created + (including the pointer returned by + + , which implies that automatically + created tag structure will be in this namespace by default). + + By default, this value is defined based on the PDF document version and the existing tag structure inside + a document. For the new empty PDF 2.0 documents this namespace is set to + . + + This value has meaning only for the PDF documents of version 2.0 and higher. + + + a + + which is used as a default value for the document tagging. + + + + + Sets a namespace that will be used as a default value for the tagging for any new + + created. + + + Sets a namespace that will be used as a default value for the tagging for any new + + created. + See + + for more info. + + Be careful when changing this property value. It is most recommended to do it right after the + + was + created, before any content was added. Changing this value after any content was added might result in the mingled + tag structure from the namespaces point of view. So in order to maintain the document consistent but in the namespace + different from default, set this value before any modifications to the document were made and before + + method was called for the first time. + + This value has meaning only for the PDF documents of version 2.0 and higher. + + + a + + which is to be used as a default value for the document tagging. + + + current + + instance. + + + + + This method defines a recommended way to obtain + + class instances. + + + This method defines a recommended way to obtain + + class instances. + + Returns either a wrapper over an already existing namespace dictionary in the document or over a new one + if such namespace wasn't encountered before. Calling this method is considered as encountering a namespace, + i.e. two sequential calls on this method will return the same namespace instance (which is not true in general case + of two method calls, for instance if several namespace instances with the same name are created via + + constructors and set to the elements of the tag structure, then the last encountered one + will be returned by this method). However encountered namespaces will not be added to the document's structure tree root + /Namespaces + array unless they were set to the certain element of the tag structure. + + + a + + defining the namespace name (conventionally a uniform resource identifier, or URI). + + + + + wrapper over either already existing namespace object or over the new one. + + + + + Gets an instance of the + + corresponding to the current tag structure target version. + + + Gets an instance of the + + corresponding to the current tag structure target version. + This method implies that role is in the default standard structure namespace. + + a role in the default standard structure namespace which mapping is to be resolved. + + a + + instance, with the giving role as current. + + + + + Gets an instance of the + + corresponding to the current tag structure target version. + + a role in the given namespace which mapping is to be resolved. + + a + + which this role belongs to. + + + a + + instance, with the giving role in the given + + as current. + + + + + Checks if the given role and namespace are specified to be obligatory mapped to the standard structure namespace + in order to be a valid role in the Tagged PDF. + + a role in the given namespace which mapping necessity is to be checked. + + a + + which this role belongs to, null value refers to the default standard + structure namespace. + + + true, if the given role in the given namespace is either mapped to the standard structure role or doesn't + have to; otherwise false. + + + + + Gets an instance of the + + which is already in the "resolved" state: it returns + role in the standard or domain-specific namespace for the + + and + + methods calls which correspond to the mapping of the given role; + or null if the given role is not mapped to the standard or domain-specific one. + + a role in the given namespace which mapping is to be resolved. + + a + + which this role belongs to. + + + an instance of the + + which returns false + for the + + method call; if mapping cannot be resolved + to this state, this method returns null, which means that the given role + in the specified namespace is not mapped to the standard role in the standard namespace. + + + + Removes annotation content item from the tag structure. + + Removes annotation content item from the tag structure. + If annotation is not added to the document or is not tagged, nothing will happen. + + + the + + that will be removed from the tag structure + + + + + instance which points at annotation tag parent if annotation was removed, + otherwise returns null + + + + Removes content item from the tag structure. + + Removes content item from the tag structure. +
    + Nothing happens if there is no such mcid on given page. +
    + page, which contains this content item + marked content id of this content item + + + TagTreePointer + which points at the parent of the removed content item, or null if there is no + such mcid on given page. + +
    + + Removes all tags that belong only to this page. + + Removes all tags that belong only to this page. The logic which defines if tag belongs to the page is described + at + . + + page that defines which tags are to be removed + + current + + instance + + + + Flushes the tags which are considered to belong to the given page. + + Flushes the tags which are considered to belong to the given page. + The logic that defines if the given tag (structure element) belongs to the page is the following: + if all the marked content references (dictionary or number references), that are the + descendants of the given structure element, belong to the current page - the tag is considered + to belong to the page. If tag has descendants from several pages - it is flushed, if all other pages except the + current one are flushed. +

    + If some of the page's tags have waiting state (see + + these tags are considered + as not yet finished ones, and they and their children won't be flushed. +
    + a page which tags will be flushed + + current + + instance + +
    + + Transforms root tags in a way that complies with the tagged PDF specification. + + Transforms root tags in a way that complies with the tagged PDF specification. + Depending on PDF version behaviour may differ. +
    + ISO 32000-1 (PDF 1.7 and lower) + 14.8.4.2 Grouping Elements +
    + "In a tagged PDF document, the structure tree shall contain a single top-level element; that is, + the structure tree root (identified by the StructTreeRoot entry in the document catalogue) shall + have only one child in its K (kids) array. If the PDF file contains a complete document, the structure + type Document should be used for this top-level element in the logical structure hierarchy. If the file + contains a well-formed document fragment, one of the structure types Part, Art, Sect, or Div may be used instead." +
    + For PDF 2.0 and higher root tag is allowed to have only the Document role. +
    +
    + + + A utility method that prepares the current instance of the + + for + the closing of document. + + + A utility method that prepares the current instance of the + + for + the closing of document. Essentially it flushes all the "hanging" information to the document. + + + + + Gets + + at which + + points. + + + Gets + + at which + + points. + + NOTE: Be aware that + + is a low level class, use it carefully, + especially in conjunction with high level + + and + + classes. + + + a + + which points at desired + . + + + a + + at which given + + points. + + + + + Creates a new + + which points at given + . + + + a + + for which + + will be created. + + + a new + . + + + + + + class is used to modify the document's tag tree. + + + + class is used to modify the document's tag tree. At any given moment, instance of this class + 'points' at the specific position in the tree (at the specific tag), however every instance can be freely moved around + the tree primarily using + + and + + methods. For the current tag you can add new tags, + modify it's role and properties, etc. Also, using instance of this class, you can change tag position in the tag structure, + you can flush current tag or remove it. + + There could be any number of the instances of this class, simultaneously pointing to different (or the same) parts of + the tag structure. Because of this, you can for example remove the tag at which another instance is currently pointing. + In this case, this another instance becomes invalid, and invocation of any method on it will result in exception. To make + given instance valid again, use + + method. + + + + + Creates + TagTreePointer + instance. + + + Creates + TagTreePointer + instance. After creation + TagTreePointer + points at the root tag. + + The + + for the new tags, which don't explicitly define namespace by the means of + + , is set to the value returned by + + on + + creation. + See also + . + + the document, at which tag structure this instance will point. + + + A copy constructor. + + the + TagTreePointer + from which current position and page are copied. + + + + + Sets a page which content will be tagged with this instance of + TagTreePointer. + + + Sets a page which content will be tagged with this instance of + TagTreePointer. + To tag page content: + + Set pointer position to the tag which will be the parent of the page content item; + + Call + + to obtain the reference to the current tag; + + Pass + + to the + + method of the page's + + to start marked content item; + + Draw content on + PdfCanvas + ; + + Use + + to finish marked content item. + + + + + the page which content will be tagged with this instance of + TagTreePointer. + + + this + + instance. + + + + + a page which content will be tagged with this instance of + TagTreePointer. + + + + + Sometimes, tags are desired to be connected with the content that resides not in the page's content stream, + but rather in the some appearance stream or in the form xObject stream. + + + Sometimes, tags are desired to be connected with the content that resides not in the page's content stream, + but rather in the some appearance stream or in the form xObject stream. In that case, to have a valid tag structure, + one shall set not only the page, on which the content will be rendered, but also the content stream in which + the tagged content will reside. +

    + NOTE: It's important to set a + + for this value, when tagging of this stream content is finished. +
    + + the content stream which content will be tagged with this instance of + TagTreePointer + or + + if content stream tagging is finished + + + current + + instance + +
    + + + the content stream which content will be tagged with this instance of + TagTreePointer. + + + + + the + + associated with the document to which this pointer belongs. + + + + the document, at which tag structure this instance points. + + + + Sets a + + which will be set to every new tag created by this + + instance + if this tag doesn't explicitly define namespace by the means of + . + + + Sets a + + which will be set to every new tag created by this + + instance + if this tag doesn't explicitly define namespace by the means of + . + + This value has meaning only for the PDF documents of version 2.0 and higher. + + It's highly recommended to acquire + + class instances via + . + + + a + + to be set for the new tags created. If set to null - new tags will have + a namespace set only if it is defined in the corresponding + . + + + this + + instance. + + + + + + Gets a + + which will be set to every new tag created by this + + instance. + + + a + + which is to be set for the new tags created, or null if one is not defined. + + + + + Adds a new tag with given role to the tag structure. + + Adds a new tag with given role to the tag structure. + This method call moves this + TagTreePointer + to the added kid. + + role of the new tag. + + this + + instance. + + + + Adds a new tag with given role to the tag structure. + + Adds a new tag with given role to the tag structure. + This method call moves this + TagTreePointer + to the added kid. +
    + This call is equivalent of calling sequentially + + and + . +
    + zero-based index in kids array of parent tag at which new tag will be added. + role of the new tag. + + this + + instance. + +
    + + Adds a new tag to the tag structure. + + Adds a new tag to the tag structure. + This method call moves this + + to the added kid. +
    + New tag will have a role and attributes defined by the given + . +
    + accessibility properties which define a new tag role and other properties. + + this + + instance. + +
    + + Adds a new tag to the tag structure. + + Adds a new tag to the tag structure. + This method call moves this + TagTreePointer + to the added kid. +
    + New tag will have a role and attributes defined by the given + . + This call is equivalent of calling sequentially + + and + . +
    + zero-based index in kids array of parent tag at which new tag will be added. + accessibility properties which define a new tag role and other properties. + + this + + instance. + +
    + + + Adds a new content item for the given + PdfAnnotation + under the current tag. + + + Adds a new content item for the given + PdfAnnotation + under the current tag. +

    + By default, when annotation is added to the page it is automatically tagged with auto tagging pointer + (see + + ). If you want to add annotation tag manually, be sure to use + + method with false for boolean flag. +
    + + + PdfAnnotation + to be tagged. + + + this + + instance. + +
    + + Sets index of the next added to the current tag kid, which could be another tag or content item. + + Sets index of the next added to the current tag kid, which could be another tag or content item. + By default, new tag is added at the end of the parent kids array. This property affects only the next added tag, + all tags added after will be added with the default behaviour. +

    + This method could be used with any overload of + + method, + with + + and + . +
    + Keep in mind, that this method set property to the + TagTreePointer + and not to the tag itself, which means + that if you would move the pointer, this property would be applied to the new current tag. +
    + index of the next added kid. + + this + + instance. + +
    + + Removes the current tag. + + Removes the current tag. If it has kids, they will become kids of the current tag parent. + This method call moves this + TagTreePointer + to the current tag parent. +

    + You cannot remove root tag, and also you cannot remove the tag if it's parent is already flushed; + in this two cases an exception will be thrown. +
    + + this + + instance. + +
    + + + Moves kid of the current tag to the tag at which given + TagTreePointer + points. + + + Moves kid of the current tag to the tag at which given + TagTreePointer + points. + This method doesn't change neither this instance nor pointerToNewParent position. + + zero-based index of the current tag's kid to be relocated. + + the + TagTreePointer + which is positioned at the tag which will become kid's new parent. + + + this + + instance. + + + + + Moves current tag to the tag at which given + TagTreePointer + points. + + + Moves current tag to the tag at which given + TagTreePointer + points. + This method doesn't change either this instance or pointerToNewParent position. + + + the + TagTreePointer + which is positioned at the tag + which will become current tag new parent. + + + this + + instance. + + + + Creates a reference to the current tag, which could be used to associate a content on the PdfCanvas with current tag. + + + Creates a reference to the current tag, which could be used to associate a content on the PdfCanvas with current tag. + See + + and + . + + the reference to the current tag. + + + Creates a reference to the current tag, which could be used to associate a content on the PdfCanvas with current tag. + + + Creates a reference to the current tag, which could be used to associate a content on the PdfCanvas with current tag. + See + + and + . + + zero-based index in kids array of tag. These indexes define the logical order of the content on the page. + + the reference to the current tag. + + + + Moves this + TagTreePointer + instance to the document root tag. + + + this + + instance. + + + + + Moves this + + instance to the parent of the current tag. + + + this + + instance. + + + + + Moves this + TagTreePointer + instance to the kid of the current tag. + + zero-based index of the current tag kid to which pointer will be moved. + + this + + instance. + + + + + Moves this + + instance to the first descendant of the current tag which has the given role. + + + Moves this + + instance to the first descendant of the current tag which has the given role. + If there are no direct kids of the tag with such role, further descendants are checked in BFS order. + + + role of the current tag descendant to which pointer will be moved. + If there are several descendants with this role, pointer will be moved + to the first kid with such role in BFS order. + + + this + + instance. + + + + + Moves this + + instance to the nth descendant of the current tag which has the given role. + + + Moves this + + instance to the nth descendant of the current tag which has the given role. + If there are no direct kids of the tag with such role, further descendants are checked in BFS order. + + + if there are several descendants with the given role, pointer will be moved to the descendant + which has zero-based index n if you count only the descendants with the given role in BFS order. + + role of the current tag descendant to which pointer will be moved. + + this + + instance. + + + + Gets current tag kids roles. + + Gets current tag kids roles. + If certain kid is already flushed, at its position there will be a + . + If kid is a content item, at it's position there will be "MCR" string literal (stands for Marked Content Reference). + + current tag kids roles + + + Flushes current tag and all it's descendants. + + Flushes current tag and all it's descendants. + This method call moves this + TagTreePointer + to the current tag parent. + + If some of the descendant tags of the current tag have waiting state (see + + ), + then these tags are considered as not yet finished ones, and they won't be flushed immediately, + but they will be flushed, when waiting state is removed. + + + this + + instance. + + + + + Gets accessibility properties of the current tag. + accessibility properties of the current tag. + + + Gets current tag role. + current tag role. + + + Sets new role to the current tag. + new role to be set. + + this + + instance. + + + + Defines index of the current tag in the parent's kids list. + + returns index of the current tag in the parent's kids list, or -1 + if either current tag is a root tag, parent is flushed or it wasn't possible to define index. + + + + + Moves this + + instance to the tag at which given + + instance is pointing. + + + a + + that points at the tag which will become the current tag + of this instance. + + + this + + instance. + + + + + Checks if this + + is pointing at the same tag as the giving + . + + + a + + which is checked against this instance on whether they point + at the same tag. + + + true if both + + instances point at the same tag, false otherwise. + + + + This class is used to manage waiting tags state. + + This class is used to manage waiting tags state. + Any tag in the structure tree could be marked as "waiting". This state indicates that + tag is not yet finished and therefore should not be flushed or removed if page tags are + flushed or removed or if parent tags are flushed. + + Waiting state of tags is defined by the association with arbitrary objects instances. + + Waiting state could also be perceived as a temporal association of the object to some particular tag. + + + + + Assigns waiting state to the tag at which given + + points, associating it with the given + . + + + Assigns waiting state to the tag at which given + + points, associating it with the given + + . If current tag of the given + + is already waiting, then after this method call + it's associated object will change to the one passed as the argument and the old one will not longer be + an associated object. + + + a + + pointing at a tag which is desired to be marked as waiting. + + an object that is to be associated with the waiting tag. A null value is forbidden. + + + the previous associated object with the tag if it has already had waiting state, + or null if it was not waiting tag. + + + + + Checks if there is waiting tag which state was assigned using given + . + + + an + + which is to be checked if it is associated with any waiting tag. A null value is forbidden. + + true if object is currently associated with some waiting tag. + + + + Moves given + + to the waiting tag which is associated with the given object. + + + Moves given + + to the waiting tag which is associated with the given object. + If the passed object is not associated with any waiting tag, + + position won't change. + + + a + + which position in the tree is to be changed to the + waiting tag in case of the successful call. + + + an object which is associated with the waiting tag to which + + is to be moved. + + + true if given object is actually associated with the waiting tag and + + was moved + in order to point at it. + + + + Removes waiting state of the tag which is associated with the given object. + + Removes waiting state of the tag which is associated with the given object. + + NOTE: if parent of the waiting tag is already flushed, the tag and it's children + (unless they are waiting tags on their own) will be also immediately flushed right after + the waiting state removal. + + an object which association with the waiting tag is to be removed. + true if object was actually associated with some tag and it's association was removed. + + + Removes waiting state of all waiting tags by removing association with objects. + + Removes waiting state of all waiting tags by removing association with objects. + + NOTE: if parent of the waiting tag is already flushed, the tag and it's children + will be also immediately flushed right after the waiting state removal. + + + + parent of the flushed tag + + + Indicates if to use full compression (using object streams). + + + Indicates if the writer copy objects in a smart mode. + + Indicates if the writer copy objects in a smart mode. If so PdfDictionary and PdfStream will be hashed + and reused if there's an object with the same content later. + + + + The ID entry that represents the initial identifier. + + + The ID entry that represents a change in a document. + + + Defines pdf version for the created document. + Defines pdf version for the created document. Default value is PDF_1_7. + version for the document. + + this + + instance + + + + Enables smart mode. + + Enables smart mode. +
    + In smart mode when resources (such as fonts, images,...) are + encountered, a reference to these resources is saved + in a cache, so that they can be reused. + This requires more memory, but reduces the file size + of the resulting PDF document. +
    + + this + + instance + +
    + + + If true, default XMPMetadata based on + + will be added. + + + If true, default XMPMetadata based on + + will be added. + For PDF 2.0 documents, metadata will be added in any case. + + + this + + instance + + + + Defines the level of compression for the document. + + Defines the level of compression for the document. + See + + + + + + value. + + + this + + instance + + + + Defines if full compression mode is enabled. + + Defines if full compression mode is enabled. If enabled, not only the content of the pdf document will be + compressed, but also the pdf document inner structure. + + true - to enable full compression mode, false to disable it + + this + + instance + + + + Sets the encryption options for the document. + + the user password. Can be null or of zero length, which is equal to + omitting the user password + + + the owner password. If it's null or empty, iText will generate + a random string to be used as the owner password + + + the user permissions + The open permissions for the document can be + + , + + , + + , + + , + + , + + , + + and + . + The permissions can be combined by ORing them + + + the type of encryption. It can be one of + + , + + , + + or + . + Optionally + + can be ORed + to output the metadata in cleartext. + + can be ORed as well. + Please be aware that the passed encryption types may override permissions: + + implicitly sets + + and + + as false; + + implicitly sets + + as false; + + + this + + instance + + + + Sets the certificate encryption options for the document. + + Sets the certificate encryption options for the document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + + the public certificates to be used for the encryption + + the user permissions for each of the certificates + The open permissions for the document can be + + , + + , + + , + + , + + , + + , + + and + . + The permissions can be combined by ORing them + + + the type of encryption. It can be one of + + , + + , + + or + . + Optionally + + can be ORed + to output the metadata in cleartext. + + can be ORed as well. + Please be aware that the passed encryption types may override permissions: + + implicitly sets + + and + + as false; + + implicitly sets + + as false; + + + this + + instance + + + + The /ID entry of a document contains an array with two entries. + + The /ID entry of a document contains an array with two entries. The first one (initial id) represents the initial document id. + It's a permanent identifier based on the contents of the file at the time it was originally created + and does not change when the file is incrementally updated. + To help ensure the uniqueness of file identifiers, it is recommend to be computed by means of a message digest algorithm such as MD5. + iText will by default keep the existing initial id. But if you'd like you can set this id yourself using this setter. + + the new initial document id + + this + + instance + + + + The /ID entry of a document contains an array with two entries. + + The /ID entry of a document contains an array with two entries. + The second one (modified id) should be the same entry, unless the document has been modified. iText will by default generate + a modified id. But if you'd like you can set this id yourself using this setter. + + the new modified document id + + this + + instance + + + + This method marks the document as PDF/UA and sets related flags is XMPMetaData. + + This method marks the document as PDF/UA and sets related flags is XMPMetaData. + This method calls + + implicitly. + NOTE: iText does not validate PDF/UA, which means we don't check if created PDF meets all PDF/UA requirements. + Don't use this method if you are not familiar with PDF/UA specification in order to avoid creation of non-conformant PDF/UA file. + + + this + + instance + + + + Sets state of this object according to the color space + the colorspace to use + whether indexed color spaces will be resolved (used for recursive call) + + + A wrapper for Form XObject. + A wrapper for Form XObject. ISO 32000-1, 8.10 FormXObjects. + + + Creates a new instance of Form XObject. + the form XObject’s bounding box. + + + + Create + + instance by + . + + + Create + + instance by + . + Note, this constructor doesn't perform any additional checks + + + + + with Form XObject. + + + + + Creates form XObject from page content. + + Creates form XObject from page content. + The page shall be from the document, to which FormXObject will be added. + + + an instance of + + + + + + Creates a form XObject from + . + + + Creates a form XObject from + . + Unlike other images, + + images are represented as + + , not as + . + + image to create form object from + document instance which is needed for writing form stream contents + + + Calculates the coordinates of the xObject BBox multiplied by the Matrix field. + + Calculates the coordinates of the xObject BBox multiplied by the Matrix field. + + For mor information see paragraph 8.10.1 in ISO-32000-1. + + the object for which calculate the coordinates of the bBox + + the bBox + + + + + + Gets + + of the Form XObject. + + + Gets + + of the Form XObject. + Note, if there is no resources, a new instance will be created. + + + not null instance of + . + + + + + Gets Form XObject's BBox, + + key. + + + a + + , that represents + . + + + + + Sets Form XObject's BBox, + + key. + + + a + + , that represents + . + + object itself. + + + + Sets a group attributes dictionary indicating that the contents of the form XObject + shall be treated as a group and specifying the attributes of that group. + + + Sets a group attributes dictionary indicating that the contents of the form XObject + shall be treated as a group and specifying the attributes of that group. + + key. + + + instance of + . + + object itself. + + + + Gets width based on XObject's BBox. + float value. + + + Gets height based on XObject's BBox. + float value. + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note that not every wrapper require this, only those that have such warning in documentation. + + + + + Sets process color model for trap network appearance, + + key. + + + shall be one of the valid values: + + , + + , + + , + + , + + , and + . + + object itself. + + + + Gets process color model of trap network appearance, + + key. + + + a + + instance, possible values: + + , + + , + + , + + , + + , and + . + + + + + Sets separation color names for the trap network appearance, + + key. + + + an array of names identifying the colorants that were assumed + when the trap network appearance was created. + + object itself. + + + + Gets separation color names of trap network appearance, + + key. + + + an + + of names identifying the colorants. + + + + + Sets an array of TrapRegion objects defining the page’s trapping zones + and the associated trapping parameters, as described in Adobe Technical Note #5620, + Portable Job Ticket Format. + + + Sets an array of TrapRegion objects defining the page’s trapping zones + and the associated trapping parameters, as described in Adobe Technical Note #5620, + Portable Job Ticket Format. + + key. + + + A + + of indirect references to TrapRegion objects. + + object itself. + + + + Gets an array of TrapRegion objects defining the page’s trapping zones + and the associated trapping parameters, as described in Adobe Technical Note #5620, + Portable Job Ticket Format. + + + Gets an array of TrapRegion objects defining the page’s trapping zones + and the associated trapping parameters, as described in Adobe Technical Note #5620, + Portable Job Ticket Format. + + key. + + + A + + of indirect references to TrapRegion objects. + + + + Sets a human-readable text string that described this trap network to the user. + + Sets a human-readable text string that described this trap network to the user. + + key. + + + a + + value. + + object itself. + + + Gets a human-readable text string that described this trap network to the user. + + Gets a human-readable text string that described this trap network to the user. + + key. + + + a + + value. + + + + Sets a text string representing the printer’s mark in human-readable form. + a string value. + object itself. + + + Gets a text string representing the printer’s mark in human-readable form. + a string value. + + + Puts the value into Image XObject dictionary and associates it with the specified key. + + Puts the value into Image XObject dictionary and associates it with the specified key. + If the key is already present, it will override the old value with the specified one. + + key to insert or to override + the value to associate with the specified key + object itself. + + + A wrapper for Image XObject. + A wrapper for Image XObject. ISO 32000-1, 8.9 Images. + + + Creates Image XObject by image. + + + + with actual image data. + + + + Creates Image XObject by image. + + + + with actual image data. + + + + + with image mask. + + + + + Create + + instance by + . + + + Create + + instance by + . + Note, this constructor doesn't perform any additional checks + + + + + with Image XObject. + + + + + + Gets width of image, + Width + key. + + float value. + + + + Gets height of image, + Height + key. + + float value. + + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + + + To manually flush a + PdfObject + behind this wrapper, you have to ensure + that this object is added to the document, i.e. it has an indirect reference. + Basically this means that before flushing you need to explicitly call + . + For example: wrapperInstance.makeIndirect(document).flush(); + Note, that not every wrapper require this, only those that have such warning in documentation. + + + + Copy Image XObject to the specified document. + target document + + just created instance of + . + + + + Gets decoded image bytes. + byte array. + + + Gets image bytes. + + Gets image bytes. + Note, + + , + + and + + filters will be ignored. + + + if + + , decodes stream bytes. + + byte array. + + + + Identifies the type of the image that is stored in the bytes of this + . + + + Identifies the type of the image that is stored in the bytes of this + . + Note that this has nothing to do with the original type of the image. For instance, the return value + of this method will never be + + as we lose this information when converting a + PNG image into something that can be put into a PDF file. + The possible values are: + + , + + , + + , + + , + + + the identified type of image + + + + Identifies recommended file extension to store the bytes of this + . + + + Identifies recommended file extension to store the bytes of this + . + Possible values are: 'png', 'jpg', 'jp2', 'tif', 'jbig2'. + This extension can later be used together with the result of + . + + + a + + with recommended file extension + + + + + Puts the value into Image XObject dictionary and associates it with the specified key. + + Puts the value into Image XObject dictionary and associates it with the specified key. + If the key is already present, it will override the old value with the specified one. + + key to insert or to override + the value to associate with the specified key + object itself. + + + Determining the initial backdrop against which its stack is composited. + + defines whether the + + flag will be set or removed + + + + Determining whether the objects within the stack are composited with one another or only with the group's backdrop. + + + defines whether the + + flag will be set or removed + + + + An abstract wrapper for supported types of XObject. + + + + + + Create + + or + + by + . + + + + + with either + + or + + + + + + either + + or + . + + + + + Calculates a rectangle with the specified coordinates and width, and the height is + calculated in such a way that the original proportions of the xObject do not change. + + + Calculates a rectangle with the specified coordinates and width, and the height is + calculated in such a way that the original proportions of the xObject do not change. + + To calculate the original width and height of the xObject, the BBox and Matrix fields + are used. For mor information see paragraph 8.10.1 in ISO-32000-1. + + the xObject for which we are calculating the rectangle + the x-coordinate of the lower-left corner of the rectangle + the y-coordinate of the lower-left corner of the rectangle + the width of the rectangle + the rectangle with specified coordinates and width + + + + Calculates a rectangle with the specified coordinates and height, and the width is + calculated in such a way that the original proportions of the xObject do not change. + + + Calculates a rectangle with the specified coordinates and height, and the width is + calculated in such a way that the original proportions of the xObject do not change. + + To calculate the original width and height of the xObject, the BBox and Matrix fields + are used. For mor information see paragraph 8.10.1 in ISO-32000-1. + + the xObject for which we are calculating the rectangle + the x-coordinate of the lower-left corner of the rectangle + the y-coordinate of the lower-left corner of the rectangle + the height of the rectangle + the rectangle with specified coordinates and height + + + Sets the layer this XObject belongs to. + the layer this XObject belongs to. + + + Gets width of XObject. + float value. + + + Gets height of XObject. + float value. + + + Adds file associated with PDF XObject and identifies the relationship between them. + + Adds file associated with PDF XObject and identifies the relationship between them. + Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. + The method adds file to array value of the AF key in the XObject dictionary. + + For associated files their associated file specification dictionaries shall include the AFRelationship key + + file specification dictionary of associated file + + + Returns files associated with XObject. + defines whether AF arrays will be created if it doesn't exist + associated files array + + + + + + + This class provides means to compare two PDF files both by content and visually + and gives the report on their differences. + + + This class provides means to compare two PDF files both by content and visually + and gives the report on their differences. + + For visual comparison it uses external tools: Ghostscript and ImageMagick, which + should be installed on your machine. To allow CompareTool to use them, you need + to pass either java properties or environment variables with names "ITEXT_GS_EXEC" and + "ITEXT_MAGICK_COMPARE_EXEC", which would contain the commands to execute the + Ghostscript and ImageMagick tools. + + CompareTool class was mainly designed for the testing purposes of iText in order to + ensure that the same code produces the same PDF document. For this reason you will + often encounter such parameter names as "outDoc" and "cmpDoc" which stand for output + document and document-for-comparison. The first one is viewed as the current result, + and the second one is referred as normal or ideal result. OutDoc is compared to the + ideal cmpDoc. Therefore all reports of the comparison are in the form: "Expected ..., + but was ...". This should be interpreted in the following way: "expected" part stands + for the content of the cmpDoc and "but was" part stands for the content of the outDoc. + + + + + Compares two PDF documents by content starting from Catalog dictionary and then recursively comparing + corresponding objects which are referenced from it. + + + Compares two PDF documents by content starting from Catalog dictionary and then recursively comparing + corresponding objects which are referenced from it. You can roughly imagine it as depth-first traversal + of the two trees that represent pdf objects structure of the documents. + + The main difference between this method and the + + methods is the return value. This method returns a + + class instance, which could be used + in code, whilst compareByContent methods in case of the differences simply return String value, which could + only be printed. Also, keep in mind that this method doesn't perform visual comparison of the documents. + + For more explanations about what outDoc and cmpDoc are see last paragraph of the + + class description. + + + a + + corresponding to the output file, which is to be compared with cmp-file. + + + a + + corresponding to the cmp-file, which is to be compared with output file. + + + the report on comparison of two files in the form of the custom class + + instance. + + + + + Disables the default logic of pages comparison. + + Disables the default logic of pages comparison. + This option makes sense only for + + method. + + By default, pages are treated as special objects and if they are met in the process of comparison, then they are + not checked as objects, but rather simply checked that they have same page numbers in both documents. + This behaviour is intended for the + + set of methods, because in them documents are compared in page by page basis. Thus, we don't need to check if pages + are of the same content when they are met in comparison process, we are sure that we will compare their content or + we have already compared them. + + However, if you would use + + with default behaviour + of pages comparison, pages won't be checked at all, every time when reference to the page dictionary is met, + only page numbers will be compared for both documents. You can say that in this case, comparison will be performed + for all document's catalog entries except /Pages (However in fact, document's page tree structures will be compared, + but pages themselves - won't). + + + this + + instance. + + + + Sets the maximum errors count which will be returned as the result of the comparison. + the errors count. + this CompareTool instance. + + + Enables or disables the generation of the comparison report in the form of an xml document. + + Enables or disables the generation of the comparison report in the form of an xml document. + + IMPORTANT NOTE: this flag affects only the comparison performed by compareByContent methods! + + true to enable xml report generation, false - to disable. + this CompareTool instance. + + + + Sets + + info that will be used for both read and written documents creation. + + meta info to set + + + Enables the comparison of the encryption properties of the documents. + + Enables the comparison of the encryption properties of the documents. Encryption properties comparison + results are returned along with all other comparison results. + + IMPORTANT NOTE: this flag affects only the comparison performed by compareByContent methods! + + doesn't compare encryption properties + because encryption properties aren't part of the document's Catalog. + + this CompareTool instance. + + + + Gets + + to be passed later to the + + of the output document. + + + Gets + + to be passed later to the + + of the output document. + + Documents for comparison are opened in reader mode. This method is intended to alter + + which are used to open the output document. This is particularly useful for comparison of encrypted documents. + + For more explanations about what outDoc and cmpDoc are see last paragraph of the + + class description. + + + + + instance to be passed later to the + + of the output document. + + + + + Gets + + to be passed later to the + + of the cmp document. + + + Gets + + to be passed later to the + + of the cmp document. + + Documents for comparison are opened in reader mode. This method is intended to alter + + which are used to open the cmp document. This is particularly useful for comparison of encrypted documents. + + For more explanations about what outDoc and cmpDoc are see last paragraph of the + + class description. + + + + + instance to be passed later to the + + of the cmp document. + + + + Compares two documents visually. + + Compares two documents visually. For the comparison two external tools are used: Ghostscript and ImageMagick. + For more info about needed configuration for visual comparison process see + + class description. + + During comparison for every page of the two documents an image file will be created in the folder specified by + outPath parameter. Then those page images will be compared and if there are any differences for some pages, + another image file will be created with marked differences on it. + + the absolute path to the output file, which is to be compared to cmp-file. + the absolute path to the cmp-file, which is to be compared to output file. + the absolute path to the folder, which will be used to store image files for visual comparison. + + file name prefix for image files with marked differences if there is any. + + string containing list of the pages that are visually different, or null if there are no visual differences. + + + + Compares two documents visually. + + Compares two documents visually. For the comparison two external tools are used: Ghostscript and ImageMagick. + For more info about needed configuration for visual comparison process see + + class description. + + During comparison for every page of two documents an image file will be created in the folder specified by + outPath parameter. Then those page images will be compared and if there are any differences for some pages, + another image file will be created with marked differences on it. + + It is possible to ignore certain areas of the document pages during visual comparison. This is useful for example + in case if documents should be the same except certain page area with date on it. In this case, in the folder + specified by the outPath, new pdf documents will be created with the black rectangles at the specified ignored + areas, and visual comparison will be performed on these new documents. + + the absolute path to the output file, which is to be compared to cmp-file. + the absolute path to the cmp-file, which is to be compared to output file. + the absolute path to the folder, which will be used to store image files for visual comparison. + + file name prefix for image files with marked differences if there is any. + + a map with one-based page numbers as keys and lists of ignored rectangles as values. + + string containing list of the pages that are visually different, or null if there are no visual differences. + + + + + Compares two PDF documents by content starting from page dictionaries and then recursively comparing + corresponding objects which are referenced from them. + + + Compares two PDF documents by content starting from page dictionaries and then recursively comparing + corresponding objects which are referenced from them. You can roughly imagine it as depth-first traversal + of the two trees that represent pdf objects structure of the documents. + + When comparison by content is finished, if any differences were found, visual comparison is automatically started. + For this overload, differenceImagePrefix value is generated using diff_%outPdfFileName%_ format. + + For more explanations about what outPdf and cmpPdf are see last paragraph of the + + class description. + + the absolute path to the output file, which is to be compared to cmp-file. + the absolute path to the cmp-file, which is to be compared to output file. + the absolute path to the folder, which will be used to store image files for visual comparison. + + + string containing text report on the encountered content differences and also list of the pages that are + visually different, or null if there are no content and therefore no visual differences. + + + + + + Compares two PDF documents by content starting from page dictionaries and then recursively comparing + corresponding objects which are referenced from them. + + + Compares two PDF documents by content starting from page dictionaries and then recursively comparing + corresponding objects which are referenced from them. You can roughly imagine it as depth-first traversal + of the two trees that represent pdf objects structure of the documents. + + When comparison by content is finished, if any differences were found, visual comparison is automatically started. + + For more explanations about what outPdf and cmpPdf are see last paragraph of the + + class description. + + the absolute path to the output file, which is to be compared to cmp-file. + the absolute path to the cmp-file, which is to be compared to output file. + the absolute path to the folder, which will be used to store image files for visual comparison. + + + file name prefix for image files with marked visual differences if there are any; + if it's set to null the prefix defaults to diff_%outPdfFileName%_ format. + + + string containing text report on the encountered content differences and also list of the pages that are + visually different, or null if there are no content and therefore no visual differences. + + + + + This method overload is used to compare two encrypted PDF documents. + + This method overload is used to compare two encrypted PDF documents. Document passwords are passed with + outPass and cmpPass parameters. + + Compares two PDF documents by content starting from page dictionaries and then recursively comparing + corresponding objects which are referenced from them. You can roughly imagine it as depth-first traversal + of the two trees that represent pdf objects structure of the documents. + + When comparison by content is finished, if any differences were found, visual comparison is automatically started. + For more info see + . + + For more explanations about what outPdf and cmpPdf are see last paragraph of the + + class description. + + the absolute path to the output file, which is to be compared to cmp-file. + the absolute path to the cmp-file, which is to be compared to output file. + the absolute path to the folder, which will be used to store image files for visual comparison. + + + file name prefix for image files with marked visual differences if there is any; + if it's set to null the prefix defaults to diff_%outPdfFileName%_ format. + + password for the encrypted document specified by the outPdf absolute path. + password for the encrypted document specified by the cmpPdf absolute path. + + string containing text report on the encountered content differences and also list of the pages that are + visually different, or null if there are no content and therefore no visual differences. + + + + + + Compares two PDF documents by content starting from page dictionaries and then recursively comparing + corresponding objects which are referenced from them. + + + Compares two PDF documents by content starting from page dictionaries and then recursively comparing + corresponding objects which are referenced from them. You can roughly imagine it as depth-first traversal + of the two trees that represent pdf objects structure of the documents. + + When comparison by content is finished, if any differences were found, visual comparison is automatically started. + + For more explanations about what outPdf and cmpPdf are see last paragraph of the + + class description. + + the absolute path to the output file, which is to be compared to cmp-file. + the absolute path to the cmp-file, which is to be compared to output file. + the absolute path to the folder, which will be used to store image files for visual comparison. + + + file name prefix for image files with marked visual differences if there are any; + if it's set to null the prefix defaults to diff_%outPdfFileName%_ format. + + a map with one-based page numbers as keys and lists of ignored rectangles as values. + + + string containing text report on the encountered content differences and also list of the pages that are + visually different, or null if there are no content and therefore no visual differences. + + + + + This method overload is used to compare two encrypted PDF documents. + + This method overload is used to compare two encrypted PDF documents. Document passwords are passed with + outPass and cmpPass parameters. + + Compares two PDF documents by content starting from page dictionaries and then recursively comparing + corresponding objects which are referenced from them. You can roughly imagine it as depth-first traversal + of the two trees that represent pdf objects structure of the documents. + + When comparison by content is finished, if any differences were found, visual comparison is automatically started. + + For more explanations about what outPdf and cmpPdf are see last paragraph of the + + class description. + + the absolute path to the output file, which is to be compared to cmp-file. + the absolute path to the cmp-file, which is to be compared to output file. + the absolute path to the folder, which will be used to store image files for visual comparison. + + + file name prefix for image files with marked visual differences if there are any; + if it's set to null the prefix defaults to diff_%outPdfFileName%_ format. + + a map with one-based page numbers as keys and lists of ignored rectangles as values. + + password for the encrypted document specified by the outPdf absolute path. + password for the encrypted document specified by the cmpPdf absolute path. + + string containing text report on the encountered content differences and also list of the pages that are + visually different, or null if there are no content and therefore no visual differences. + + + + + Simple method that compares two given PdfDictionaries by content. + + Simple method that compares two given PdfDictionaries by content. This is "deep" comparing, which means that all + nested objects are also compared by content. + + dictionary to compare. + dictionary to compare. + true if dictionaries are equal by content, otherwise false. + + + Recursively compares structures of two corresponding dictionaries from out and cmp PDF documents. + + + Recursively compares structures of two corresponding dictionaries from out and cmp PDF documents. You can roughly + imagine it as depth-first traversal of the two trees that represent pdf objects structure of the documents. + + Both out and cmp + + shall have indirect references. + + By default page dictionaries are excluded from the comparison when met and are instead compared in a special manner, + simply comparing their page numbers. This behavior can be disabled by calling + . + + For more explanations about what outPdf and cmpPdf are see last paragraph of the + + class description. + + + an indirect + + from the output file, which is to be compared to cmp-file dictionary. + + + an indirect + + from the cmp-file file, which is to be compared to output file dictionary. + + + + + instance containing differences between the two dictionaries, + or + + if dictionaries are equal. + + + + Recursively compares structures of two corresponding dictionaries from out and cmp PDF documents. + + + Recursively compares structures of two corresponding dictionaries from out and cmp PDF documents. You can roughly + imagine it as depth-first traversal of the two trees that represent pdf objects structure of the documents. + + Both out and cmp + + shall have indirect references. + + By default page dictionaries are excluded from the comparison when met and are instead compared in a special manner, + simply comparing their page numbers. This behavior can be disabled by calling + . + + For more explanations about what outPdf and cmpPdf are see last paragraph of the + + class description. + + + an indirect + + from the output file, which is to be compared to cmp-file dictionary. + + + an indirect + + from the cmp-file file, which is to be compared to output file dictionary. + + + a + + of names that designate entries from + + and + + dictionaries + which are to be skipped during comparison. + + + + + instance containing differences between the two dictionaries, + or + + if dictionaries are equal. + + + + Compares structures of two corresponding streams from out and cmp PDF documents. + + Compares structures of two corresponding streams from out and cmp PDF documents. You can roughly + imagine it as depth-first traversal of the two trees that represent pdf objects structure of the documents. + + For more explanations about what outPdf and cmpPdf are see last paragraph of the + + class description. + + + a + + from the output file, which is to be compared to cmp-file stream. + + + a + + from the cmp-file file, which is to be compared to output file stream. + + + + + instance containing differences between the two streams, + or + + if streams are equal. + + + + Simple method that compares two given PdfStreams by content. + + Simple method that compares two given PdfStreams by content. This is "deep" comparing, which means that all + nested objects are also compared by content. + + stream to compare. + stream to compare. + true if stream are equal by content, otherwise false. + + + Simple method that compares two given PdfArrays by content. + + Simple method that compares two given PdfArrays by content. This is "deep" comparing, which means that all + nested objects are also compared by content. + + array to compare. + array to compare. + true if arrays are equal by content, otherwise false. + + + Simple method that compares two given PdfNames. + name to compare. + name to compare. + true if names are equal, otherwise false. + + + Simple method that compares two given PdfNumbers. + number to compare. + number to compare. + true if numbers are equal, otherwise false. + + + Simple method that compares two given PdfStrings. + string to compare. + string to compare. + true if strings are equal, otherwise false. + + + Simple method that compares two given PdfBooleans. + boolean to compare. + boolean to compare. + true if booleans are equal, otherwise false. + + + Compares xmp metadata of the two given PDF documents. + the absolute path to the output file, which xmp is to be compared to cmp-file. + the absolute path to the cmp-file, which xmp is to be compared to output file. + text report on the xmp differences, or null if there are no differences. + + + Compares xmp metadata of the two given PDF documents. + the absolute path to the output file, which xmp is to be compared to cmp-file. + the absolute path to the cmp-file, which xmp is to be compared to output file. + + true, if to ignore differences in date or producer xmp metadata + properties. + + text report on the xmp differences, or null if there are no differences. + + + Utility method that provides simple comparison of the two xml files stored in byte arrays. + first xml file data to compare. + second xml file data to compare. + true if xml structures are identical, false otherwise. + + + Utility method that provides simple comparison of the two xml files. + absolute path to the out xml file to compare. + absolute path to the cmp xml file to compare. + true if xml structures are identical, false otherwise. + + + Compares document info dictionaries of two pdf documents. + + Compares document info dictionaries of two pdf documents. + + This method overload is used to compare two encrypted PDF documents. Document passwords are passed with + outPass and cmpPass parameters. + + the absolute path to the output file, which info is to be compared to cmp-file info. + the absolute path to the cmp-file, which info is to be compared to output file info. + password for the encrypted document specified by the outPdf absolute path. + password for the encrypted document specified by the cmpPdf absolute path. + text report on the differences in documents infos. + + + Compares document info dictionaries of two pdf documents. + the absolute path to the output file, which info is to be compared to cmp-file info. + the absolute path to the cmp-file, which info is to be compared to output file info. + text report on the differences in documents infos. + + + Checks if two documents have identical link annotations on corresponding pages. + the absolute path to the output file, which links are to be compared to cmp-file links. + + the absolute path to the cmp-file, which links are to be compared to output file links. + + text report on the differences in documents links. + + + Compares tag structures of the two PDF documents. + + Compares tag structures of the two PDF documents. + + This method creates xml files in the same folder with outPdf file. These xml files contain documents tag structures + converted into the xml structure. These xml files are compared if they are equal. + + the absolute path to the output file, which tags are to be compared to cmp-file tags. + + the absolute path to the cmp-file, which tags are to be compared to output file tags. + + text report of the differences in documents tags. + + + Converts document info into a string array. + + Converts document info into a string array. + + Converts document info into a string array. It can be used to compare PdfDocumentInfo later on. + Default implementation retrieves title, author, subject, keywords and producer. + + an instance of PdfDocumentInfo to be converted. + String array with all the document info tester is interested in. + + + first difference offset + + + Class containing results of the comparison of two documents. + + + Creates new empty instance of CompareResult with given limit of difference messages. + maximum number of difference messages to be handled by this CompareResult. + + + Verifies if documents are considered equal after comparison. + true if documents are equal, false otherwise. + + + Returns number of differences between two documents detected during comparison. + number of differences. + + + Converts this CompareResult into text form. + text report on the differences between two documents. + + + + Returns map with + + as keys and difference descriptions as values. + + differences map which could be used to find in the document the objects that are different. + + + Converts this CompareResult into xml form. + output stream to which xml report will be written. + + + + Exceptions thrown when errors occur during generation and comparison of images obtained on the basis of pdf + files. + + + + + Creates a new + . + + the detail message. + + + + Implementation of + + for creating safe xml parser objects. + + + Implementation of + + for creating safe xml parser objects. + Creates parsers with configuration to prevent xml bombs and xxe attacks. + + + + + Creates to make reader secure against xml attacks. + + Configured xml reader settings + + + A filter class to be used while copying pdf components. + + + Verifies whether a PdfObject should be copied in the copying flow. + + Verifies whether a PdfObject should be copied in the copying flow. + The filter class has to take care of alternative ways to process the PdfObject if needed. + When more than one filter should be used, it is upon the user to chain them together. + + the parent in the target of the PdfObject to be checked + the name of the PdfObject if the parent is a PdfDictionary + the PdfObject toi be checked + true, the PdfObject will be copied, false it will not be copied + + + The interface in which methods for creating xml parsers are declared. + + + + Creates the instance of . + + the stream that contains the XML data. + the context information required to parse the XML fragment. + an object that is used to read the XML data in the stream. + + + + Creates the instance of . + + the text reader from which to read the XML data. + an object that is used to read the XML data in the stream. + + + + A no-op + + instance, used as default. + + + + + Getter for an instance of + . + + NullCopyFilter instance + + + + Direct path item (see + + , which describes transition to the + + element which is now a currently comparing direct object. + + + + + Creates an instance of the + . + + + the index which defines element of the + + to which + the transition was performed. + + + + + The index which defines element of the + + to which the transition was performed. + + + The index which defines element of the + + to which the transition was performed. + See + + for more info. + + the index which defines element of the array to which the transition was performed + + + + Direct path item (see + + , which describes transition to the + + entry which value is now a currently comparing direct object. + + + + + Creates an instance of the + . + + + the key which defines to which entry of the + + the transition was performed. + + + + + The key which defines to which entry of the + + the transition was performed. + + + The key which defines to which entry of the + + the transition was performed. + See + + for more info. + + + a + + which is the key which defines + to which entry of the dictionary the transition was performed. + + + + + An item in the indirect path (see + . + + + An item in the indirect path (see + + . It encapsulates two corresponding objects from the two + comparing documents that were met to get to the path base objects during comparing process. + + + + + Creates + + instance for two corresponding objects from two comparing documents. + + an object from the cmp document. + an object from the out document. + + + + Method returns a + + object from the cmp object that was met to get + to the path base objects during comparing process. + + + a + + object from the cmp object. + + + + + Method returns a + + object that was met to get to the path base + objects during comparing process. + + an object from the out object + + + + An abstract class for the items in the direct path (see + . + + + + Creates an xml node that describes this direct path item. + xml document, to which this xml node will be added. + an xml node describing direct path item. + + + + Class that helps to find two corresponding objects in the compared documents and also keeps track of the + already met during comparing process parent indirect objects. + + + Class that helps to find two corresponding objects in the compared documents and also keeps track of the + already met during comparing process parent indirect objects. + + You could say that CompareObjectPath instance consists of two parts: direct path and indirect path. + Direct path defines path to the currently comparing objects in relation to base objects. It could be empty, + which would mean that currently comparing objects are base objects themselves. Base objects are the two indirect + objects from the comparing documents which are in the same position in the pdf trees. Another part, indirect path, + defines which indirect objects were met during comparison process to get to the current base objects. Indirect path + is needed to avoid infinite loops during comparison. + + + + Creates empty ObjectPath. + + + + Creates an + + object from another + + object, passed as argument. + + + an + + object to create from. + + + + Creates CompareObjectPath with corresponding base objects in two documents. + base object in cmp document. + base object in out document. + + + + Creates a new ObjectPath instance with two new given base objects, which are supposed to be nested in the base + objects of the current instance of the ObjectPath. + + + Creates a new ObjectPath instance with two new given base objects, which are supposed to be nested in the base + objects of the current instance of the ObjectPath. This method is used to avoid infinite loop in case of + circular references in pdf documents objects structure. + + Basically, this method creates copy of the current CompareObjectPath instance, but resets + information of the direct paths, and also adds current CompareObjectPath instance base objects to the indirect + references chain that denotes a path to the new base objects. + + new base object in cmp document. + new base object in out document. + + new ObjectPath instance, which stores chain of the indirect references + which were already met to get to the new base objects. + + + + This method is used to define if given objects were already met in the path to the current base objects. + + + This method is used to define if given objects were already met in the path to the current base objects. + If this method returns true it basically means that we found a loop in the objects structure and that we + already compared these objects. + + cmp object to check if it was already met in base objects path. + out object to check if it was already met in base objects path. + true if given objects are contained in the path and therefore were already compared. + + + Adds array item to the direct path. + + Adds array item to the direct path. See + . + + index in the array of the direct object to be compared. + + + Adds dictionary item to the direct path. + + Adds dictionary item to the direct path. See + . + + key in the dictionary to which corresponds direct object to be compared. + + + Adds offset item to the direct path. + + Adds offset item to the direct path. See + . + + offset to the specific byte in the stream that is compared. + + + Removes the last path item from the direct path. + + + + Gets local (or direct) path that denotes sequence of the path items from base object to the comparing + direct object. + + direct path to the comparing object. + + + + Gets indirect path which denotes sequence of the indirect references that were passed in comparing process + to get to the current base objects. + + indirect path to the current base objects. + + + + Method returns current base + + object in the cmp document. + + + current base + + object in the cmp document. + + + + + Method returns current base + + object in the out document. + + current base object in the out document. + + + Creates an xml node that describes a direct path stored in this ObjectPath instance. + xml document, to which this xml node will be added. + an xml node describing direct path. + + + + Method returns a string representation of the direct path stored in this + + instance. + + a string representation of the direct path. + + + + Method returns a hash code of this + + instance. + + + a int hash code of this + + instance. + + + + + Method returns true if this + + instance equals to the passed object. + + + true - if this + + instance equals to the passed object. + + + + + Direct path item (see + + , which describes transition to the + specific position in + . + + + + + Creates an instance of the + . + + + bytes offset to the specific position in + . + + + + + The bytes offset of the stream which defines specific position in the + + , to which transition + was performed. + + an integer defining bytes offset to the specific position in stream. + + + + Method returns current out + + object. + + + current out + + object. + + + + + Method returns current cmp + + object. + + + current cmp + + object. + + + + + Creates an xml node that describes this + + instance. + + xml document, to which this xml node will be added. + + an xml node describing this + + instance. + + + + + Method returns a string representation of this + + instance. + + + a string representation of this + + instance. + + + + + Method returns a hash code of this + + instance. + + + a int hash code of this + + instance. + + + + + Method returns true if this + + instance equals to the passed object. + + + true - if this + + instance equals to the passed object. + + + + + Class representing a page range, for instance a page range can contain pages + 5, then pages 10 through 15, then page 18, then page 21 and so on. + + + + + Constructs an empty + + instance. + + + + + Constructs a + + instance from a range in a string form, + for example: "1-12, 15, 45-66". + + + Constructs a + + instance from a range in a string form, + for example: "1-12, 15, 45-66". More advanced forms are also available, + for example: + - "3-" to indicate from page 3 to the last page + - "odd" for all odd pages + - "even" for all even pages + - "3- & odd" for all odd pages starting from page 3 + A complete example for pages 1 to 5, page 8 then odd pages starting from + page 9: "1-5, 8, odd & 9-". + + a String of page ranges + + + Adds any page range part to this page range. + + Adds any page range part to this page range. Users may define and plug in + custom implementations for behavior not found in the standard library. + + + a custom implementation of + + + this range, already modified + + + Adds a page sequence to the range. + the starting page number of the sequence + the finishing page number of the sequence + this range, already modified + + + Adds a single page to the range. + the page number to add + this range, already modified + + + Gets the list of pages that have been added to the range so far. + + number of pages of the document to get the pages, to list + only the pages eligible for this document. + + + the list containing page numbers added to the range matching this + document + + + + Checks if a given page is present in the range built so far. + the page number to check + + true if the page is present in this range, + false otherwise + + + + + + + + + + Inner interface for range parts definition + + + Class for range part containing a single page + + + + + + + + + + Class for range part containing a range of pages represented by a start + and an end page + + + + + + + + + + + Class for range part containing a range of pages for all pages after a + given start page + + + + + + + + + + Class for range part for all even or odd pages. + + Class for range part for all even or odd pages. The class contains only 2 + instances, one for odd pages and one for even pages. + + + + + + + + + + Class for range part based on several range parts. + + Class for range part based on several range parts. A 'and' is performed + between all conditions. This allows for example to configure odd pages + between page 19 and 25. + + + + + + + + + + This class is used to merge a number of existing documents into one. + + This class is used to merge a number of existing documents into one. By default, if source document + contains tags and outlines, they will be also copied to the destination document. + + the document into which source documents will be merged + + + This class is used to merge a number of existing documents into one. + the document into which source documents will be merged + + if true, then tags from the source document are copied even if destination document is not set as + tagged. Note, that if false, tag structure is still could be copied if the destination document + is explicitly marked as tagged with + + + + if true, then outlines from the source document are copied even if in destination document + outlines are not initialized. Note, that if false, outlines are still could be copied if the + destination document outlines were explicitly initialized with + + + + + + If set to true then passed to the + PdfMerger#merge + method source documents will be closed + immediately after merging specified pages into current document. + + + If set to true then passed to the + PdfMerger#merge + method source documents will be closed + immediately after merging specified pages into current document. If false - PdfDocuments are left open. + Default value - false. + + should be true to close pdf documents in merge method + + this + PdfMerger + instance + + + + This method merges pages from the source document to the current one. + + This method merges pages from the source document to the current one. + + If closeSourceDocuments flag is set to true (see + + ), + passed + PdfDocument + will be closed after pages are merged. + + See also + . + + - document, from which pages will be copied + - start page in the range of pages to be copied + - end (inclusive) page in the range to be copied + + this + PdfMerger + instance + + + + This method merges pages from the source document to the current one. + + This method merges pages from the source document to the current one. + + If closeSourceDocuments flag is set to true (see + + ), + passed + PdfDocument + will be closed after pages are merged. + + See also + . + + - document, from which pages will be copied + - List of numbers of pages which will be copied + + this + PdfMerger + instance + + + + Closes the current document. + + Closes the current document. + + It is a complete equivalent of calling + PdfDocument#close + on the PdfDocument + passed to the constructor of this PdfMerger instance. This means that it is enough to call + close either on passed PdfDocument or on this PdfMerger instance, but there is no need + to call them both. + + + + + This class can be used to count the number of bytes needed when copying + pages from an existing PDF into a newly created PDF. + + + + A map of the resources that are already taken into account + + + + Creates a PdfResourceCounter instance to be used to count the resources + needed for either a page (in this case pass a page dictionary) or the + trailer (root and info dictionary) of a PDF file. + + the object we want to examine + + + Processes an object. + + Processes an object. If the object is indirect, it is added to the + list of resources. If not, it is just processed. + + the object to process + + + + In case an object is an array, a dictionary or a stream, + we need to loop over the entries and process them one by one. + + the object to examine + + + Returns a map with the resources. + the resources + + + + Returns the resources needed for the object that was used to create + this PdfResourceCounter. + + + Returns the resources needed for the object that was used to create + this PdfResourceCounter. If you pass a Map with resources that were + already used by other objects, these objects will not be taken into + account. + + The resources that can be excluded when counting the bytes. + The number of bytes needed for an object. + + + Creates a new instance of PdfSplitter class. + the document to be split. + + + + Sets the + + that will be used during + + creation. + + meta info to set + + + If original document is tagged, then by default all resultant document will also be tagged. + + If original document is tagged, then by default all resultant document will also be tagged. + This could be changed with this flag - if set to false, resultant documents will be not tagged, even if + original document is tagged. + + defines whether the resultant documents need to be tagged + + + If original document has outlines, then by default all resultant document will also have outlines. + + + If original document has outlines, then by default all resultant document will also have outlines. + This could be changed with this flag - if set to false, resultant documents won't contain outlines, even if + original document had them. + + defines whether the resultant documents will preserve outlines or not + + + Splits the document basing on the given size specified in bytes. + Preferred size specified in bytes for splitting. + + The documents which the source document was split into. + Be warned that these documents are not closed. + + + + Splits the document by page numbers. + + the numbers of pages from which another document is to be started. + If the first element is not 1, then 1 is implied (i.e. the first split document will start from page 1 in any case). + + + the event listener which is called when another document is ready. + You can close this document in this listener, for instance. + + + + Splits the document by page numbers. + + the numbers of pages from which another document is to be started. + If the first element is not 1, then 1 is implied (i.e. the first split document will start from page 1 in any case). + + the list of resultant documents. By warned that they are not closed. + + + Splits a document into smaller documents with no more than @pageCount pages each. + the biggest possible number of pages in a split document. + + the event listener which is called when another document is ready. + You can close this document in this listener, for instance. + + + + Splits a document into smaller documents with no more than @pageCount pages each. + the biggest possible number of pages in a split document. + the list of resultant documents. By warned that they are not closed. + + + Extracts the specified page ranges from a document. + the list of page ranges for each of the resultant document. + + the list of the resultant documents for each of the specified page range. + Be warned that these documents are not closed. + + + + Extracts the specified page ranges from a document. + the page range to be extracted from the document. + + the resultant document containing the pages specified by the provided page range. + Be warned that this document is not closed. + + + + This method is called when another split document is to be created. + + This method is called when another split document is to be created. + You can override this method and return your own + + depending on your needs. + + + the page range of the original document to be included + in the document being created now. + + the PdfWriter instance for the document which is being created. + + + + Split a document by outline title (bookmark name), find outline by name + and places the entire hierarchy in a separate document ( outlines and pages ) . + + list of outline titles . + + Collection of + + which contains split parts of a document + + + + the next element in the entire hierarchy + + + + Converts a tagged PDF document into an XML file. + + + + Constructs a + + via a given + . + + the document to read tag structure from + + + Checks if a character value should be escaped/unescaped. + a character value + true if it's OK to escape or unescape this value + + + Converts the current tag structure into an XML file with default encoding (UTF-8). + the output stream to save XML file to + + + Converts the current tag structure into an XML file with provided encoding. + the output stream to save XML file to + the charset of the resultant XML file + + + Sets the name of the root tag of the resultant XML file + the name of the root tag + this object + + + + NOTE: copied from itext5 XMLUtils class + Escapes a string with the appropriated XML codes. + + the string to be escaped + codes above 127 will always be escaped with &#nn; if true + the escaped string + + + + Utility class for creating XML processors. + + + + + Specifies an implementation that will be used to create the xml parsers in + the . Pass to use default safe factory + that should prevent XML attacks like XML bombs and XXE attacks. This will definitely throw an exception if + any DTD object is present in the XML. If you need the special XML parser creating, you can declare your + own implementation and pass it to this method. + + factory to be used to create xml parsers. If the passed factory is null, + the will be used + + + + Creates the instance of . The default implementation is configured to prevent + possible XML attacks (see ). But you can use + to set your specific factory for creating xml parsers. + + the stream that contains the XML data. + an object that is used to read the XML data in the stream. + + + + Creates the instance of . The default implementation is configured to prevent + possible XML attacks (see ). But you can use + to set your specific factory for creating xml parsers. + + the stream that contains the XML data. + the context information required to parse the XML fragment. + an object that is used to read the XML data in the stream. + + + + Creates the instance of . The default implementation is configured to prevent + possible XML attacks (see ). But you can use + to set your specific factory for creating xml parsers. + + the text reader from which to read the XML data. + an object that is used to read the XML data in the stream. + + + + A wrapper for an Encoding to suppress the preamble. + + + + + A utility class to perform base64 encoding and decoding as specified + in RFC-1521. + + + A utility class to perform base64 encoding and decoding as specified + in RFC-1521. See also RFC 1421. + + $Revision: 1.4 $ + + + marker for invalid bytes + + + marker for accepted whitespace bytes + + + marker for an equal symbol + + + Encode the given byte[]. + the source string. + the base64-encoded data. + + + Encode the given byte[]. + the source string. + + a linefeed is added after linefeed characters; + must be dividable by four; 0 means no linefeeds + + the base64-encoded data. + + + Encode the given string. + the source string. + the base64-encoded string. + + + Decode the given byte[]. + the base64-encoded data. + the decoded data. + + + Decode the given string. + the base64-encoded string. + the decoded string. + + + Byte buffer container including length of valid data. + 11.10.2006 + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + Loads the stream into a buffer. + an InputStream + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + Appends a byte to the buffer. + a byte + + + Appends a part of byte array to the buffer. + + Appends a part of byte array to the buffer. Elements on positions + + through + offset+len-1 + of provided array will be copied + + a byte array + is a position of the first element to copy + the number of array elements to be added + + + Append a byte array to the buffer + a byte array + + + Append another buffer to this buffer. + another ByteBuffer + + + Detects the encoding of the byte buffer, stores and returns it. + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + Note: UTF-32 flavors are not supported by Java, the XML-parser will complain. + + Returns the encoding string. + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + + An OutputStream that counts the written bytes. + + @since 08.11.2006 + + + + + the decorated output stream + + + + the byte counter + + + + Constructor with providing the output stream to decorate. + an OutputStream + + + the bytesWritten + + + + Counts the written bytes. + + + + + Counts the written bytes. + + + + + Counts the written bytes. + + + + 22.08.2006 + + + the state of the automaton + + + the result of the escaping sequence + + + count the digits of the sequence + + + The look-ahead size is 6 at maximum (&#xAB;) + + a Reader + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + + 16.02.2006 + + + Hides public constructor + + + Converts an ISO 8601 string to an XMPDateTime. + + Converts an ISO 8601 string to an XMPDateTime. + Parse a date according to ISO 8601 and + http://www.w3.org/TR/NOTE-datetime: +
      +
    • YYYY
    • +
    • YYYY-MM
    • +
    • YYYY-MM-DD
    • +
    • YYYY-MM-DDThh:mmTZD
    • +
    • YYYY-MM-DDThh:mm:ssTZD
    • +
    • YYYY-MM-DDThh:mm:ss.sTZD
    • +
    + Data fields: +
      +
    • YYYY = four-digit year
    • +
    • MM = two-digit month (01=January, etc.)
    • +
    • DD = two-digit day of month (01 through 31)
    • +
    • hh = two digits of hour (00 through 23)
    • +
    • mm = two digits of minute (00 through 59)
    • +
    • ss = two digits of second (00 through 59)
    • +
    • s = one or more digits representing a decimal fraction of a second
    • +
    • TZD = time zone designator (Z or +hh:mm or -hh:mm)
    • +
    + Note that ISO 8601 does not seem to allow years less than 1000 or greater + than 9999. We allow any year, even negative ones. The year is formatted + as "%.4d". +

    + Note: Tolerate missing TZD, assume is UTC. Photoshop 8 writes + dates like this for exif:GPSTimeStamp.
    + Note: DOES NOT APPLY ANYMORE. + Tolerate missing date portion, in case someone foolishly + writes a time-only value that way. +

    +
    + a date string that is ISO 8601 conform. + Returns a XMPDateTime. +
    + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + + + Converts a XMPDateTime into an ISO 8601 string. + + Converts a XMPDateTime into an ISO 8601 string. + Format a date according to ISO 8601 and http://www.w3.org/TR/NOTE-datetime: +
      +
    • YYYY
    • +
    • YYYY-MM
    • +
    • YYYY-MM-DD
    • +
    • YYYY-MM-DDThh:mmTZD
    • +
    • YYYY-MM-DDThh:mm:ssTZD
    • +
    • YYYY-MM-DDThh:mm:ss.sTZD
    • +
    + Data fields: +
      +
    • YYYY = four-digit year
    • +
    • MM = two-digit month (01=January, etc.)
    • +
    • DD = two-digit day of month (01 through 31)
    • +
    • hh = two digits of hour (00 through 23)
    • +
    • mm = two digits of minute (00 through 59)
    • +
    • ss = two digits of second (00 through 59)
    • +
    • s = one or more digits representing a decimal fraction of a second
    • +
    • TZD = time zone designator (Z or +hh:mm or -hh:mm)
    • +
    +

    + Note: ISO 8601 does not seem to allow years less than 1000 or greater than 9999. + We allow any year, even negative ones. The year is formatted as "%.4d".

    + Note: Fix for bug 1269463 (silently fix out of range values) included in parsing. + The quasi-bogus "time only" values from Photoshop CS are not supported. +

    +
    + an XMPDateTime-object. + Returns an ISO 8601 string. +
    + + 22.08.2006 + + + initializes the parser container + + + Returns the length of the input. + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + Skips the next char. + + + Returns the current position. + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + + the max value of the number to return + Returns the parsed integer. + + + 12.10.2006 + + + Private constructor + + + A converter that processes a byte buffer containing a mix of UTF8 and Latin-1/Cp1252 chars. + + A converter that processes a byte buffer containing a mix of UTF8 and Latin-1/Cp1252 chars. + The result is a buffer where those chars have been converted to UTF-8; + that means it contains only valid UTF-8 chars. + + Explanation of the processing: First the encoding of the buffer is detected looking + at the first four bytes (that works only if the buffer starts with an ASCII-char, + like xmls '<'). UTF-16/32 flavours do not require further processing. + + In the case, UTF-8 is detected, it assumes wrong UTF8 chars to be a sequence of + Latin-1/Cp1252 encoded bytes and converts the chars to their corresponding UTF-8 byte + sequence. + + The 0x80..0x9F range is undefined in Latin-1, but is defined in Windows code + page 1252. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are formally undefined + by Windows 1252. These are in XML's RestrictedChar set, so we map them to a + space. + + The official Latin-1 characters in the range 0xA0..0xFF are converted into + the Unicode Latin Supplement range U+00A0 - U+00FF. + + Example: If an Euro-symbol (€) appears in the byte buffer (0xE2, 0x82, 0xAC), + it will be left as is. But if only the first two bytes are appearing, + followed by an ASCII char a (0xE2 - 0x82 - 0x41), it will be converted to + 0xC3, 0xA2 (â) - 0xE2, 0x80, 0x9A (‚) - 0x41 (a). + + a byte buffer contain + Returns a new buffer containing valid UTF-8 + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + 11.08.2006 + + + private constructor + + + Asserts that an array name is set. + an array name + + + Asserts that a property name is set. + a property name or path + + + Asserts that a schema namespace is set. + a schema namespace + + + Asserts that a prefix is set. + a prefix + + + Asserts that a specific language is set. + a specific lang + + + Asserts that a struct name is set. + a struct name + + + Asserts that any string parameter is set. + any string parameter + + + + Asserts that the xmp object is of this implemention + ( + + ). + + the XMP object + + + Parser for "normal" XML serialisation of RDF. + 14.07.2006 + + + Start of coreSyntaxTerms. + + + End of coreSyntaxTerms + + + Start of additions for syntax Terms. + + + End of of additions for syntaxTerms. + + + Start of oldTerms. + + + End of oldTerms. + + + ! Yes, the syntax terms include the core terms. + + + this prefix is used for default namespaces + + + The main parsing method. + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + Returns an XMP metadata object (not normalized) + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + + + + 7.2.10 nodeElementList
    + ws* ( nodeElement ws* ) + Note: this method is only called from the rdf:RDF-node (top level) +
    + the xmp metadata object that is generated + the parent xmp node + the top-level xml node +
    + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + Process the attribute list for an RDF node element. + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* ) + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + + + + 7.2.14 propertyElt + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. + + + 7.2.14 propertyElt + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attibute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + Add a leaf node with the text value and qualifiers for the attributes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + Add a new struct node with a qualifier for the possible rdf:ID attribute. + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + + + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( + idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( + idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() +
    + <ns:Prop1/> <!-- a simple property with an empty value -->
    + <ns:Prop2 rdf:resource="http: *www.adobe.com/"/> <!-- a URI value -->
    + <ns:Prop3 rdf:value="..." ns:Qual="..."/> <!-- a simple qualified property -->
    + <ns:Prop4 ns:Field1="..." ns:Field2="..."/> <!-- a struct with simple fields -->
    + An emptyPropertyElt is an element with no contained content, just a possibly empty set of + attributes. + An emptyPropertyElt is an element with no contained content, just a possibly empty set of + attributes. An emptyPropertyElt can represent three special cases of simple XMP properties: a + simple property with an empty value (ns:Prop1), a simple property whose value is a URI + (ns:Prop2), or a simple property with simple qualifiers (ns:Prop3). + An emptyPropertyElt can also represent an XMP struct whose fields are all simple and + unqualified (ns:Prop4). + + It is an error to use both rdf:value and rdf:resource - that can lead to invalid RDF in the + verbose form written using a literalPropertyElt. + + The XMP mapping for an emptyPropertyElt is a bit different from generic RDF, partly for + design reasons and partly for historical reasons. The XMP mapping rules are: + + If there is an rdf:value attribute then this is a simple property + with a text value. + All other attributes are qualifiers. + If there is an rdf:resource attribute then this is a simple property + with a URI value. + All other attributes are qualifiers. + If there are no attributes other than xml:lang, rdf:ID, or rdf:nodeID + then this is a simple + property with an empty value. + Otherwise this is a struct, the attributes other than xml:lang, rdf:ID, + or rdf:nodeID are fields. + +
    + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node +
    + + Adds a child node. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + + + Adds a qualifier node. + the parent xmp node + + the name of the qualifier which has to be + QName including the default prefix + + the value of the qualifier + Returns the newly created child node. + + + The parent is an RDF pseudo-struct containing an rdf:value field. + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + + + Checks if the node is a white space. + an XML-node + + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + 7.2.4 oldTerms
    + rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID +
    + the term id + Returns true if the term is an old term. +
    + + + 7.2.2 coreSyntaxTerms
    + rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | + rdf:datatype +
    + the term id + Return true if the term is a core syntax term +
    + + Determines the ID for a certain RDF Term. + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + + an XML node + Returns the term ID. + + + 09.11.2006 + + + XML namespace prefix + + + XML localname + + + Splits a qname into prefix and localname. + a QName + + + Constructor that initializes the fields + the prefix + the name + + + Returns whether the QName has a prefix. + + + the localName + + + the prefix + + + Utility functions for the XMPToolkit implementation. + 06.06.2006 + + + segments of a UUID + + + length of a UUID + + + table of XML name start chars (<= 0xFF) + + + table of XML name chars (<= 0xFF) + + + Private constructor + + + + Normalize an xml:lang value so that comparisons are effectively case + insensitive as required by RFC 3066 (which superceeds RFC 1766). + + + Normalize an xml:lang value so that comparisons are effectively case + insensitive as required by RFC 3066 (which superceeds RFC 1766). The + normalization rules: + + The primary subtag is lower case, the suggested practice of ISO 639. + + All 2 letter secondary subtags are upper case, the suggested + practice of ISO 3166. + + All other subtags are lower case. + + + + raw value + Returns the normalized value. + + + Split the name and value parts for field and qualifier selectors. + + Split the name and value parts for field and qualifier selectors. Following selectors are taken into account: + + [qualName="value"] - An element in an array of structs, chosen by a + field value. + + [?qualName="value"] - An element in an array, chosen by a qualifier + value. + + + The value portion is a string quoted by ''' or '"'. The value may contain + any character including a doubled quoting character. The value may be + empty. Note: It is assumed that the expression is formal + correct + + the selector + + Returns an array where the first entry contains the name and the + second the value. + + + + a schema namespace + an XMP Property + + Returns true if the property is defined as &quot;Internal + Property&quot;, see XMP Specification. + + + + + Check some requirements for an UUID: + + Length of the UUID is 32 + + The Delimiter count is 4 and all the 4 delimiter are on their right + position (8,13,18,23) + + + + uuid to test + true - this is a well formed UUID, false - UUID has not the expected format + + + Simple check for valid XMLNames. + + Simple check for valid XMLNames. Within ASCII range
    + ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6]
    + are accepted, above all characters (which is not entirely + correct according to the XML Spec. +
    + an XML Name + Return true if the name is correct. +
    + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + These are XML names, except that they must not contain a colon. + + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + Serializes the node value in XML encoding. + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes.
    + Note: The attribute is always limited by quotes, + thats why &apos; is never serialized.
    + Note: Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. +
    + a string + flag if string is attribute value (need to additional escape quotes) + Decides if LF, CR and TAB are escaped. + Returns the value ready for XML output. +
    + + Replaces the ASCII control chars with a space. + a node value + Returns the cleaned up value + + + Simple check if a character is a valid XML start name char. + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + + Initializes the char tables for the chars 0x00-0xFF for later use, + according to the XML 1.1 specification + http://www.w3.org/TR/xml11 + + + + The implementation of XMPDateTime. + + The implementation of XMPDateTime. Internally a calendar is used + plus an additional nano seconds field, because Calendar supports only milli + seconds. The nanoSeconds convers only the resolution beyond a milli second. + + 16.02.2006 + + + Use NO time zone as default + + + The nano seconds take micro and nano seconds, while the milli seconds are in the calendar. + + + + + Creates an XMPDateTime-instance with the current time in the default time + zone. + + + + + Creates an XMPDateTime-instance from a calendar. + + a Calendar + + + + Creates an XMPDateTime-instance from + a Date and a TimeZoneInfo. + + a date describing an absolute point in time + a TimeZoneInfo how to interpret the date + + + Creates an XMPDateTime-instance from an ISO 8601 string. + an ISO 8601 string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns the ISO string representation. + + + The XMPIterator implementation. + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + 29.06.2006 + + + stores the iterator options + + + the base namespace of the property path, will be changed during the iteration + + + + flag to indicate that skipSiblings() has been called. + + + flag to indicate that skipSiblings() has been called. + + + the node iterator doing the work + + + Constructor with optionsl initial values. + + Constructor with optionsl initial values. If propName is provided, + schemaNS has also be provided. + + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is redurce to this property within the schemaNS + + + advanced iteration options, see + + + + + + + + + + + + + + + + + Exposes the options for inner class. + + + Exposes the options for inner class. + + + sets the baseNS from the inner class. + + + The XMPIterator implementation. + + The XMPIterator implementation. + It first returns the node itself, then recursivly the children and qualifier of the node. + + 29.06.2006 + + + + iteration state + + + + iteration state + + + + iteration state + + + + the recursively accumulated path + + + + the currently visited node + + + + the iterator that goes through the children and qualifier list + + + + index of node with parent, only interesting for arrays + + + + the cached PropertyInfo to return + + + + the state of the iteration + + + + the iterator for each child + + + + Constructor for the node iterator. + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + the childrenIterator + + + Returns the returnProperty. + + + + Prepares the next node to return if not already done. + + + + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + the node that will be added to the path. + the path up to this node. + the current array index if an arrey is traversed + Returns the updated path. + + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + @since 02.10.2006 + + + + + Constructor + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + + Prepares the next node to return if not already done. + + + + + + Implementation for + + . + + 17.02.2006 + + + Property values are Strings by default + + + root of the metadata tree + + + the xpacket processing instructions content + + + Constructor for an empty metadata object. + + + Constructor for a cloned metadata tree. + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + + Returns a property, but the result value can be requested. + + Returns a property, but the result value can be requested. It can be one + of + + , + + , + + , + + , + + , + + , + + , + + . + + + a schema namespace + a property name or path + the type of the value, see VALUE_... + Returns an XMPProperty + Collects any exception that occurs. + + + Returns a property, but the result value can be requested. + + a schema namespace + a property name or path + the type of the value, see VALUE_... + + Returns the node value as an object according to the + valueType. + + Collects any exception that occurs. + + + Sets the packetHeader attributes, only used by the parser. + the processing instruction content + + + Performs a deep clone of the XMPMeta-object + + + + Returns the root node of the XMP tree. + + + Locate or create the item node and set the value. + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + array item cannot be set + + + + The internals for setProperty() and related calls, used after the node is + found or created. + + the newly created node + the node value, can be null + options for the new node, must not be null. + + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + an int indicating the value type + the node containing the value + Returns a literal value for the node. + + if the value of propNode is null or empty or the conversion fails. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. After the parsing several normalisations + are applied to the XMPTree. + + 01.02.2006 + + + Hidden constructor, initialises the SAX parser handler. + + + + Parses the input source into an XMP metadata object, including + de-aliasing and normalisation. + + + the input can be an InputStream, a String or + a byte buffer containing the XMP packet. + + the parse options + Returns the resulting XMP metadata object + + + Parses the raw XML metadata packet considering the parsing options. + + Parses the raw XML metadata packet considering the parsing options. + Latin-1/ISO-8859-1 can be accepted when the input is a byte stream + (some old toolkits versions such packets). The stream is + then wrapped in another stream that converts Latin-1 to UTF-8. + + If control characters shall be fixed, a reader is used that fixes the chars to spaces + (if the input is a byte stream is has to be read as character stream). + + + Both options reduce the performance of the parser. + + + + the input can be an Stream, a String or + a byte buffer containing the XMP packet. + + the parsing options + Returns the parsed XML document or an exception. + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an InputStream + the parsing options + Returns an XML DOM-Document. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + + + + Parses XML from a + + , + fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + + + Find the XML node that is the root of the XMP data tree. + + Find the XML node that is the root of the XMP data tree. Generally this + will be an outer node, but it could be anywhere if a general XML document + is parsed (e.g. SVG). The XML parser counted all rdf:RDF and + pxmp:XMP_Packet nodes, and kept a pointer to the last one. If there is + more than one possible root use PickBestRoot to choose among them. + + If there is a root node, try to extract the version of the previous XMP + toolkit. + + Pick the first x:xmpmeta among multiple root candidates. If there aren't + any, pick the first bare rdf:RDF if that is allowed. The returned root is + the rdf:RDF child if an x:xmpmeta element was chosen. The search is + breadth first, so a higher level candiate is chosen over a lower level + one that was textually earlier in the serialized XML. + + the root of the xml document + + flag if the xmpmeta-tag is still required, might be set + initially to true, if the parse option "REQUIRE_XMP_META" is set + + The result array that is filled during the recursive process. + + + Returns an array that contains the result or null. + The array contains: +
      +
    • [0] - the rdf:RDF-node
    • +
    • [1] - an object that is either XMP_RDF or XMP_PLAIN (the latter is decrecated)
    • +
    • [2] - the body text of the xpacket-instruction.
    • +
    +
    +
    + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + Possible improvements: + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + 21.02.2006 + + + name of the node, contains different information depending of the node kind + + + + value of the node, contains different information depending of the node kind + + + + link to the parent node + + + list of child nodes, lazy initialized + + + list of qualifier of the node, lazy initialized + + + options describing the kind of the node + + + flag if the node is implicitly created + + + flag if the node has aliases + + + flag if the node is an alias + + + flag if the node has an "rdf:value" child node. + + + Creates an XMPNode with initial values. + the name of the node + the value of the node + the options of the node + + + Constructor for the node without value. + the name of the node + the options of the node + + + Resets the node. + + + Returns the parent node. + + + an index [1..size] + Returns the child with the requested index. + + + Adds a node as child to this node. + an XMPNode + + + Adds a node as child to this node. + + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + + an XMPNode + + + Replaces a node with another one. + + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + + the replacement XMPNode + + + Removes a child at the requested index. + the index to remove [1..size] + + + Removes a child node. + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + Removes all children from the node. + + + Returns the number of children without neccessarily creating a list. + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + + an index [1..size] + Returns the qualifier with the requested index. + + + Returns the number of qualifier without neccessarily creating a list. + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + Removes all qualifiers from the node and sets the options appropriate. + + + qualifier node name to look for + + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + + Returns whether the node has children. + + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + Returns whether the node has qualifier attached. + + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + Performs a deep clone of the node and the complete subtree. + + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + + the node to add the cloned subtree + + + Renders this node and the tree unter this node in a human readable form. + + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + + + Returns the name. + + + The name to set. + + + Returns the value. + + + The value to set. + + + Returns the options. + + + Updates the options of the node. + the options to set. + + + Returns the implicit flag + + + Sets the implicit node flag + + + Returns if the node contains aliases (applies only to schema nodes) + + + sets the flag that the node contains aliases + + + Returns if the node contains aliases (applies only to schema nodes) + + + sets the flag that the node is an alias + + + the hasValueChild + + + the hasValueChild to set + + + + Sorts the complete datamodel according to the rules. + + + Sorts the complete datamodel according to the following rules: +
      +
    • Nodes at one level are sorted by name, that is prefix + local name
    • +
    • Starting at the root node the children and qualifier are sorted recursively, + which the following exceptions.
    • +
    • Sorting will not be used for arrays.
    • +
    • Within qualifier "xml:lang" and/or "rdf:type" stay at the top in that order, + all others are sorted.
    • +
    +
    +
    + + Dumps this node and its qualifier and children recursively. + + Dumps this node and its qualifier and children recursively. + Note: It creats empty options on every node. + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + Returns whether this node is a language qualifier. + + + Returns whether this node is a type qualifier. + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + + Sets the parent node, this is solely done by addChild(...) + and addQualifier(). + + Sets the parent node. + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + Checks that a node name is not existing on the same level, except for array items. + + the node name to check + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + + + Utilities for XMPNode. + Aug 28, 2006 + + + Private Constructor + + + Find or create a schema node if createNodes is false and + the root of the xmp tree. + a namespace + + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + + + + Find or create a schema node if createNodes is true. + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + + + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + + + + Find or create a child node under a given parent node. + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + the parent node + the node name to find + flag, if new nodes shall be created. + Returns the found or created node or null. + + + Follow an expanded path expression to find or create a node. + the node to begin the search. + the complete xpath + + flag if nodes shall be created + (when called by setProperty()) + + + the options for the created leaf nodes (only when + createNodes == true). + + Returns the node if found or created or null. + + + Deletes the the given node and its children from its parent. + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + + the top-most node to delete. + + + This is setting the value of a leaf node. + an XMPNode + a value + + + Verifies the PropertyOptions for consistancy and updates them as needed. + + + Verifies the PropertyOptions for consistancy and updates them as needed. + If options are null they are created with default values. + + the PropertyOptions + the node value to set + Returns the updated options. + + + + Converts the node value to String, apply special conversions for defined + types in XMP. + + the node value to set + Returns the String representation of the node value. + + + + After processing by ExpandXPath, a step can be of certain forms described in documentation. + + + After processing by ExpandXPath, a step can be of these forms: +
      +
    • qualName - A top level property or struct field.
    • +
    • [index] - An element of an array.
    • +
    • [last()] - The last element of an array.
    • +
    • [qualName="value"] - An element in an array of structs, chosen by a field value.
    • +
    • [?qualName="value"] - An element in an array, chosen by a qualifier value.
    • +
    • ?qualName - A general qualifier.
    • +
    + Find the appropriate child node, resolving aliases, and optionally creating nodes. +
    + the node to start to start from + the xpath segment + + returns the found or created XMPPath node +
    + + Find or create a qualifier node under a given parent node. + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + XMPPath step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + + Returns the index of th + + + Make sure the x-default item is first. + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + an alt text array node + + + See if an array is an alt-text array. + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + the array node to check if its an alt-text array + + + Appends a language item to an alt text array. + the language array + the language of the item + the content of the item + + + + Look for an exact match with the specific language. + + +
      +
    • Look for an exact match with the specific language.
    • +
    • If a generic language is given, look for partial matches.
    • +
    • Look for an "x-default"-item.
    • +
    • Choose the first item.
    • +
    +
    + the alt text array node + the generic language + the specific language + + Returns the kind of match as an Integer and the found node in an + array. + +
    + + Looks for the appropriate language item in a text alternative array.item + + an array node + the requested language + Returns the index if the language has been found, -1 otherwise. + + + Aug 18, 2006 + + + caches the correct dc-property array forms + + + Hidden constructor + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + + + Visit all schemas to do general fixes and handle special cases. + the metadata object implementation + + + + Undo the denormalization performed by the XMP used in Acrobat 5.
    + If a Dublin Core array had only one item, it was serialized as a simple + property. +
    + + Undo the denormalization performed by the XMP used in Acrobat 5.
    + If a Dublin Core array had only one item, it was serialized as a simple + property.
    + The xml:lang attribute was dropped from an + alt-text item if the language was x-default. +
    + the DC schema node +
    + + Make sure that the array is well-formed AltText. + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + + the property node of the array to repair. + + + Visit all of the top level nodes looking for aliases. + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + + + + Moves an alias node of array form to another schema into an array + the node to be moved + the base array for the array item + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + + the root of the metadata tree + + + The outermost call is special. + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: +
    +            1. If there is no dc:rights array, or an empty array -
    +            Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright.
    +            2. If there is a dc:rights array but it has no x-default item -
    +            Create an x-default item as a copy of the first item then apply rule #3.
    +            3. If there is a dc:rights array with an x-default item,
    +            Look for a double linefeed in the value.
    +            A. If no double linefeed, compare the x-default value to the xmpDM:copyright value.
    +            A1. If they match then leave the x-default value alone.
    +            A2. Otherwise, append a double linefeed and
    +            the xmpDM:copyright value to the x-default value.
    +            B. If there is a double linefeed, compare the trailing text to the xmpDM:copyright value.
    +            B1. If they match then leave the x-default value alone.
    +            B2. Otherwise, replace the trailing x-default text with the xmpDM:copyright value.
    +            4. In all cases, delete the xmpDM:copyright property.
    +            
    +
    + the metadata object + the "dm:copyright"-property +
    + + + Initializes the map that contains the known arrays, that are fixed by + + . + + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. There + is only one single instance used by the toolkit. + + 27.01.2006 + + + a map from a namespace URI to its registered prefix + + + a map from a prefix to the associated namespace URI + + + a map of all registered aliases. + + a map of all registered aliases. + The map is a relationship from a qname to an XMPAliasInfo-object. + + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + + + + + + + + + + + + + + + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + + + + + + + + + + + + Associates an alias name with an actual name. + + Associates an alias name with an actual name. + + Define a alias mapping from one namespace/property to another. Both + property names must be simple names. An alias can be a direct mapping, + where the alias and actual have the same data type. It is also possible + to map a simple alias to an item in an array. This can either be to the + first item in the array, or to the 'x-default' item in an alt-text array. + Multiple alias names may map to the same actual, as long as the forms + match. It is a no-op to reregister an alias in an identical fashion. + Note: This method is not locking because only called by registerStandardAliases + which is only called by the constructor. + Note2: The method is only package-private so that it can be tested with unittests + + + + The namespace URI for the alias. Must not be null or the empty + string. + + + The name of the alias. Must be a simple name, not null or the + empty string and not a general path expression. + + + The namespace URI for the actual. Must not be null or the + empty string. + + + The name of the actual. Must be a simple name, not null or the + empty string and not a general path expression. + + + Provides options for aliases for simple aliases to array + items. This is needed to know what kind of array to create if + set for the first time via the simple alias. Pass + XMP_NoOptions, the default value, for all + direct aliases regardless of whether the actual data type is + an array or not (see + + ). + + + + + + + + + + + + + + + + + + + Register the standard aliases. + + Register the standard aliases. + Note: This method is not lock because only called by the constructor. + + + + + Return a read only wrapper to an existing dictionary. + Any change to the underlying dictionary will be + propagated to the read-only wrapper. + + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + 11.07.2006 + + + Static method to serialize the metadata object. + + Static method to serialize the metadata object. For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so thats its possible to + serialialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to serialize to + serialization options, can be null for default. + + if serialization failed + + + Serializes an XMPMeta-object as RDF into a string. + + Serializes an XMPMeta-object as RDF into a string. + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + + Options to control the serialization (see + + ). + + Returns a string containing the serialized RDF. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a byte buffer. + a metadata implementation object + + Options to control the serialization (see + + ). + + Returns a byte buffer containing the serialized RDF. + on serialization errors. + + + Serializes the XMPMeta-object using the standard RDF serialization format. + + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + + 11.07.2006 + + + default padding + + + The w/r is missing inbetween + + + a set of all rdf attribute qualifier + + + the metadata object to be serialized. + + + the output stream to serialize to + + + this writer is used to do the actual serialization + + + the stored serialization options + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + The actual serialization. + the metadata object to be serialized + outputStream the output stream to serialize to + the serialization options + + + Calculates the padding according to the options and write it to the stream. + + the length of the tail string + + + Checks if the supplied options are consistent. + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + + + + Serializes the metadata in pretty-printed manner. + indent level + + + Serializes the metadata in compact manner. + indent level to start with + + + Write each of the parent's simple unqualified properties as an attribute. + + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns bwlow ignore attribute qualifiers such as + xml:lang, they don't affect the output form. +
    +
    +            <ns:UnqualifiedStructProperty-1
    +            ... The fields as attributes, if all are simple and unqualified
    +            />
    +            <ns:UnqualifiedStructProperty-2 rdf:parseType="Resource">
    +            ... The fields as elements, if none are simple and unqualified
    +            </ns:UnqualifiedStructProperty-2>
    +            <ns:UnqualifiedStructProperty-3>
    +            <rdf:Description
    +            ... The simple and unqualified fields as attributes
    +            >
    +            ... The compound or qualified fields as elements
    +            </rdf:Description>
    +            </ns:UnqualifiedStructProperty-3>
    +            <ns:UnqualifiedArrayProperty>
    +            <rdf:Bag> or Seq or Alt
    +            ... Array items as rdf:li elements, same forms as top level properties
    +            </rdf:Bag>
    +            </ns:UnqualifiedArrayProperty>
    +            <ns:QualifiedProperty rdf:parseType="Resource">
    +            <rdf:value> ... Property "value"
    +            following the unqualified forms ... </rdf:value>
    +            ... Qualifiers looking like named struct fields
    +            </ns:QualifiedProperty>
    +            
    +
    + *** Consider numbered array items, but has compatibility problems. + Consider qualified form with rdf:Description and attributes. +
    + the parent node + the current indent level +
    + + Serializes a simple property. + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + + + Serializes an array property. + an XMPNode + the current indent level + + + Serializes a struct property. + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + + + + Serializes one schema with all contained properties in pretty-printed + manner.
    + Each schema's properties are written to a single + rdf:Description element. +
    + + Serializes one schema with all contained properties in pretty-printed + manner.
    + Each schema's properties are written to a single + rdf:Description element. All of the necessary namespaces are declared in + the rdf:Description element. The baseIndent is the base level for the + entire serialization, that of the x:xmpmeta element. An xml:lang + qualifier is written as an attribute of the property start tag, not by + itself forcing the qualified property form. +
    +
    +            <rdf:Description rdf:about="TreeName" xmlns:ns="URI" ... >
    +            ... The actual properties of the schema, see SerializePrettyRDFProperty
    +            <!-- ns1:Alias is aliased to ns2:Actual -->  ... If alias comments are wanted
    +            </rdf:Description>
    +            
    +
    +
    + a schema node + +
    + + Writes all used namespaces of the subtree in node to the output. + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursivly traversed. + + the root node of the subtree + a set containing currently used prefixes + the current indent level + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + + the a namespace + a set containing currently used prefixes + the current indent level + + + Start the outer rdf:Description element, including all needed xmlns attributes. + + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + + + Write the </rdf:Description> end tag. + + + Recursively handles the "value" for a node. + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. +
    +
    +            <ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty>
    +            <ns:UnqualifiedStructProperty> (If no rdf:resource qualifier)
    +            <rdf:Description>
    +            ... Fields, same forms as top level properties
    +            </rdf:Description>
    +            </ns:UnqualifiedStructProperty>
    +            <ns:ResourceStructProperty rdf:resource="URI"
    +            ... Fields as attributes
    +            >
    +            <ns:UnqualifiedArrayProperty>
    +            <rdf:Bag> or Seq or Alt
    +            ... Array items as rdf:li elements, same forms as top level properties
    +            </rdf:Bag>
    +            </ns:UnqualifiedArrayProperty>
    +            <ns:QualifiedProperty>
    +            <rdf:Description>
    +            <rdf:value> ... Property "value" following the unqualified
    +            forms ... </rdf:value>
    +            ... Qualifiers looking like named struct fields
    +            </rdf:Description>
    +            </ns:QualifiedProperty>
    +            
    +
    +
    + the property node + property shall be rendered as attribute rather than tag + + + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + + the current indent level +
    + + Writes the array start and end tags. + an array node + flag if its the start or end tag + the current indent level + + + Serializes the node value in XML encoding. + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + A node can be serialized as RDF-Attribute, if it meets the following conditions: +
      +
    • is not array item
    • +
    • don't has qualifier
    • +
    • is no URI
    • +
    • is no composite property
    • +
    +
    + an XMPNode + Returns true if the node serialized as RDF-Attribute +
    + + Writes indents and automatically includes the baseindend from the options. + + number of indents to write + + + Writes a char to the output. + a char + + + Writes a String to the output. + a String + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + Writes a newline according to the options. + + + 11.08.2006 + + + Private constructor, as + + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + + + + see + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + + + Utility to find or create the array used by separateArrayItems(). + + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + + + + The XMP object containing the properties to be removed. + + Optional schema namespace URI for the properties to be + removed. + + Optional path expression for the property to be removed. + + Option flag to control the deletion: do internal properties in + addition to external properties. + + + Option flag to control the deletion: Include aliases in the + "named schema" case above. + + + + + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + + Replace the values of existing properties. + Delete destination values if source property is empty. + + + + + Remove all schema children according to the flag + doAllProperties. + + + Remove all schema children according to the flag + doAllProperties. Empty schemas are automatically remove + by XMPNode + + a schema node + flag if all properties or only externals shall be removed. + + Returns true if the schema is empty after the operation. + + + + The destination XMP object. + the source node + the parent of the destination node + Replace the values of existing properties. + + flag if properties with empty values should be deleted + in the destination object. + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + + + Make sure the separator is OK. + + Make sure the separator is OK. It must be one semicolon surrounded by + zero or more spaces. Any of the recognized semicolons or spaces are + allowed. + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + opened and closing quote in a string + the open quote + Returns a corresponding closing quote. + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + a char + Return the character kind. + + + the open quote char + Returns the matching closing quote for an open quote. + + + Add quotes to the item. + the array item + the open quote character + the closing quote character + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + U+0022 ASCII space
    + U+3000, ideographic space
    + U+303F, ideographic half fill space
    + U+2000..U+200B, en quad through zero width space +
    +
    + + + U+002C, ASCII comma
    + U+FF0C, full width comma
    + U+FF64, half width ideographic comma
    + U+FE50, small comma
    + U+FE51, small ideographic comma
    + U+3001, ideographic comma
    + U+060C, Arabic comma
    + U+055D, Armenian comma +
    +
    + + + U+003B, ASCII semicolon
    + U+FF1B, full width semicolon
    + U+FE54, small semicolon
    + U+061B, Arabic semicolon
    + U+037E, Greek "semicolon" (really a question mark) +
    +
    + + + U+0022 ASCII quote
    + The square brackets are not interpreted as quotes anymore (bug #2674672) + (ASCII '[' (0x5B) and ']' (0x5D) are used as quotes in Chinese and + Korean.)
    + U+00AB and U+00BB, guillemet quotes
    + U+3008..U+300F, various quotes.
    + U+301D..U+301F, double prime quotes.
    + U+2015, dash quote.
    + U+2018..U+201F, various quotes.
    + U+2039 and U+203A, guillemet quotes. +
    +
    + + + U+0000..U+001F ASCII controls
    + U+2028, line separator.
    + U+2029, paragraph separator. +
    +
    + + Representates an XMP XMPPath with segment accessor methods. + 28.02.2006 + + + Marks a struct field step , also for top level nodes (schema "fields"). + + + Marks a qualifier step. + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + Marks an array index step + + + stores the segments of an XMPPath + + + Append a path segment + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + Return a single String explaining which certificate was verified, how and why. + + + + Parser for XMP XPaths. + 01.03.2006 + + + Private constructor + + + + Split an XMPPath expression apart at the conceptual steps, adding the + root namespace prefix to the first property component. + + + Split an XMPPath expression apart at the conceptual steps, adding the + root namespace prefix to the first property component. The schema URI is + put in the first (0th) slot in the expanded XMPPath. Check if the top + level component is an alias, but don't resolve it. + + In the most verbose case steps are separated by '/', and each step can be + of these forms: + + prefix:name + + A top level property or struct field. + + [index] + + An element of an array. + + [last()] + + The last element of an array. + + [fieldName=&quot;value&quot;] + + An element in an array of structs, chosen by a field value. + + [@xml:lang=&quot;value&quot;] + + An element in an alt-text array, chosen by the xml:lang qualifier. + + [?qualName=&quot;value&quot;] + + An element in an array, chosen by a qualifier value. + + @xml:lang + + An xml:lang qualifier. + + ?qualName + + A general qualifier. + + + + The logic is complicated though by shorthand for arrays, the separating + '/' and leading '*' are optional. These are all equivalent: array/*[2] + array/[2] array*[2] array[2] All of these are broken into the 2 steps + "array" and "[2]". + + The value portion in the array selector forms is a string quoted by ''' + or '"'. The value may contain any character including a doubled quoting + character. The value may be empty. + + The syntax isn't checked, but an XML name begins with a letter or '_', + and contains letters, digits, '.', '-', '_', and a bunch of special + non-ASCII Unicode characters. An XML qualified name is a pair of names + separated by a colon. + + schema namespace + property name + Returns the expandet XMPPath. + + + + + + + Parses a struct segment + the current position in the path + Retusn the segment or an errror + + + Parses an array index segment. + the xmp path + Returns the segment or an error + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + + the root namespace + the parsing position helper + the path to contribute to + + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + a qualifier name + + + Verify if an XML name is conformant. + an XML name + + + Set up the first 2 components of the expanded XMPPath. + + Set up the first 2 components of the expanded XMPPath. Normalizes the various cases of using + the full schema URI and/or a qualified root property name. Returns true for normal + processing. If allowUnknownSchemaNS is true and the schema namespace is not registered, false + is returned. If allowUnknownSchemaNS is false and the schema namespace is not registered, an + exception is thrown + + (Should someday check the full syntax:) + + schema namespace + the root xpath segment + Returns root QName. + + + This objects contains all needed char positions to parse. + + + the complete path + + + the start of a segment name + + + the end of a segment name + + + the begin of a step + + + the end of a step + + + A segment of a parsed XMPPath. + 23.06.2006 + + + name of the path segment + + + kind of the path segment + + + flag if segment is an alias + + + alias form if applicable + + + Constructor with initial values. + the name of the segment + + + Constructor with initial values. + the name of the segment + the kind of the segment + + + Returns the kind. + + + The kind to set. + + + Returns the name. + + + The name to set. + + + the flag to set + + + Returns the alias. + + + Returns the aliasForm if this segment has been created by an alias. + + + the aliasForm to set + + + + + + Options for XMPSchemaRegistryImpl#registerAlias. + 20.02.2006 + + + This is a direct mapping. + This is a direct mapping. The actual data type does not matter. + + + The actual is an unordered array, the alias is to the first element of the array. + + + The actual is an ordered array, the alias is to the first element of the array. + + + The actual is an alternate array, the alias is to the first element of the array. + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + + + + the options to init with + + + Returns if the alias is of the simple form. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + + returns a + + s object + + + + + + + + + + Options for XMPIterator construction. + 24.01.2006 + + + Just do the immediate children of the root, default is subtree. + + + Just do the leaf nodes, default is all nodes in the subtree. + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + Return just the leaf part of the path, default is the full path. + + + Omit all qualifiers. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Sets the option and returns the instance. + the value to set + Returns the instance to call more set-methods. + + + Sets the option and returns the instance. + the value to set + Returns the instance to call more set-methods. + + + Sets the option and returns the instance. + the value to set + Returns the instance to call more set-methods. + + + Sets the option and returns the instance. + the value to set + Returns the instance to call more set-methods. + + + + + + + + + The base class for a collection of 32 flag bits. + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + 24.01.2006 + + + the internal int containing all options + + + a map containing the bit names + + + The default constructor. + + + Constructor with the options bit mask. + the options bit mask + + + Resets the options. + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + Is friendly to access it during the tests. + Returns the options. + + + The options to set. + + + + + + + + + Creates a human readable string from the set options. + + Creates a human readable string from the set options. Note: This method is quite + expensive and should only be used within tests or as + + + Returns a String listing all options that are set to true by their name, + like &quot;option1 | option4&quot;. + + + + Returns the options as hex bitmask. + + + To be implemeted by inheritants. + Returns a bit mask where all valid option bits are set. + + + To be implemeted by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + The inheriting option class can do additional checks on the options. + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + + + Checks options before they are set. + + Checks options before they are set. + First it is checked if only defined options are used, + second the additional + + -method is called. + + the options to check + + + Looks up or asks the inherited class for the name of an option bit. + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + Options for + . + + 24.01.2006 + + + Require a surrounding &quot;x:xmpmeta&quot; element in the xml-document. + + + Do not reconcile alias differences, throw an exception instead. + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + Sets the options to the default values. + + + Returns the requireXMPMeta. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the strictAliasing. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the strictAliasing. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the strictAliasing. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option "omit normalization". + + + the value to set + Returns the instance to call more set-methods. + + + + + + + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + 03.07.2006 + + + may be used in the future + + + Updated by iText. + Updated by iText. Indicates if the property should be writted as a separate node + + + Default constructor + + + Intialization constructor + the initialization options + + + + Return whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + + the value to set + Returns this to enable cascaded options. + + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + + the value to set + Returns this to enable cascaded options. + + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + + the value to set + Returns this to enable cascaded options. + + + Return whether this property has an xml:lang qualifier. + + + the value to set + Returns this to enable cascaded options. + + + Return whether this property has an rdf:type qualifier. + + + the value to set + Returns this to enable cascaded options. + + + Return whether this property contains nested fields. + + + the value to set + Returns this to enable cascaded options. + + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + + the value to set + Returns this to enable cascaded options. + + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + + the value to set + Returns this to enable cascaded options. + + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + + the value to set + Returns this to enable cascaded options. + + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + + the value to set + Returns this to enable cascaded options. + + + Returns whether the SCHEMA_NODE option is set. + + + the option DELETE_EXISTING to set + Returns this to enable cascaded options. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Compares two options set for array compatibility. + other options + Returns true if the array options of the sets are equal. + + + Merges the set options of a another options object with this. + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + + other options + + + Returns true if only array options are set. + + + + + + + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + + + + Omit the XML packet wrapper. + + + Mark packet as read-only. + Mark packet as read-only. Default is a writeable packet. + + + Use a compact form of RDF. + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags &quot;compact&quot; and &quot;canonical&quot; are set, canonical is used. + + + + Use the canonical form of RDF if set. + Use the canonical form of RDF if set. By default the compact form is used + + + Include a padding allowance for a thumbnail image. + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + The padding parameter provides the overall packet length. + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + Omit the <x:xmpmeta>-tag + + + Sort the struct properties and qualifier before serializing + + + Bit indicating little endian encoding, unset is big endian + + + Bit indication UTF16 encoding. + + + UTF8 encoding; this is the default + + + UTF16BE encoding + + + UTF16LE encoding + + + The amount of padding to be added if a writeable XML packet is created. + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + The string to be used as a line terminator. + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + + The string to be used for each level of indentation in the serialized + RDF. + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + Omits the Toolkit version attribute, not published, only used for Unit tests. + + + Default constructor. + + + Constructor using inital options + the inital options + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the option. + + + the value to set + Returns the instance to call more set-methods. + + + Returns the baseIndent. + + + The baseIndent to set. + Returns the instance to call more set-methods. + + + Returns the indent. + + + The indent to set. + Returns the instance to call more set-methods. + + + Returns the newline. + + + The newline to set. + Returns the instance to call more set-methods. + + + Returns the padding. + + + The padding to set. + Returns the instance to call more set-methods. + + + + Returns whether the Toolkit version attribute shall be omitted. + Note: This options can only be set by unit tests. + + + + Returns the encoding as Java encoding String. + + + Returns clone of this SerializeOptions-object with the same options set. + + + + + + + + + Class that contains several constants. + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. + A textual description of the content of the resource. Multiple values may be present for different languages. + + + + The file format used when saving the resource. + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + + The title of the document, or the name given to the resource. + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + + A document type; for example, novel, poem, or working paper. + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + The part + + + An unordered array specifying properties that were edited outside the authoring application. + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + + The base URL for relative URLs in the document content. + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History's softwareAgent property. + + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + + Indicates whether the document has been modified to include trapping information + + + This interface is used to return info about an alias. + 27.01.2006 + + + Returns Returns the namespace URI for the base property. + + + Returns the default prefix for the given base property. + + + Returns the path of the base property. + + + + Returns the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + This interface is used to return a text property together with its and options. + 23.01.2006 + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by + . + + Returns the language of the alt-text item. + + + This interface is used to return a property together with its path and namespace. + + This interface is used to return a property together with its path and namespace. + It is returned when properties are iterated with the XMPIterator. + + 06.07.2006 + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + Common constants for the XMP Toolkit. + 20.01.2006 + + + The XML namespace for XML. + + + The XML namespace for RDF. + + + The XML namespace for the Dublin Core schema. + + + The XML namespace for the IPTC Core schema. + + + The XML namespace for the IPTC Extension schema. + + + The XML namespace for the DICOM medical schema. + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + The XML namespace Adobe XMP Metadata. + + + The XML namespace for the XMP "basic" schema. + + + The XML namespace for the XMP copyright schema. + + + The XML namespace for the XMP digital asset management schema. + + + The XML namespace for the job management schema. + + + The XML namespace for the job management schema. + + + The XML namespace for the PDF schema. + + + The XML namespace for the PDF schema. + + + The XML namespace for the Photoshop custom schema. + + + The XML namespace for the Photoshop Album schema. + + + The XML namespace for Adobe's EXIF schema. + + + NS for the CIPA XMP for Exif document v1.1 + + + The XML namespace for Adobe's TIFF schema. + + + BExt Schema + + + RIFF Info Schema + + + Transform XMP + + + Adobe Flash SWF + + + legacy Dublin Core NS, will be converted to NS_DC + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + The XML namespace for fields of the Dimensions type. + + + The XML namespace for fields of a graphical image. + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + The XML namespace for fields of the ResourceEvent type. + + + The XML namespace for fields of the ResourceRef type. + + + The XML namespace for fields of the Version type. + + + The XML namespace for fields of the JobRef type. + + + The canonical true string value for Booleans in serialized XMP. + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + The canonical false string value for Booleans in serialized XMP. + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + Index that has the meaning to be always the last item in an array. + + + Node name of an array item. + + + The x-default string for localized properties + + + xml:lang qualfifier + + + rdf:type qualfifier + + + Processing Instruction (PI) for xmp packet + + + XMP meta tag version new + + + XMP meta tag version old + + + Part, 1, 2, or 3 + + + Conformance, A, B, or U. + + + + The XMPDateTime-class represents a point in time up to a resolution of nano + seconds. + + + The XMPDateTime-class represents a point in time up to a resolution of nano + seconds. Dates and time in the serialized XMP are ISO 8601 strings. There are utility functions + to convert to the ISO format, a Calendar or get the Timezone. The fields of + XMPDateTime are: +
      +
    • month - The month in the range 1..12.
    • +
    • day - The day of the month in the range 1..31.
    • +
    • minute - The minute in the range 0..59.
    • +
    • hour - The time zone hour in the range 0..23.
    • +
    • minute - The time zone minute in the range 0..59.
    • +
    • nanoSecond - The nano seconds within a second. Note: if the XMPDateTime is + converted into a calendar, the resolution is reduced to milli seconds.
    • +
    • timeZoneInfo - a TimeZoneInfo-object.
    • +
    + DateTime values are occasionally used in cases with only a date or only a time component. A date + without a time has zeros for all the time fields. A time without a date has zeros for all date + fields (year, month, and day). +
    +
    + + Returns the year, can be negative. + + + Sets the year + + + Returns The month in the range 1..12. + + + Sets the month 1..12 + + + Returns the day of the month in the range 1..31. + + + Sets the day 1..31 + + + Returns hour - The hour in the range 0..23. + + + Sets the hour in the range 0..23. + + + Returns the minute in the range 0..59. + + + Sets the minute in the range 0..59. + + + Returns the second in the range 0..59. + + + Sets the second in the range 0..59. + + + + Returns milli-, micro- and nano seconds. + Nanoseconds within a second, often left as zero? + + + + + Sets the milli-, micro- and nano seconds. + Granularity goes down to milli seconds. + + + + Returns the time zone. + + + a time zone to set + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + + Returns true if the XMPDateTime object has a time portion. + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + + Returns true if the XMPDateTime object has a defined timezone. + + + + Returns a Calendar (only with milli second precision).
    + Note: the dates before Oct 15th 1585 (which normally fall into validity of + the Julian calendar) are also rendered internally as Gregorian dates. +
    +
    + + Returns the ISO 8601 string representation of the date and time. + + + + A factory to create XMPDateTime-instances from a Calendar or an + ISO 8601 string or for the current time. + + 16.02.2006 + + + Private constructor + + + Creates an XMPDateTime from a Calendar-object. + + a Calendar-object. + An XMPDateTime-object. + + + Creates an empty XMPDateTime-object. + Returns an XMPDateTime-object. + + + Creates an XMPDateTime-object from initial values. + years + + months from 1 to 12
    + Note: Remember that the month in + + is defined from 0 to 11. + + days + Returns an XMPDateTime-object. +
    + + Creates an XMPDateTime-object from initial values. + years + + months from 1 to 12
    + Note: Remember that the month in + + is defined from 0 to 11. + + days + hours + minutes + seconds + nanoseconds + Returns an XMPDateTime-object. +
    + + Creates an XMPDateTime from an ISO 8601 string. + The ISO 8601 string representation of the date/time. + An XMPDateTime-object. + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + + Sets the local time zone without touching any other Any existing time zone value is replaced, + the other date/time fields are not adjusted in any way. + + the XMPDateTime variable containing the value to be modified. + + Returns an updated XMPDateTime-object. + + + Make sure a time is UTC. + + Make sure a time is UTC. If the time zone is not UTC, the time is + adjusted and the time zone set to be UTC. + + + the XMPDateTime variable containing the time to + be modified. + + Returns an updated XMPDateTime-object. + + + Make sure a time is local. + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the XMPDateTime variable containing the time to be modified. + + Returns an updated XMPDateTime-object. + + + 21.09.2006 + + + Note: This is an error code introduced by Java. + + + This exception wraps all errors that occur in the XMP Toolkit. + 16.02.2006 + + + the errorCode of the XMP toolkit + + + Constructs an exception with a message and an error code. + the message + the error code + + + Constructs an exception with a message, an error code and a Throwable + the error message. + the error code + the exception source + + + Returns the errorCode. + + + + Interface for the + XMPMeta + iteration services. + + + Interface for the + XMPMeta + iteration services. + XMPIterator + provides a uniform means to iterate over the + schema and properties within an XMP object. + + The iteration over the schema and properties within an XMP object is very + complex. It is helpful to have a thorough understanding of the XMP data tree. + One way to learn this is to create some complex XMP and examine the output of + XMPMeta#toString + . This is also described in the XMP + Specification, in the XMP Data Model chapter. + + The top of the XMP data tree is a single root node. This does not explicitly + appear in the dump and is never visited by an iterator (that is, it is never + returned from + XMPIterator#next() + ). Beneath the root are + schema nodes. These are just collectors for top level properties in the same + namespace. They are created and destroyed implicitly. Beneath the schema + nodes are the property nodes. The nodes below a property node depend on its + type (simple, struct, or array) and whether it has qualifiers. + + An + XMPIterator + is created by + XMPMeta#interator() + constructor + defines a starting point for the iteration and options that control how it + proceeds. By default the iteration starts at the root and visits all nodes + beneath it in a depth first manner. The root node is not visited, the first + visited node is a schema node. You can provide a schema name or property path + to select a different starting node. By default this visits the named root + node first then all nodes beneath it in a depth first manner. + + The + XMPIterator#next() + method delivers the schema URI, path, + and option flags for the node being visited. If the node is simple it also + delivers the value. Qualifiers for this node are visited next. The fields of + a struct or items of an array are visited after the qualifiers of the parent. + + The options to control the iteration are: + + JUST_CHILDREN - Visit just the immediate children of the root. Skip + the root itself and all nodes below the immediate children. This omits the + qualifiers of the immediate children, the qualifier nodes being below what + they qualify, default is to visit the complete subtree. + + JUST_LEAFNODES - Visit just the leaf property nodes and their + qualifiers. + + JUST_LEAFNAME - Return just the leaf component of the node names. + The default is to return the full xmp path. + + OMIT_QUALIFIERS - Do not visit the qualifiers. + + INCLUDE_ALIASES - Adds known alias properties to the properties in the iteration. + Note: Not supported in Java XMPCore! + + + + next() + returns + XMPPropertyInfo + -objects and throws + a + NoSuchElementException + if there are no more properties to + return. + + 25.01.2006 + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + This class represents the set of XMP metadata as a DOM representation. + + This class represents the set of XMP metadata as a DOM representation. It has methods to read and + modify all kinds of properties, create an iterator over all properties and serialize the metadata + to a String, byte-array or OutputStream. + + 20.01.2006 + + + + The property value getter-methods all take a property specification: the first two parameters + are always the top level namespace URI (the &quot;schema&quot; namespace) and the basic name + of the property being referenced. + + + The property value getter-methods all take a property specification: the first two parameters + are always the top level namespace URI (the &quot;schema&quot; namespace) and the basic name + of the property being referenced. See the introductory discussion of path expression usage + for more information. + + All of the functions return an object inherited from PropertyBase or + null if the property does not exists. The result object contains the value of + the property and option flags describing the property. Arrays and the non-leaf levels of + nodes do not have values. + + See + + for detailed information about the options. + + This is the simplest property getter, mainly for top level simple properties or after using + the path composition functions in XMPPathFactory. + + + The namespace URI for the property. May be null or the empty + string if the first component of the propName path contains a namespace prefix. The + URI must be for a registered namespace. + + + The name of the property. May be a general path expression, must not be + null or the empty string. Using a namespace prefix on the first + component is optional. If present without a schemaNS value then the prefix specifies + the namespace. The prefix must be for a registered namespace. If both a schemaNS URI + and propName prefix are present, they must be corresponding parts of a registered + namespace. + + + Returns a XMPProperty containing the value and the options or + null if the property does not exist. + + + + Provides access to items within an array. + + Provides access to items within an array. The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in getProperty. + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty(). + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant + + always refers to the last existing array + item. + + + Returns a XMPProperty containing the value and the options or + null if the property does not exist. + + + + Returns the number of items in the array. + The namespace URI for the array. Has the same usage as in getProperty. + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty(). + + Returns the number of items in the array. + + + Provides access to fields within a nested structure. + + Provides access to fields within a nested structure. The namespace for the field is passed as + a URI, you need not worry about the path string syntax. + + The names of fields should be XML qualified names, that is within an XML namespace. The path + syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is + never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given + sequence of XML text. + + The namespace URI for the struct. Has the same usage as in getProperty. + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty(). + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + Returns a XMPProperty containing the value and the options or + null if the property does not exist. Arrays and non-leaf levels of + structs do not have values. + + + + Provides access to a qualifier attached to a property. + + Provides access to a qualifier attached to a property. The namespace for the qualifier is + passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + are like struct fields. See the introductory discussion of qualified properties for more + information. + + The names of qualifiers should be XML qualified names, that is within an XML namespace. The + path syntax for a qualified name uses the namespace prefix. This is unreliable since the + prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand + in a given sequence of XML text. + + Note: Qualifiers are only supported for simple leaf properties at this time. + + The namespace URI for the struct. Has the same usage as in getProperty. + + The name of the property to which the qualifier is attached. May be a general + path expression, must not be null or the empty string. Has the same + namespace prefix usage as in getProperty(). + + + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + Returns a XMPProperty containing the value and the options of the + qualifier or null if the property does not exist. The name of the + qualifier must be a single XML name, must not be null or the empty + string. Has the same namespace prefix usage as the propName parameter. + + The value of the qualifier is only set if it has one (Arrays and non-leaf levels of + structs do not have values). + + + + + The property value setters all take a property specification, their + differences are in the form of this. + + + The property value setters all take a property specification, their + differences are in the form of this. The first two parameters are always the top level + namespace URI (the schema namespace) and the basic name of the property being + referenced. See the introductory discussion of path expression usage for more information. + + All of the functions take a string value for the property and option flags describing the + property. The value must be Unicode in UTF-8 encoding. Arrays and non-leaf levels of structs + do not have values. Empty arrays and structs may be created using appropriate option flags. + All levels of structs that is assigned implicitly are created if necessary. appendArayItem + implicitly creates the named array if necessary. + + See + + for detailed information about the options. + + This is the simplest property setter, mainly for top level simple properties or after using + the path composition functions in + . + + The namespace URI for the property. Has the same usage as in getProperty. + + The name of the property. + Has the same usage as in getProperty(). + + + the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
    + The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and + byte[] are handled, on all other toString() is called. + + Option flags describing the property. See the earlier description. +
    + + + The namespace URI + The name of the property + the value for the property + + + Replaces an item within an array. + + Replaces an item within an array. The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in getProperty. + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty. + + + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use + + to find + out the length of the array. + + + the new value of the array item. Has the same usage as propValue in + setProperty(). + + the set options for the item. + + + + The namespace URI + The name of the array + The index to insert the new item + the new value of the array item + + + Inserts an item into an array previous to the given index. + + Inserts an item into an array previous to the given index. The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in getProperty. + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty. + + + The index to insert the new item. Arrays in XMP are indexed from 1. Use + XMPConst.ARRAY_LAST_ITEM to append items. + + + the new value of the array item. Has the same usage as + propValue in setProperty(). + + the set options that decide about the kind of the node. + + + + The namespace URI for the array + The name of the array + The index to insert the new item + the value of the array item + + + Simplifies the construction of an array by not requiring that you pre-create an empty array. + + Simplifies the construction of an array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + appendArrayItem() appends an item to the array. The corresponding parameters have the same + use as setArrayItem(). The arrayOptions parameter is used to specify what kind of array. If + the array exists, it must have the specified form. + + The namespace URI for the array. Has the same usage as in getProperty. + + The name of the array. May be a general path expression, must not be null or + the empty string. Has the same namespace prefix usage as propPath in getProperty. + + + Option flags describing the array form. The only valid options are + + + + , + + + + , + + + + or + + + . + + + Note: the array options only need to be provided if the array is not + already existing, otherwise you can set them to null or use + . + + the value of the array item. Has the same usage as propValue in getProperty. + + Option flags describing the item to append ( + + ) + + + + + The namespace URI for the array + The name of the array + the value of the array item + + + Provides access to fields within a nested structure. + + Provides access to fields within a nested structure. The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in getProperty. + + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in getProperty. + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + + + the value of thefield, if the field has a value. + Has the same usage as propValue in getProperty. + + Option flags describing the field. See the earlier description. + + + + The namespace URI for the struct + The name of the struct + The namespace URI for the field + The name of the field + the value of the field + + + Provides access to a qualifier attached to a property. + + Provides access to a qualifier attached to a property. The namespace for the qualifier is + passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + are like struct fields. See the introductory discussion of qualified properties for more + information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in getProperty. + + The name of the property to which the qualifier is attached. Has the same + usage as in getProperty. + + + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in getProperty. + + Option flags describing the qualifier. See the earlier description. + + + + The namespace URI for the struct + The name of the property to which the qualifier is attached + The namespace URI for the qualifier + The name of the qualifier + the value of the qualifier + + + Deletes the given XMP subtree rooted at the given property. + + Deletes the given XMP subtree rooted at the given property. It is not an error if the + property does not exist. + + + The namespace URI for the property. Has the same usage as in + getProperty(). + + The name of the property. Has the same usage as in getProperty. + + + Deletes the given XMP subtree rooted at the given array item. + + Deletes the given XMP subtree rooted at the given array item. It is not an error if the array + item does not exist. + + The namespace URI for the array. Has the same usage as in getProperty. + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty(). + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XMPConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. + + Deletes the given XMP subtree rooted at the given struct field. It is not an error if the + field does not exist. + + + The namespace URI for the struct. Has the same usage as in + getProperty(). + + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty. + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + + The namespace URI for the struct. Has the same usage as in + getProperty(). + + + The name of the property to which the qualifier is attached. Has the same + usage as in getProperty. + + + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + Returns true if the property exists. + + + Tells if the array item exists. + + The namespace URI for the array. Has the same usage as in + getProperty(). + + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty(). + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XMPConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + + Returns true if the array exists, false otherwise. + + + DoesStructFieldExist tells if the struct field exists. + + The namespace URI for the struct. Has the same usage as in + getProperty(). + + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in getProperty(). + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + Returns true if the field exists. + + + DoesQualifierExist tells if the qualifier exists. + + The namespace URI for the struct. Has the same usage as in + getProperty(). + + + The name of the property to which the qualifier is attached. Has the same + usage as in getProperty(). + + + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + Returns true if the qualifier exists. + + + + These functions provide convenient support for localized text properties, including a number + of special and obscure aspects. + + + These functions provide convenient support for localized text properties, including a number + of special and obscure aspects. Localized text properties are stored in alt-text arrays. They + allow multiple concurrent localizations of a property value, for example a document title or + copyright in several languages. The most important aspect of these functions is that they + select an appropriate array item based on one or two RFC 3066 language tags. One of these + languages, the "specific" language, is preferred and selected if there is an exact match. For + many languages it is also possible to define a "generic" language that may be used if there + is no specific language match. The generic language must be a valid RFC 3066 primary subtag, + or the empty string. For example, a specific language of "en-US" should be used in the US, + and a specific language of "en-UK" should be used in England. It is also appropriate to use + "en" as the generic language in each case. If a US document goes to England, the "en-US" + title is selected by using the "en" generic language and the "en-UK" specific language. It is + considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 + primary tag. For example "en" is not a good specific language, it should only be used as a + generic language. Passing "i" or "x" as the generic language is also considered poor practice + but allowed. Advice from the W3C about the use of RFC 3066 language tags can be found at: + http://www.w3.org/International/articles/language-tags/ + + Note: RFC 3066 language tags must be treated in a case insensitive manner. The XMP + Toolkit does this by normalizing their capitalization: + + The primary subtag is lower case, the suggested practice of ISO 639. + + All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. + + All other subtags are lower case. The XMP specification defines an artificial language, + + "x-default", that is used to explicitly denote a default item in an alt-text array. + + + The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. + The SetLocalizedText function has several special features related to the x-default item, see + its description for details. The selection of the array item is the same for GetLocalizedText + and SetLocalizedText: + + Look for an exact match with the specific language. + + If a generic language is given, look for a partial match. + + Look for an x-default item. + + Choose the first item. + + + A partial match with the generic language is where the start of the item's language matches + the generic string and the next character is '-'. An exact match is also recognized as a + degenerate case. It is fine to pass x-default as the specific language. In this case, + selection of an x-default item is an exact match by the first rule, not a selection by the + 3rd rule. The last 2 rules are fallbacks used when the specific and generic languages fail to + produce a match. getLocalizedText returns information about a selected item in + an alt-text array. The array item is selected according to the rules given above. + Note: In a future version of this API a method + using Java java.lang.Locale will be added. + + + The namespace URI for the alt-text array. Has the same usage as in + getProperty(). + + + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in getProperty(). + + + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + + + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + + + Returns an XMPProperty containing the value, the actual language and + the options if an appropriate alternate collection item exists, null + if the property. + does not exist. + + + + Modifies the value of a selected item in an alt-text array. + + Modifies the value of a selected item in an alt-text array. Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + Note: In a future version of this API a method + using Java java.lang.Locale will be added. + + + The namespace URI for the alt-text array. Has the same usage as in + getProperty(). + + + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in getProperty(). + + + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + + + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + + + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + + Option flags, none are defined at present. + + + + The namespace URI for the alt-text array + The name of the alt-text array + The name of the generic language + The name of the specific language + the new value for the appropriate array item + + + + These are very similar to getProperty() and SetProperty() above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + + + These are very similar to getProperty() and SetProperty() above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + The path composition functions in XMPPathFactory may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + + Returns a Boolean value or null + if the property does not exist. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + + Returns an Integer value or null + if the property does not exist. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + + Returns a Long value or null + if the property does not exist. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + + Returns a Double value or null + if the property does not exist. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + + Returns a XMPDateTime-object or null + if the property does not exist. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + + Returns a Java Calendar-object or null + if the property does not exist. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + + Returns a byte[]-array contained the decoded base64 value + or null if the property does not exist. + + + + Convenience method to retrieve the literal value of a property. + + Convenience method to retrieve the literal value of a property. + Note: There is no setPropertyString(), + because setProperty() sets a string value. + + + The namespace URI for the property. Has the same usage as in + getProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + + Returns a String value or null + if the property does not exist. + + + + Convenience method to set a property to a literal boolean value. + + The namespace URI for the property. Has the same usage as in + setProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + the literal property value as boolean. + options of the property to set (optional). + + + + The namespace URI for the property + The name of the property + the literal property value as boolean + + + Convenience method to set a property to a literal int value. + + The namespace URI for the property. Has the same usage as in + setProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + the literal property value as int. + options of the property to set (optional). + + + + The namespace URI for the property + The name of the property + the literal property value as int + + + Convenience method to set a property to a literal long value. + + The namespace URI for the property. Has the same usage as in + setProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + the literal property value as long. + options of the property to set (optional). + + + + The namespace URI for the property + The name of the property + the literal property value as long + + + Convenience method to set a property to a literal double value. + + The namespace URI for the property. Has the same usage as in + setProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + the literal property value as double. + options of the property to set (optional). + + + + The namespace URI for the property + The name of the property + the literal property value as double + + + + Convenience method to set a property with an XMPDateTime-object, + which is serialized to an ISO8601 date. + + + The namespace URI for the property. Has the same usage as in + setProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + the property value as XMPDateTime. + options of the property to set (optional). + + + + The namespace URI for the property + The name of the property + the property value as XMPDateTime + + + + Convenience method to set a property with a Java Calendar-object, + which is serialized to an ISO8601 date. + + + The namespace URI for the property. Has the same usage as in + setProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + the property value as Java Calendar. + options of the property to set (optional). + + + + The namespace URI for the property + The name of the property + the property value as Calendar + + + + Convenience method to set a property from a binary byte[]-array, + which is serialized as base64-string. + + + The namespace URI for the property. Has the same usage as in + setProperty(). + + + The name of the property. + Has the same usage as in getProperty(). + + the literal property value as byte array. + options of the property to set (optional). + + + + The namespace URI for the property + The name of the property + the literal property value as byte array + + + Constructs an iterator for the properties within this XMP object. + Returns an XMPIterator. + + + + Constructs an iterator for the properties within this XMP object using some options. + Option flags to control the iteration. + Returns an XMPIterator. + + + + Construct an iterator for the properties within an XMP object. + + Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, + properties within a specific schema, or a subtree rooted at a specific node. + + + Optional schema namespace URI to restrict the iteration. Omitted (visit all + schema) by passing null or empty String. + + + Optional property name to restrict the iteration. May be an arbitrary path + expression. Omitted (visit all properties) by passing null or empty + String. If no schema URI is given, it is ignored. + + + Option flags to control the iteration. See + + for + details. + + + Returns an XMPIterator for this XMPMeta-object + considering the given options. + + + + + This correlates to the about-attribute, + returns the empty String if no name is set. + + Returns the name of the XMP object. + + + Sets the name of the XMP object. + + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + Clones the complete metadata tree. + Returns a deep copy of this instance. + + + + Perform the normalization as a separate parsing step. + + Perform the normalization as a separate parsing step. + Normally it is done during parsing, unless the parsing option + + is set to true. + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + + + Renders this node and the tree unter this node in a human readable form. + Returns a multiline string containing the dump. + + + Creates XMPMeta-instances from an InputStream + 30.01.2006 + + + The singleton instance of the XMPSchemaRegistry. + + + cache for version info + + + Hides public constructor + + + Returns the singleton instance of the XMPSchemaRegistry. + + + Returns an empty XMPMeta-object. + + + Parsing with default options. + an InputStream + Returns the XMPMeta-object created from the input. + + + + + These functions support parsing serialized RDF into an XMP object, and serailizing an XMP + object into RDF. + + + These functions support parsing serialized RDF into an XMP object, and serailizing an XMP + object into RDF. The input for parsing may be any valid Unicode + encoding. ISO Latin-1 is also recognized, but its use is strongly discouraged. Serialization + is always as UTF-8. +
    + parseFromBuffer() parses RDF from an InputStream. The encoding + is recognized automatically. +
    + an InputStream + + Options controlling the parsing.
    + The available options are: + + XMP_REQUIRE_XMPMETA - The <x:xmpmeta> XML element is required around + <rdf:RDF>. + + XMP_STRICT_ALIASING - Do not reconcile alias differences, throw an exception. + + + Note:The XMP_STRICT_ALIASING option is not yet implemented. + + Returns the XMPMeta-object created from the input. +
    + + Parsing with default options. + a String contain an XMP-file. + Returns the XMPMeta-object created from the input. + + + + Creates an XMPMeta-object from a string. + a String contain an XMP-file. + Options controlling the parsing. + Returns the XMPMeta-object created from the input. + + + + Parsing with default options. + a String contain an XMP-file. + Returns the XMPMeta-object created from the input. + + + + Creates an XMPMeta-object from a byte-buffer. + a String contain an XMP-file. + Options controlling the parsing. + Returns the XMPMeta-object created from the input. + + + + + Serializes an XMPMeta-object as RDF into an OutputStream + with default options. + + a metadata object + an OutputStream to write the serialized RDF to. + + + Serializes an XMPMeta-object as RDF into an OutputStream. + a metadata object + + Options to control the serialization (see + + ). + + an OutputStream to write the serialized RDF to. + + + Serializes an XMPMeta-object as RDF into a byte buffer. + a metadata object + + Options to control the serialization (see + + ). + + Returns a byte buffer containing the serialized RDF. + + + Serializes an XMPMeta-object as RDF into a string. + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + + Options to control the serialization (see + + ). + + Returns a string containing the serialized RDF. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + Resets the schema registry to its original state (creates a new one). + + Resets the schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purpurses. + + + + Obtain version information. + + Obtain version information. The XMPVersionInfo singleton is created the first time + its requested. + + Returns the version information. + + + Utility services for the metadata object. + + Utility services for the metadata object. It has only public static functions, you cannot create + an object. These are all functions that layer cleanly on top of the kernel XMP toolkit. + + These functions provide support for composing path expressions to deeply nested properties. The + functions XMPMeta such as getProperty(), + getArrayItem() and getStructField() provide easy access to top + level simple properties, items in top level arrays, and fields of top level structs. They do not + provide convenient access to more complex things like fields several levels deep in a complex + struct, or fields within an array of structs, or items of an array that is a field of a struct. + These functions can also be used to compose paths to top level array items or struct fields so + that you can use the binary accessors like getPropertyAsInteger(). + + You can use these functions is to compose a complete path expression, or all but the last + component. Suppose you have a property that is an array of integers within a struct. You can + access one of the array items like this: +
    +
    +            String path = XMPPathFactory.composeStructFieldPath (schemaNS, &quot;Struct&quot;, fieldNS,
    +            &quot;Array&quot;);
    +            String path += XMPPathFactory.composeArrayItemPath (schemaNS, &quot;Array&quot; index);
    +            PropertyInteger result = xmpObj.getPropertyAsInteger(schemaNS, path);
    +            
    +
    You could also use this code if you want the string form of the integer: +
    +
    +            String path = XMPPathFactory.composeStructFieldPath (schemaNS, &quot;Struct&quot;, fieldNS,
    +            &quot;Array&quot;);
    +            PropertyText xmpObj.getArrayItem (schemaNS, path, index);
    +            
    +
    + + Note: It might look confusing that the schemaNS is passed in all of the calls above. + This is because the XMP toolkit keeps the top level &quot;schema&quot; namespace separate from + the rest of the path expression. + Note: These methods are much simpler than in the C++-API, they don't check the given + path or array indices. +
    + 25.01.2006 +
    + + Private constructor + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + + + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where &quot;ns&quot; is the prefix for schemaNS and + &quot;i&quot; is the decimal representation of itemIndex. + + + + Compose the path expression for a field in a struct. + + Compose the path expression for a field in a struct. The result can be added to the + path of + + + The namespace URI for the field. Must not be null or the empty + string. + + + The name of the field. Must be a simple XML name, must not be + null or the empty string. + + + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where &quot;ns&quot; is the prefix for + schemaNS and &quot;fNS&quot; is the prefix for fieldNS. + + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + + + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + + + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where &quot;ns&quot; is the prefix for + schemaNS and &quot;qNS&quot; is the prefix for qualNS. + + + + Compose the path expression to select an alternate item by language. + + Compose the path expression to select an alternate item by language. The + path syntax allows two forms of &quot;content addressing&quot; that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + &quot;ns&quot; is the prefix for schemaNS. + + + + Compose the path expression to select an alternate item by a field's value. + + Compose the path expression to select an alternate item by a field's value. The path syntax + allows two forms of &quot;content addressing&quot; that may be used to select an item in an + array of alternatives. The form used in ComposeFieldSelector lets you select an item in an + array of structs based on the value of one of the fields in the structs. The other form of + content addressing is shown in ComposeLangSelector. For example, consider a simple struct + that has two fields, the name of a city and the URI of an FTP site in that city. Use this to + create an array of download alternatives. You can show the user a popup built from the values + of the city fields. You can then get the corresponding URI as follows: +
    +
    +            String path = composeFieldSelector ( schemaNS, &quot;Downloads&quot;, fieldNS,
    +            &quot;City&quot;, chosenCity );
    +            XMPProperty prop = xmpObj.getStructField ( schemaNS, path, fieldNS, &quot;URI&quot; );
    +            
    +
    +
    + + The name of the array. May be a general path expression, must not be + null or the empty string. + + + The namespace URI for the field used as the selector. Must not be + null or the empty string. + + + The name of the field used as the selector. Must be a simple XML name, must + not be null or the empty string. It must be the name of a field that is + itself simple. + + The desired value of the field. + + Returns the composed path. This will be of the form + ns:arrayName[fNS:fieldName='fieldValue'], where &quot;ns&quot; is the + prefix for schemaNS and &quot;fNS&quot; is the prefix for fieldNS. + +
    + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + + + ParameterAsserts that a struct field name is set. + a struct field name or path + + + + The schema registry keeps track of all namespaces and aliases used in the XMP + metadata. + + + The schema registry keeps track of all namespaces and aliases used in the XMP + metadata. At initialisation time, the default namespaces and default aliases + are automatically registered. Namespaces must be registered before + used in namespace URI parameters or path expressions. Within the XMP Toolkit + the registered namespace URIs and prefixes must be unique. Additional + namespaces encountered when parsing RDF are automatically registered. The + namespace URI should always end in an XML name separator such as '/' or '#'. + This is because some forms of RDF shorthand catenate a namespace URI with an + element name to form a new URI. + + Aliases in XMP serve the same purpose as Windows file shortcuts, + Macintosh file aliases, or UNIX file symbolic links. The aliases are simply + multiple names for the same property. One distinction of XMP aliases is that + they are ordered, there is an alias name pointing to an actual name. The + primary significance of the actual name is that it is the preferred name for + output, generally the most widely recognized name. + + The names that can be aliased in XMP are restricted. The alias must be a top + level property name, not a field within a structure or an element within an + array. The actual may be a top level property name, the first element within + a top level array, or the default element in an alt-text array. This does not + mean the alias can only be a simple property. It is OK to alias a top level + structure or array to an identical top level structure or array, or to the + first item of an array of structures. + + 27.01.2006 + + + Register a namespace URI with a suggested prefix. + + Register a namespace URI with a suggested prefix. It is not an error if + the URI is already registered, no matter what the prefix is. If the URI + is not registered but the suggested prefix is in use, a unique prefix is + created from the suggested one. The actual registeed prefix is always + returned. The function result tells if the registered prefix is the + suggested one. + + Note: No checking is presently done on either the URI or the prefix. + + The URI for the namespace. Must be a valid XML URI. + + The suggested prefix to be used if the URI is not yet + registered. Must be a valid XML name. + + + Returns the registered prefix for this URI, is equal to the + suggestedPrefix if the namespace hasn't been registered before, + otherwise the existing prefix. + + + + Obtain the prefix for a registered namespace URI. + + Obtain the prefix for a registered namespace URI. + + It is not an error if the namespace URI is not registered. + + + The URI for the namespace. Must not be null or the empty + string. + + Returns the prefix registered for this namespace URI or null. + + + Obtain the URI for a registered namespace prefix. + + Obtain the URI for a registered namespace prefix. + + It is not an error if the namespace prefix is not registered. + + + The prefix for the namespace. Must not be null or the empty + string. + + Returns the URI registered for this prefix or null. + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + Deletes a namespace from the registry. + + Deletes a namespace from the registry. + + Does nothing if the URI is not registered, or if the namespaceURI + parameter is null or the empty string. + + Note: Not yet implemented. + + The URI for the namespace. + + + Determines if a name is an alias, and what it is aliased to. + + The namespace URI of the alias. Must not be null or the empty + string. + + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + + + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + Searches for registered aliases. + an XML conform qname + + Returns if an alias definition for the given qname to another + schema and property is registered. + + + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + Utility methods for XMP. + + Utility methods for XMP. I included only those that are different from the + Java default conversion utilities. + + 21.02.2006 + + + Private constructor + + + Create a single edit string from an array of strings. + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + + The string to be used to separate the items in the catenated + string. Defaults to &quot;; &quot;, ASCII semicolon and space + (U+003B, U+0020). + + + The characters to be used as quotes around array items that + contain a separator. Defaults to '&quot;' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + + + Separate a single edit string into an array of strings. + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + + + Remove multiple properties from an XMP object. + + Remove multiple properties from an XMP object. + RemoveProperties was created to support the File Info dialog's Delete + button, and has been been generalized somewhat from those specific needs. + It operates in one of three main modes depending on the schemaNS and + propName parameters: + + Non-empty schemaNS and propName - The named property is + removed if it is an external property, or if the + flag doAllProperties option is true. It does not matter whether the + named property is an actual property or an alias. + + Non-empty schemaNS and empty propName - The all external + properties in the named schema are removed. Internal properties are also + removed if the flag doAllProperties option is set. In addition, + aliases from the named schema will be removed if the flag includeAliases + option is set. + + Empty schemaNS and empty propName - All external properties in + all schema are removed. Internal properties are also removed if the + flag doAllProperties option is passed. Aliases are implicitly handled + because the associated actuals are internal if the alias is. + + + It is an error to pass an empty schemaNS and non-empty propName. + + The XMP object containing the properties to be removed. + + Optional schema namespace URI for the properties to be + removed. + + Optional path expression for the property to be removed. + + Option flag to control the deletion: do internal properties in + addition to external properties. + + + Option flag to control the deletion: + Include aliases in the "named schema" case above. + Note: Currently not supported. + + + + Alias without the new option deleteEmptyValues. + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + + + Append properties from one XMP object to another. + + Append properties from one XMP object to another. + XMPUtils#appendProperties was created to support the File Info dialog's Append button, and + has been been generalized somewhat from those specific needs. It appends information from one + XMP object (source) to another (dest). The default operation is to append only external + properties that do not already exist in the destination. The flag + doAllProperties can be used to operate on all properties, external and internal. + The flag replaceOldValues option can be used to replace the values + of existing properties. The notion of external + versus internal applies only to top level properties. The keep-or-replace-old notion applies + within structs and arrays as described below. + + If replaceOldValues is true then the processing is restricted to the top + level properties. The processed properties from the source (according to + doAllProperties) are propagated to the destination, + replacing any existing values.Properties in the destination that are not in the source + are left alone. + + If replaceOldValues is not passed then the processing is more complicated. + Top level properties are added to the destination if they do not already exist. + If they do exist but differ in form (simple/struct/array) then the destination is left alone. + If the forms match, simple properties are left unchanged while structs and arrays are merged. + + If deleteEmptyValues is passed then an empty value in the source XMP causes + the corresponding destination XMP property to be deleted. The default is to treat empty + values the same as non-empty values. An empty value is any of a simple empty string, an array + with no items, or a struct with no fields. Qualifiers are ignored. + + + The detailed behavior is defined by the following pseudo-code: +
    +
    +            appendProperties ( sourceXMP, destXMP, doAllProperties,
    +            replaceOldValues, deleteEmptyValues ):
    +            for all source schema (top level namespaces):
    +            for all top level properties in sourceSchema:
    +            if doAllProperties or prop is external:
    +            appendSubtree ( sourceNode, destSchema, replaceOldValues, deleteEmptyValues )
    +            appendSubtree ( sourceNode, destParent, replaceOldValues, deleteEmptyValues ):
    +            if deleteEmptyValues and source value is empty:
    +            delete the corresponding child from destParent
    +            else if sourceNode not in destParent (by name):
    +            copy sourceNode's subtree to destParent
    +            else if replaceOld:
    +            delete subtree from destParent
    +            copy sourceNode's subtree to destParent
    +            else:
    +            // Already exists in dest and not replacing, merge structs and arrays
    +            if sourceNode and destNode forms differ:
    +            return, leave the destNode alone
    +            else if form is a struct:
    +            for each field in sourceNode:
    +            AppendSubtree ( sourceNode.field, destNode, replaceOldValues )
    +            else if form is an alt-text array:
    +            copy new items by "xml:lang" value into the destination
    +            else if form is an array:
    +            copy new items by value into the destination, ignoring order and duplicates
    +            
    +
    + Note: appendProperties can be expensive if replaceOldValues is not passed and + the XMP contains large arrays. The array item checking described above is n-squared. + Each source item is checked to see if it already exists in the destination, + without regard to order or duplicates. + Simple items are compared by value and "xml:lang" qualifier, other qualifiers are ignored. + Structs are recursively compared by field names, without regard to field order. Arrays are + compared by recursively comparing all items. +
    + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Delete destination values if source property is empty. +
    + + Convert from string to Boolean. + The string representation of the Boolean. + + The appropriate boolean value for the string. The checked values + for true and false are: + + + + and + + + &quot;t&quot; and &quot;f&quot; + + &quot;on&quot; and &quot;off&quot; + + &quot;yes&quot; and &quot;no&quot; + + &quot;value <> 0&quot; and &quot;value == 0&quot; + + + + + + Convert from boolean to string. + a boolean value + + The XMP string representation of the boolean. The values used are + given by the constnts + + and + . + + + + Converts a string value to an int. + the string value + Returns an int. + + + Convert from int to string. + an int value + The string representation of the int. + + + Converts a string value to a long. + the string value + Returns a long. + + + Convert from long to string. + a long value + The string representation of the long. + + + Converts a string value to a double. + the string value + Returns a double. + + + Convert from long to string. + a long value + The string representation of the long. + + + Converts a string value to an XMPDateTime. + the string value + Returns an XMPDateTime-object. + + + Convert from XMPDateTime to string. + an XMPDateTime + The string representation of the long. + + + Convert from a byte array to a base64 encoded string. + the byte array to be converted + Returns the base64 string. + + + Decode from Base64 encoded string to raw data. + a base64 encoded string + Returns a byte array containg the decoded string. + + + XMP Toolkit Version Information. + + XMP Toolkit Version Information. + + Version information for the XMP toolkit is stored in the jar-library and available through a + runtime call, + + , addition static version numbers are + defined in "version.properties". + + 23.01.2006 + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + + IMPORTANT: USE THIS METHOD CAREFULLY. + This method serves as replacement for the java method MessageDigest#digest(byte[] buf, int offset, int len). + However for now, we simply omit len parameter, because it doesn't affect anything for all current usages + (there are two of them at the moment of the method addition which are in StandardHandlerUsingAes256 class). + This may be not true for future possible usages, so be aware. + + +
    +
    diff --git a/Bin/itext.layout.dll b/Bin/itext.layout.dll new file mode 100644 index 000000000..44b14d892 Binary files /dev/null and b/Bin/itext.layout.dll differ diff --git a/Bin/itext.layout.dll.refresh b/Bin/itext.layout.dll.refresh new file mode 100644 index 000000000..cf4720230 --- /dev/null +++ b/Bin/itext.layout.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.layout.dll \ No newline at end of file diff --git a/Bin/itext.layout.xml b/Bin/itext.layout.xml new file mode 100644 index 000000000..8e51d5c6b --- /dev/null +++ b/Bin/itext.layout.xml @@ -0,0 +1,13395 @@ + + + + itext.layout + + + + Represents a border. + + + The null Border, i.e. the presence of such border is equivalent to the absence of the border + + + The solid border. + + + + The dashed border. + + + + The dotted border. + + + + The double border. + + + + The round-dots border. + + + + The 3D groove border. + + + + The 3D inset border. + + + + The 3D outset border. + + + + The 3D ridge border. + + + + The fixed dashed border. + + + + The color of the border. + + + + The width of the border. + + + The type of the border. + + + The hash value for the border. + + + + Creates a + border + with the given width. + + + Creates a + border + with the given width. + The + color + to be set by default is black + + the width which the border should have + + + + Creates a + border + with given width and + color. + + the color which the border should have + the width which the border should have + + + + Creates a + border + with given width, + color + and opacity. + + the color which the border should have + the width which the border should have + the opacity which border should have; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + + + + All borders are supposed to be drawn in such way, that inner content of the element is on the right from the + drawing direction. + + + All borders are supposed to be drawn in such way, that inner content of the element is on the right from the + drawing direction. Borders are drawn in this order: top, right, bottom, left. + + Given points specify the line which lies on the border of the content area, + therefore the border itself should be drawn to the left from the drawing direction. + + borderWidthBefore and borderWidthAfter parameters are used to + define the widths of the borders that are before and after the current border, e.g. for + the bottom border, borderWidthBefore specifies width of the right border and + borderWidthAfter - width of the left border. Those width are used to handle areas + of border joins. + + PdfCanvas to be written to + x coordinate of the beginning point of the element side, that should be bordered + y coordinate of the beginning point of the element side, that should be bordered + x coordinate of the ending point of the element side, that should be bordered + y coordinate of the ending point of the element side, that should be bordered + + the + + , that we will fallback to, if it cannot be determined by border coordinates + + defines width of the border that is before the current one + defines width of the border that is after the current one + + + Draw borders around the target rectangle. + PdfCanvas to be written to + border positions rectangle + + + + All borders are supposed to be drawn in such way, that inner content of the element is on the right from the + drawing direction. + + + All borders are supposed to be drawn in such way, that inner content of the element is on the right from the + drawing direction. Borders are drawn in this order: top, right, bottom, left. + + Given points specify the line which lies on the border of the content area, + therefore the border itself should be drawn to the left from the drawing direction. + + borderWidthBefore and borderWidthAfter parameters are used to + define the widths of the borders that are before and after the current border, e.g. for + the bottom border, borderWidthBefore specifies width of the right border and + borderWidthAfter - width of the left border. Those width are used to handle areas + of border joins. + + borderRadius is used to draw rounded borders. + + PdfCanvas to be written to + x coordinate of the beginning point of the element side, that should be bordered + y coordinate of the beginning point of the element side, that should be bordered + x coordinate of the ending point of the element side, that should be bordered + y coordinate of the ending point of the element side, that should be bordered + defines the radius of the element's corners + + the + + , that we will fallback to, if it cannot be determined by border coordinates + + defines width of the border that is before the current one + defines width of the border that is after the current one + + + + All borders are supposed to be drawn in such way, that inner content of the element is on the right from the + drawing direction. + + + All borders are supposed to be drawn in such way, that inner content of the element is on the right from the + drawing direction. Borders are drawn in this order: top, right, bottom, left. + + Given points specify the line which lies on the border of the content area, + therefore the border itself should be drawn to the left from the drawing direction. + + borderWidthBefore and borderWidthAfter parameters are used to + define the widths of the borders that are before and after the current border, e.g. for + the bottom border, borderWidthBefore specifies width of the right border and + borderWidthAfter - width of the left border. Those width are used to handle areas + of border joins. + + horizontalRadius1, verticalRadius1, horizontalRadius2 + and verticalRadius2 are used to draw rounded borders. + + PdfCanvas to be written to + x coordinate of the beginning point of the element side, that should be bordered + y coordinate of the beginning point of the element side, that should be bordered + x coordinate of the ending point of the element side, that should be bordered + y coordinate of the ending point of the element side, that should be bordered + defines the horizontal radius of the border's first corner + defines the vertical radius of the border's first corner + defines the horizontal radius of the border's second corner + defines the vertical radius of the border's second corner + + the + + , that we will fallback to, if it cannot be determined by border coordinates + + defines width of the border that is before the current one + defines width of the border that is after the current one + + + Draws the border of a cell. + PdfCanvas to be written to + x coordinate of the beginning point of the element side, that should be bordered + y coordinate of the beginning point of the element side, that should be bordered + x coordinate of the ending point of the element side, that should be bordered + y coordinate of the ending point of the element side, that should be bordered + + the + + , that we will fallback to, if it cannot be determined by border coordinates + + + + + Returns the type of the + border + + the type of border. + + + + Gets the + color + of the + border + + + the + color + + + + + Gets the opacity of the + border + + the border opacity; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + + + + Gets the width of the + border + + the width + + + + Sets the + color + of the + border + + The color + + + + Sets the width of the + border + + The width + + + Indicates whether the border is equal to the given border. + + Indicates whether the border is equal to the given border. + The border type, width and color are considered during the comparison. + + + + + + + + Returns the + side + corresponded to the line between two points. + + + Returns the + side + corresponded to the line between two points. + Notice that we consider the rectangle traversal to be clockwise. + In case side couldn't be detected we will fallback to default side + + the abscissa of the left-bottom point + the ordinate of the left-bottom point + the abscissa of the right-top point + the ordinate of the right-top point + the default side of border + + the corresponded + side + + + + Enumerates the different sides of the rectangle. + + Enumerates the different sides of the rectangle. + The rectangle sides are expected to be parallel to corresponding page sides + Otherwise the result is Side.NONE + + + + + Gets a + + in which two lines intersect. + + + a + + which defines some point on the first line + + + a + + which defines another point on the first line + + + a + + which defines some point on the second line + + + a + + which defines another point on the second line + + + the intersection + + + + + Adjusts the size of the gap between dots + + the + border + length + + the initial size of the gap + the adjusted size of the gap + + + Perform drawing operations to draw discontinuous borders. + + Perform drawing operations to draw discontinuous borders. Used by + + , + + and + . + + canvas to draw on + rectangle representing the bounding box of the drawing operations + the horizontal radius of the border's two corners + the vertical radius of the border's two corners + + the + + , that we will fallback to, if it cannot be determined by border coordinates + + defines width of the border that is before the current one + defines width of the border that is after the current one + + + Calculate adjusted starting points for discontinuous borders, given two opposing points (A and B) that define the bounding rectangle + + x-coordinate of point A + y-ordinate of point A + x-coordinate of point B + y-ordinate of point B + default side of the border used to determine the side given by points A and B + float[] containing the adjusted starting points in the form {x1,y1,x2,y2} + + + Represents a border that is displayed using a 3D effect. + + + + Predefined gray + RGB-color + + + + Creates a Border3D instance with the specified width. + Creates a Border3D instance with the specified width. Also sets the color to gray. + with of the border + + + Creates a Border3D instance with the specified width and color. + color of the border + width of the border + + + Creates a Border3D instance with the specified width and color. + color of the border + width of the border + + + Creates a Border3D instance with the specified width and color. + color of the border + width of the border + + + Creates a Border3D instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates a Border3D instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates a Border3D instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + + + + + + + + Makes the + + color of the border darker and returns the result + + The darker color + + + + Sets the fill color for the inner half of + 3D Border + + PdfCanvas the color will be applied on + + the + side + the color will be applied on + + + + + Sets the fill color for the outer half of + 3D Border + + PdfCanvas the color will be applied on + + the + side + the color will be applied on + + + + Draws a border with dashes around the element it's been set to. + + + The modifier to be applied on the width to have the dash size + + + The modifier to be applied on the width to have the initial gap size + + + Creates a DashedBorder with the specified width and sets the color to black. + width of the border + + + Creates a DashedBorder with the specified width and the specified color. + color of the border + width of the border + + + Creates a DashedBorder with the specified width, color and opacity. + color of the border + width of the border + width of the border + + + + + + + + + + + + Draws a dotted border around the element it has been set to. + + Draws a dotted border around the element it has been set to. Do note that this border draw square dots, + if you want to draw round dots, see + . + + + + The modifier to be applied on the width to have the initial gap size + + + Creates a DottedBorder instance with the specified width. + Creates a DottedBorder instance with the specified width. The color is set to the default: black. + + width of the border + + + Creates a DottedBorder instance with the specified width and color. + color of the border + width of the border + + + Creates a DottedBorder with the specified width, color and opacity. + color of the border + width of the border + width of the border + + + + + + + + + + + + + + + Creates a double border around the element it's set to. + + Creates a double border around the element it's set to. The space between the two border lines has + the same width as the two borders. If a background has been set on the element the color will show in + between the two borders. + + + + Creates a DoubleBorder with the specified width for both the two borders as the space in between them. + + + Creates a DoubleBorder with the specified width for both the two borders as the space in between them. + The color is set to the default: black. + + width of the borders and the space between them + + + + Creates a DoubleBorder with the specified width for both the two borders as the space in between them and + the specified color for the two borders. + + + Creates a DoubleBorder with the specified width for both the two borders as the space in between them and + the specified color for the two borders. The space in between the two borders is either colorless or will + be filled with the background color of the element, if a color has been set. + + The color of the borders + The width of the borders and the space between them + + + + Creates a DoubleBorder with the specified width for both the two borders as the space in between them and + the specified color for the two borders. + + + Creates a DoubleBorder with the specified width for both the two borders as the space in between them and + the specified color for the two borders. The space in between the two borders is either colorless or will + be filled with the background color of the element, if a color has been set. + + The color of the borders + The width of the borders and the space between them + The opacity + + + + + + + + + + + + Draws a border with a specific dashes around the element it's been set to. + + + Default dash unitsOn and unitsOff value. + + + Creates a FixedDashedBorder with the specified width. + width of the border + + + Creates a FixedDashedBorder with the specified width and the specified color. + color of the border + width of the border + + + Creates a FixedDashedBorder with the specified width, color and opacity. + color of the border + width of the border + the opacity which border should have + + + Creates a FixedDashedBorder with the specified width, color, unitsOn, unitsOff and phase. + color of the border + width of the border + the number of units that must be 'on' + the number of units that must be 'off' + the value of the phase + + + Creates a FixedDashedBorder with the specified width, color, opacity, unitsOn, unitsOff and phase. + + color of the border + width of the border + the opacity which border should have + the number of units that must be 'on' + the number of units that must be 'off' + the value of the phase + + + + + + + + + + + + + + + + Represents a + + with a groove effect being applied. + + + + Creates a GrooveBorder instance with the specified width. + Creates a GrooveBorder instance with the specified width. The color is set to the predefined gray. + + width of the border + + + + Creates a GrooveBorder instance with the specified width and the + rgb color. + + width of the border + + the + rgb color + of the border + + + + + Creates a GrooveBorder instance with the specified width and the + cmyk color. + + width of the border + + the + cmyk color + of the border + + + + + Creates a GrooveBorder instance with the specified width and the + gray color. + + width of the border + + the + gray color + of the border + + + + Creates a GrooveBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates a GrooveBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates a GrooveBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + + + + + + + + + + + Represents a + + with an inset effect being applied. + + + + Creates an InsetBorder instance with the specified width. + Creates an InsetBorder instance with the specified width. The color is set to the predefined gray. + + width of the border + + + + Creates an InsetBorder instance with the specified width and the + rgb color. + + width of the border + + the + rgb color + of the border + + + + + Creates an InsetBorder instance with the specified width and the + cmyk color. + + width of the border + + the + cmyk color + of the border + + + + + Creates an InsetBorder instance with the specified width and the + gray color. + + width of the border + + the + gray color + of the border + + + + Creates an InsetBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates an InsetBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates an InsetBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + + + + + + + + + + + Represents a + + with an outset effect being applied. + + + + Creates an OutsetBorder instance with the specified width. + Creates an OutsetBorder instance with the specified width. The color is set to the predefined gray. + + width of the border + + + + Creates an OutsetBorder instance with the specified width and the + rgb color. + + width of the border + + the + rgb color + of the border + + + + + Creates an OutsetBorder instance with the specified width and the + cmyk color. + + width of the border + + the + cmyk color + of the border + + + + + Creates an OutsetBorder instance with the specified width and the + gray color. + + width of the border + + the + gray color + of the border + + + + Creates an OutsetBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates an OutsetBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates an OutsetBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + + + + + + + + + + + Represents a + + with a ridge effect being applied. + + + + Creates a RidgeBorder instance with the specified width. + Creates a RidgeBorder instance with the specified width. The color is set to the predefined gray. + + width of the border + + + + Creates a RidgeBorder instance with the specified width and the + rgb color. + + width of the border + + the + rgb color + of the border + + + + + Creates a RidgeBorder instance with the specified width and the + cmyk color. + + width of the border + + the + cmyk color + of the border + + + + + Creates a RidgeBorder instance with the specified width and the + gray color. + + width of the border + + the + gray color + of the border + + + + Creates a RidgeBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates a RidgeBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + Creates a RidgeBorder instance with the specified width, color and opacity. + color of the border + width of the border + opacity of the border + + + + + + + + + + + + Draws a border with rounded dots around the element it's been set to. + + Draws a border with rounded dots around the element it's been set to. For square dots see + . + + + + The modifier to be applied on the width to have the initial gap size + + + Creates a RoundDotsBorder with the specified wit?dth and sets the color to black. + width of the border + + + Creates a RoundDotsBorder with the specified wit?dth and the specified color. + color of the border + width of the border + + + Creates a RoundDotsBorder with the specified width, color and opacity. + color of the border + width of the border + width of the border + + + + + + + + + + + + + + + Draws a solid border around the element it's set to. + + + Creates a SolidBorder with the specified width and sets the color to black. + width of the border + + + Creates a SolidBorder with the specified width and the specified color. + color of the border + width of the border + + + Creates a SolidBorder with the specified width, color and opacity. + color of the border + width of the border + the opacity which border should have + + + + + + + + + + + + + + + + This class is used for adding content directly onto a specified + . + + + This class is used for adding content directly onto a specified + . + + does not know the concept of a page, so it can't reflow to a 'next' + . + This class effectively acts as a bridge between the high-level layout + API and the low-level kernel API. + + + + + Is initialized and used only when Canvas element autotagging is enabled, see + . + + + Is initialized and used only when Canvas element autotagging is enabled, see + . + It is also used to determine if autotagging is enabled. + + + + Creates a new Canvas to manipulate a specific page content stream. + + Creates a new Canvas to manipulate a specific page content stream. The given page shall not be flushed: + drawing on flushed pages is impossible because their content is already written to the output stream. + Use this constructor to be able to add + + elements on it + (using any other constructor would result in inability to add PDF annotations, based on which, for example, links work). + + If the + + is true, using this constructor would automatically enable + the tagging for the content. Regarding tagging the effect is the same as using + . + + + the page on which this canvas will be rendered, shall not be flushed (see + + ). + + the maximum area that the Canvas may write upon + + + + Creates a new Canvas to manipulate a specific content stream, which might be for example a page + or + + stream. + + the low-level content stream writer + the maximum area that the Canvas may write upon + + + Creates a new Canvas to manipulate a specific document and page. + The low-level content stream writer + The maximum area that the Canvas may write upon + Whether to flush the canvas immediately after operations, false otherwise + + + + Creates a new Canvas to manipulate a specific + . + + the form + the document that the resulting content stream will be written to + + + + Gets the + + for this canvas. + + the document that the resulting content stream will be written to + + + Gets the root area rectangle. + the maximum area that the Canvas may write upon + + + + Gets the + . + + the low-level content stream writer + + + + Sets the + + for this Canvas. + + a renderer specific for canvas operations + + + The page on which this canvas will be rendered. + + the specified + + instance, might be null if this the page was not set. + + + + Enables canvas content autotagging. + Enables canvas content autotagging. By default it is disabled. + the page, on which this canvas will be rendered. + + + true if autotagging of canvas content is enabled. Default value - false. + + + Defines if the canvas is exactly the direct content of the page. + + Defines if the canvas is exactly the direct content of the page. This is known definitely only if + this instance was created by + + constructor overload, + otherwise this method returns false. + + + true if the canvas on which this instance performs drawing is directly the canvas of the page; + false if the instance of this class was created not with + + constructor overload. + + + + + Performs an entire recalculation of the element flow on the canvas, + taking into account all its current child elements. + + + Performs an entire recalculation of the element flow on the canvas, + taking into account all its current child elements. May become very + resource-intensive for large documents. + Do not use when you have set + + to true. + + + + + Forces all registered renderers (including child element renderers) to + flush their contents to the content stream. + + + + + Closes the + . + + + Closes the + + . Although not completely necessary in all cases, it is still recommended to call this + method when you are done working with + + object, as due to some properties set there might be some + 'hanging' elements, which are waiting other elements to be added and processed. + + tells the + + that no more elements will be added and it is time to finish processing all the elements. + + + + This class is used for convenient multi-column Document Layouting + + + Creates a ColumnDocumentRenderer. + + Creates a ColumnDocumentRenderer. Sets + + to true. + + + the + + on which this Renderer will calculate + and execute element placements + + + an array of + + specifying the acceptable + positions for elements on a page + + + + + Creates a ColumnDocumentRenderer whose elements need not be flushed + immediately. + + + the + + on which this Renderer will calculate + and execute element placements + + whether or not to flush contents as soon as possible + + an array of + + specifying the acceptable + positions for elements on a page + + + + + Gets the array index of the next area that will be written on after the + current one is full (overflowed). + + the array index of the next area that will be written on + + + Document is the default root element when creating a self-sufficient PDF. + + Document is the default root element when creating a self-sufficient PDF. It + mainly operates high-level operations e.g. setting page size and rotation, + adding elements, and writing text at specific coordinates. It has no + knowledge of the actual PDF concepts and syntax. + + A + + 's rendering behavior can be modified by extending + + and setting an instance of this newly created with + . + + + + + Creates a document from a + . + + + Creates a document from a + + . Initializes the first page + with the + + 's current default + . + + the in-memory representation of the PDF document + + + + Creates a document from a + + with a manually set + . + + the in-memory representation of the PDF document + the page size + + + + Creates a document from a + + with a manually set + . + + the in-memory representation of the PDF document + the page size + + if true, write pages and page-related instructions + to the + + as soon as possible. + + + + Closes the document and associated PdfDocument. + + + Terminates the current element, usually a page. + + Terminates the current element, usually a page. Sets the next element + to be the size specified in the argument. + + + an + + , optionally with a specified size + + this element + + + Gets PDF document. + the in-memory representation of the PDF document + + + + Changes the + + at runtime. + + + Changes the + + at runtime. Use this to customize + the Document's + + behavior. + + the DocumentRenderer to set + + + + Forces all registered renderers (including child element renderers) to + flush their contents to the content stream. + + + + + Performs an entire recalculation of the document flow, taking into + account all its current child elements. + + + Performs an entire recalculation of the document flow, taking into + account all its current child elements. May become very + resource-intensive for large documents. + + Do not use when you have set + + to true. + + + + Gets the left margin, measured in points + a float containing the left margin value + + + Sets the left margin, measured in points + a float containing the new left margin value + + + Gets the right margin, measured in points + a float containing the right margin value + + + Sets the right margin, measured in points + a float containing the new right margin value + + + Gets the top margin, measured in points + a float containing the top margin value + + + Sets the top margin, measured in points + a float containing the new top margin value + + + Gets the bottom margin, measured in points + a float containing the bottom margin value + + + Sets the bottom margin, measured in points + a float containing the new bottom margin value + + + Convenience method to set all margins with one method. + the upper margin + the right margin + the left margin + the lower margin + + + + Returns the area that will actually be used to write on the page, given + the current margins. + + + Returns the area that will actually be used to write on the page, given + the current margins. Does not have any side effects on the document. + + the size of the page to + + a + + with the required dimensions and origin point + + + + Checks whether a method is invoked at the closed document + + + A generic abstract element that fits in a PDF layout object hierarchy. + + A generic abstract element that fits in a PDF layout object hierarchy. + A superclass of all + layout object + implementations. + + this type + + + Sets values for a relative repositioning of the Element. + + Sets values for a relative repositioning of the Element. Also has as a + side effect that the Element's + + is changed to + relative. + The default implementation in + + treats + left and top as the most important values. Only + if left == 0 will right be used for the + calculation; ditto for top vs. bottom. + + movement to the left + movement upwards on the page + movement to the right + movement downwards on the page + this Element. + + + + Sets values for a absolute repositioning of the Element. + + Sets values for a absolute repositioning of the Element. + The coordinates specified correspond to the + bottom-left corner of the element and it grows upwards. + Also has as a side effect that the Element's + + is changed to + fixed. + + horizontal position of the bottom-left corner on the page + vertical position of the bottom-left corner on the page + a floating point value measured in points. + this Element. + + + Sets values for a absolute repositioning of the Element. + + Sets values for a absolute repositioning of the Element. + The coordinates specified correspond to the + bottom-left corner of the element and it grows upwards. + Also has as a side effect that the Element's + + is changed to + fixed. + + horizontal position of the bottom-left corner on the page + vertical position of the bottom-left corner on the page + + a + + + this Element. + + + Sets values for a absolute repositioning of the Element. + + Sets values for a absolute repositioning of the Element. + The coordinates specified correspond to the + bottom-left corner of the element and it grows upwards. + Also has as a side effect that the Element's + + is changed to + fixed. + + the page where the element must be positioned + horizontal position of the bottom-left corner on the page + vertical position of the bottom-left corner on the page + a floating point value measured in points. + this Element. + + + Sets values for a absolute repositioning of the Element. + + Sets values for a absolute repositioning of the Element. + The coordinates specified correspond to the + bottom-left corner of the element and it grows upwards. + Also has as a side effect that the Element's + + is changed to + fixed. + + the page where the element must be positioned + horizontal position of the bottom-left corner on the page + vertical position of the bottom-left corner on the page + a floating point value measured in points. + this Element. + + + Sets the horizontal alignment of this Element. + + an enum value of type + + + this Element. + + + Sets the font of this Element. + + Sets the font of this Element. + + This property overrides the value set by + + . Font is set either via exact + + instance or via font-family name that should correspond to the font in + + , but not both. + + + a + font + + this Element. + + + Sets the preferable font families for this Element. + + Sets the preferable font families for this Element. + Note that + + shall be set as well. + See + + + This property overrides the value set by + + . Font is set either via exact + + instance or via font-family name that should correspond to the font in + + , but not both. + + All + + that are passed as argument are directly handled as a collection of font family names, + without any pre-processing. Every font family name is treated as a preferable font-family to be used + inside the element. The + + argument is interpreted as as an ordered list, + where every next font-family should be used if font for the previous one was not found or doesn't contain required glyphs. + + + defines an ordered list of preferable font families for this Element. + this Element. + + + Sets the preferable font families for this Element. + + Sets the preferable font families for this Element. + Note that + + shall be set as well. + See + + + This property overrides the value set by + + . Font is set either via exact + + instance or via font-family name that should correspond to the font in + + , but not both. + + All + + that are passed as argument are directly handled as a collection of font family names, + without any pre-processing. Every font family name is treated as a preferable font-family to be used + inside the element. The + + argument is interpreted as as an ordered list, + where every next font-family should be used if font for the previous one was not found or doesn't contain required glyphs. + + + defines an ordered list of preferable font families for this Element. + this Element. + + + Sets the font color of this Element. + + a + + for the text in this Element. + + this Element. + + + Sets the font color of this Element and the opacity of the text. + + a + + for the text in this Element. + + an opacity for the text in this Element; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent. + + this Element. + + + Sets the font size of this Element, measured in points. + a floating point value + this Element. + + + Sets the text alignment of this Element. + + an enum value of type + + + this Element. + + + Defines a custom spacing distance between all characters of a textual element. + + Defines a custom spacing distance between all characters of a textual element. + The character-spacing parameter is added to the glyph's horizontal or vertical displacement (depending on the writing mode). + + a floating point value + this Element. + + + Defines a custom spacing distance between words of a textual element. + + Defines a custom spacing distance between words of a textual element. + This value works exactly like the character spacing, but only kicks in at word boundaries. + + a floating point value + this Element. + + + Enable or disable kerning. + + Enable or disable kerning. + Some fonts may specify kern pairs, i.e. pair of glyphs, between which the amount of horizontal space is adjusted. + This adjustment is typically negative, e.g. in "AV" pair the glyphs will typically be moved closer to each other. + + an enum value as a boolean wrapper specifying whether or not to apply kerning + this Element. + + + Specifies a background color for the Element. + the background color + this Element. + + + Specifies a background color for the Element. + the background color + the background color opacity; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent. + + this Element. + + + + Specifies a background color for the Element, and extra space that + must be counted as part of the background and therefore colored. + + the background color + extra coloring to the left side + extra coloring at the top + extra coloring to the right side + extra coloring at the bottom + this Element. + + + + Specifies a background color for the Element, and extra space that + must be counted as part of the background and therefore colored. + + the background color + the background color opacity; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + extra coloring to the left side + extra coloring at the top + extra coloring to the right side + extra coloring at the bottom + this Element. + + + Specifies a background image for the Element. + + + + + this Element. + + + Specifies a list of background images for the Element. + + List of + + + this Element. + + + Sets a border for all four edges of this Element with customizable color, width, pattern type. + + a customized + + + this Element. + + + Sets a border for the upper limit of this Element with customizable color, width, pattern type. + + a customized + + + this Element. + + + Sets a border for the right limit of this Element with customizable color, width, pattern type. + + a customized + + + this Element. + + + Sets a border for the bottom limit of this Element with customizable color, width, pattern type. + + a customized + + + this Element. + + + Sets a border for the left limit of this Element with customizable color, width, pattern type. + + a customized + + + this Element. + + + Sets a border radius for all four edges of this Element. + + a customized + + + this Element. + + + Sets a border radius for the bottom left corner of this Element. + + a customized + + + this Element. + + + Sets a border radius for the bottom right corner of this Element. + + a customized + + + this Element. + + + Sets a border radius for the top left corner of this Element. + + a customized + + + this Element. + + + Sets a border radius for the top right corner of this Element. + + a customized + + + this Element. + + + Sets a rule for splitting strings when they don't fit into one line. + + Sets a rule for splitting strings when they don't fit into one line. + The default implementation is + + + + an implementation of + + + this Element. + + + Gets a rule for splitting strings when they don't fit into one line. + + the current string splitting rule, an implementation of + + + + + + Gets the text rendering mode, a variable that determines whether showing + text causes glyph outlines to be stroked, filled, used as a clipping + boundary, or some combination of the three. + + the current text rendering mode + + + + + Sets the text rendering mode, a variable that determines whether showing + text causes glyph outlines to be stroked, filled, used as a clipping + boundary, or some combination of the three. + + an int value + this Element. + + + + Gets the stroke color for the current element. + + Gets the stroke color for the current element. + The stroke color is the color of the outlines or edges of a shape. + + the current stroke color + + + Sets the stroke color for the current element. + + Sets the stroke color for the current element. + The stroke color is the color of the outlines or edges of a shape. + + a new stroke color + this Element. + + + Gets the stroke width for the current element. + + Gets the stroke width for the current element. + The stroke width is the width of the outlines or edges of a shape. + + the current stroke width + + + Sets the stroke width for the current element. + + Sets the stroke width for the current element. + The stroke width is the width of the outlines or edges of a shape. + + a new stroke width + this Element. + + + Switch on the simulation of bold style for a font. + + Switch on the simulation of bold style for a font. + Be aware that using correct bold font is highly preferred over this option. + + this element + + + Switch on the simulation of italic style for a font. + + Switch on the simulation of italic style for a font. + Be aware that using correct italic (oblique) font is highly preferred over this option. + + this element + + + Sets default line-through attributes for text. + + Sets default line-through attributes for text. + See + + for more fine tuning. + + this element + + + Sets default underline attributes for text. + + Sets default underline attributes for text. + See other overloads for more fine tuning. + + this element + + + Sets an horizontal line that can be an underline or a strikethrough. + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the text width. + Multiple call to this method will produce multiple lines. + + the absolute thickness of the line + the absolute y position relative to the baseline + this element + + + Sets an horizontal line that can be an underline or a strikethrough. + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically due to position parameter. + Multiple call to this method will produce multiple lines. + + The thickness of the line will be + thickness + thicknessMul * fontSize. + The position of the line will be + baseLine + yPosition + yPositionMul * fontSize. + + + the color of the line or null to follow the + text color + + the absolute thickness of the line + the thickness multiplication factor with the font size + the absolute y position relative to the baseline + the position multiplication factor with the font size + + the end line cap style. Allowed values are enumerated in + + + this element + + + Sets an horizontal line that can be an underline or a strikethrough. + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically due to position parameter. + Multiple call to this method will produce multiple lines. + + The thickness of the line will be + thickness + thicknessMul * fontSize. + The position of the line will be + baseLine + yPosition + yPositionMul * fontSize. + + + the color of the line or null to follow the + text color + + the opacity of the line; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + the absolute thickness of the line + the thickness multiplication factor with the font size + the absolute y position relative to the baseline + the position multiplication factor with the font size + + the end line cap style. Allowed values are enumerated in + + + this element + + + + This attribute specifies the base direction of directionally neutral text + (i.e., text that doesn't have inherent directionality as defined in Unicode) + in an element's content and attribute values. + + base direction + this element + + + + Sets a custom hyphenation configuration which will hyphenate words automatically accordingly to the + language and country. + + The hyphenation configuration + this element + + + Sets the writing system for this text element. + a new script type + this Element. + + + Sets a destination name that will be created when this element is drawn to content. + the destination name to be created + this Element. + + + Sets an opacity of the given element. + + Sets an opacity of the given element. It will affect element content, borders and background. Note, that it will also + affect all element children, as they are the content of the given element. + + a float between 0 and 1, where 1 stands for fully opaque element and 0 - for fully transparent + + this Element. + + + + Defines the most common properties that most + + implementations + share. + + the type of the implementation + + + Add a new style to this element. + + Add a new style to this element. A style can be used as an effective way + to define multiple equal properties to several elements, however its properties have + lower priority than properties, directly set on + + Note that if several Style objects are added, iText checks them one by one + in the order in which they were added and returns the property's value from + the last Style object, which contains this property. So, if there are two Style + objects added: the first has set width of 100 points and the second of 200 points, + iText will get 200 points as width value. + + the style to be added + this element + + + Gets the child elements of this elements + a list of children + + + Returns true if this list contains no elements. + true if this list contains no elements + + + Sets an action on this Element. + + Sets an action on this Element. An action is a general PDF concept that + signifies anything that makes the document interactive, e.g. a hyperlink + or a button. + + + the + + that should be performed + + this Element + + + Explicitly sets the page number this element should be put on. + + Explicitly sets the page number this element should be put on. The location + on the page will be the same as if it were added at the end of the document, + but it will be located on the specified page. + + This method should be used very carefully in client code. + + the page number of the page this element should be placed on + this Element + + + Creates new renderer instance. + + new + + + + + + A layout object that terminates the current content area and creates a new + one. + + + A layout object that terminates the current content area and creates a new + one. If no + + is given, the new content area will have the same + size as the current one. + + + + Creates an AreaBreak. + + Creates an AreaBreak. The new content area will have the same size as the + current one. + + + + Creates an AreaBreak that terminates a specified area type. + + an + area break type + + + + Creates an AreaBreak. + + Creates an AreaBreak. The new content area will have the specified page + size. + + the size of the new content area + + + Gets the page size. + + the + page size + of the next content area. + + + + Sets the page size. + + the new + page size + of the next content area. + + + + Gets the type of area that this AreaBreak will terminate. + + the current + area break type + + + + + A + + will try to take up as much horizontal space as + available to it on the canvas or page. + + + A + + will try to take up as much horizontal space as + available to it on the canvas or page. The concept is comparable to the block + element in HTML. Also like in HTML, the visual representation of the object + can be delimited by padding, a border, and/or a margin. + + the type of the implementation + + + Creates a BlockElement. + + + Gets the current left margin width of the element. + + the left margin width, as a + + object + + + + Sets the left margin width of the element. + the new left margin width + this element + + + Gets the current right margin width of the element. + + the right margin width, as a + + object + + + + Sets the right margin width of the element. + the new right margin width + this element + + + Gets the current top margin width of the element. + + the top margin width, as a + + object + + + + Sets the top margin width of the element. + the new top margin width + this element + + + Gets the current bottom margin width of the element. + + the bottom margin width, as a + + object + + + + Sets the bottom margin width of the element. + the new bottom margin width + this element + + + Sets all margins around the element to the same width. + the new margin width + this element + + + Sets the margins around the element to a series of new widths. + the new margin top width + the new margin right width + the new margin bottom width + the new margin left width + this element + + + Gets the current left padding width of the element. + + the left padding width, as a + + object + + + + Sets the left padding width of the element. + the new left padding width + this element + + + Gets the current right padding width of the element. + + the right padding width, as a + + object + + + + Sets the right padding width of the element. + the new right padding width + this element + + + Gets the current top padding width of the element. + + the top padding width, as a + + object + + + + Sets the top padding width of the element. + the new top padding width + this element + + + Gets the current bottom padding width of the element. + + the bottom padding width, as a + + object + + + + Sets the bottom padding width of the element. + the new bottom padding width + this element + + + Sets all paddings around the element to the same width. + the new padding width + this element + + + Sets the paddings around the element to a series of new widths. + the new padding top width + the new padding right width + the new padding bottom width + the new padding left width + this element + + + Sets the vertical alignment of the element. + the vertical alignment setting + this element + + + + Sets a ratio which determines in which proportion will word spacing and character spacing + be applied when horizontal alignment is justified. + + + the ratio coefficient. It must be between 0 and 1, inclusive. + It means that ratio part of the free space will + be compensated by word spacing, and 1-ratio part of the free space will + be compensated by character spacing. + If ratio is 1, additional character spacing will not be applied. + If ratio is 0, additional word spacing will not be applied. + + this element + + + + Returns whether the + + should be kept together as much + as possible. + + + the current value of the + + property + + + + + Sets whether the + + should be kept together as much + as possible. + + + the new value of the + + property + + this element + + + + Returns whether the end of this + + and the start of the next sibling of this element + should be placed in the same area. + + + the current value of the + + property + + + + + Sets whether the end of this + + and the start of the next sibling of this element + should be placed in the same area. + + + Sets whether the end of this + + and the start of the next sibling of this element + should be placed in the same area. + Note that this will only work for high-level elements, i.e. elements added to the + . + + + the new value of the + + property + + this element + + + Sets the rotation radAngle. + the new rotation radAngle, as a float, in radians + this element + + + Sets the rotation angle. + the new rotation angle, as a double, in radians + this element + + + Sets the width property of a block element, measured in points. + a value measured in points. + this Element. + + + + Sets the width property of a block element with a + . + + + a + + object + + this Element. + + + Gets the width property of a block element. + the width of the element, with a value and a measurement unit. + + + + + Sets the height property of a block element with a + . + + + a + + object + + this Element. + + + Sets the height property a block element as a point-value. + a floating point value for the new height + the block element itself. + + + Gets the height property of a block element. + the height of the element, as a floating point value. Null if the property is not present + + + Sets the max-height of a block element as point-unit value. + a floating point value for the new max-height + the block element itself + + + + Sets the max-height property of a block element with a + . + + + a + + object + + the block element itself + + + + Sets the min-height property of a block element with a + . + + + a + + object + + the block element itself + + + Sets the min-height of a block element as point-unit value. + a floating point value for the new min-height + the block element itself + + + + Sets the max-width property of a block element with a + . + + + a + + object + + the block element itself + + + Sets the max-width of a block element as point-unit value. + a floating point value for the new max-width + the block element itself + + + + Sets the min-width property of a block element with a + . + + + a + + object + + the block element itself + + + Sets the min-width of a block element as point-unit value. + a floating point value for the new min-width + the block element itself + + + Give this element a neutral role. + + Give this element a neutral role. See also + . + + this Element + + + + A + + is one piece of data in an enclosing grid, the + . + + + A + + is one piece of data in an enclosing grid, the + . + This object is a + + , giving it a number of visual layout + properties. + A cell can act as a container for a number of layout elements; it can only + contain other + + objects or images. Other types of layout + elements must be wrapped in a + . + + + + Creates a cell which takes a custom amount of cell spaces in the table. + the number of rows this cell must occupy. Negative numbers will make the argument default to 1. + + the number of columns this cell must occupy. Negative numbers will make the argument default to 1. + + + + Creates a cell. + + + Gets a cell renderer for this element. + + Gets a cell renderer for this element. Note that this method can be called more than once. + By default each element should define its own renderer, but the renderer can be overridden by + + method call. + + a cell renderer for this element + + + + Gets + the number of the row + in which the cell is located. + + the row number + + + + Gets + the number of the column + in which the cell is located. + + the column number + + + + Gets the + rowspan + of the cell. + + the rowspan + + + + Gets the + colspan + of the cell. + + the colspan + + + Adds any block element to the cell's contents. + + a + + + this Element + + + Adds an image to the cell's contents. + + an + + + this Element + + + Clones a cell with its position, properties, and optionally its contents. + whether or not to also include the contents of the cell. + a clone of this Element + + + Updates cell indexes. + the number of the row to update + the number of the col to update + to evaluate new colspan + + this + + with updated fields + + + + + A + + is a container object that defines a section in a document, + which will have some shared layout properties. + + + A + + is a container object that defines a section in a document, + which will have some shared layout properties. Like all + + types, it will try to take up as much horizontal space as possible. + + The concept is very similar to that of the div tag in HTML. + + + + Adds any block element to the div's contents. + + a + + + this Element + + + Adds an image to the div's contents. + + an + + + this Element + + + Adds an area break to the div's contents. + + an + + + this Element + + + + Defines whether the + + should occupy all the space left in the available area + in case it is the last element in this area. + + defines whether the available area should be filled + + this + + + + + + Defines whether the + + should occupy all the space left in the available area + in case the area has been split and it is the last element in the split part of this area. + + defines whether the available area should be filled + + this + + + + + + A + + represents a container of the flex objects. + + + + + Creates new + + instance. + + + + The interface represents abstract layout element and provides an access to its children. + + + Gets the child elements of this elements. + a list of children + + + This class represents a block layout element with special margins, tabbing, and alignment. + + This class represents a block layout element with special margins, tabbing, and alignment. + An + + will try to take up as much horizontal space as available to it + on the canvas or page. The concept is comparable to the block element in HTML. + + + + + This class represents a layout element, i.e. a piece of content that will + take up 'physical' space on a canvas or document. + + + This class represents a layout element, i.e. a piece of content that will + take up 'physical' space on a canvas or document. Its presence and positioning + may influence the position of other + + s on the layout surface. + + + + + Overrides the + + instance which will be returned by the next call to the + . + + the renderer instance + + + Gets a renderer for this element. + + Gets a renderer for this element. Note that this method can be called more than once. + By default each element should define its own renderer, but the renderer can be overridden by + + method call. + + a renderer for this element + + + Creates a renderer subtree with root in the current element. + + Creates a renderer subtree with root in the current element. + Compared to + + , the renderer returned by this method should contain all the child + renderers for children of the current element. + + a renderer subtree for this element + + + + A + + is a layout element which may get added to + indefinitely, making the object prohibitively large. + + + A + + is a layout element which may get added to + indefinitely, making the object prohibitively large. + In order to avoid consuming and holding on to undesirable amounts of + resources, the contents of a + + can be flushed regularly + by client code, e.g. at page boundaries or after a certain amount of additions. + + + + Checks whether an element has already been marked as complete. + the completion marker boolean + + + Indicates that all the desired content has been added to this large element. + + + Writes the newly added content to the document. + + + Flushes the content which has just been added to the document. + + Flushes the content which has just been added to the document. + This is a method for internal usage and is called automatically by the document. + + + + Sets the document this element is bound to. + + Sets the document this element is bound to. + We cannot write a large element into several documents simultaneously because we would need + more bulky interfaces for this feature. For now we went for simplicity. + + the document + + + + A marker subinterface of + + that specifies that the layout object + is, by definition, on the lowest tier in the object hierarchy. + + + A marker subinterface of + + that specifies that the layout object + is, by definition, on the lowest tier in the object hierarchy. A + leaf element + must not act as a container for other + elements. + + + + A layout element that represents an image for inclusion in the document model. + + + + Creates an + + from an image XObject, the representation of an + image in PDF syntax. + + + an internal + + + + + + Creates an + + from a form XObject, the representation of a + form in PDF syntax. + + + an internal + + + + + + Creates an + + from an image XObject, the representation of an + image in PDF syntax, with a custom width. + + + an internal + + + a float value + + + + Creates an + + from an image XObject, the representation of an + image in PDF syntax, with a custom width and on a fixed position. + + + an internal + + + a float value representing the horizontal offset of the lower left corner of the image + a float value representing the vertical offset of the lower left corner of the image + a float value + + + + Creates an + + from an image XObject, the representation of an + image in PDF syntax, on a fixed position. + + + an internal + + + a float value representing the horizontal offset of the lower left corner of the image + a float value representing the vertical offset of the lower left corner of the image + + + + Creates an + + from a form XObject, the representation of a + form in PDF syntax. + + + an internal + + + a float value representing the horizontal offset of the lower left corner of the form + a float value representing the vertical offset of the lower left corner of the form + + + + Creates an + + from an image resource, read in from a file + with the iText I/O module. + + + an internal representation of the + image resource + + + + + Creates an + + from an image resource, read in from a file + with the iText I/O module, on a fixed position. + + + an internal representation of the + image resource + + a float value representing the horizontal offset of the lower left corner of the image + a float value representing the vertical offset of the lower left corner of the image + + + + Creates an + + from an image resource, read in from a file + with the iText I/O module, with a custom width and on a fixed position. + + + an internal representation of the + image resource + + a float value representing the horizontal offset of the lower left corner of the image + a float value representing the vertical offset of the lower left corner of the image + a float value + + + Gets the XObject contained in this image object + + a + + + + + Sets the rotation radAngle. + a value in radians + this element + + + Gets the current left margin width of the element. + + the left margin width, as a + + object + + + + Sets the left margin width of the element. + the new left margin width + this element + + + Gets the current right margin width of the image. + + the right margin width, as a + + object + + + + Sets the right margin width of the image. + the new right margin width + this image + + + Gets the current top margin width of the image. + + the top margin width, as a + + object + + + + Sets the top margin width of the image. + the new top margin width + this image + + + Gets the current bottom margin width of the image. + + the bottom margin width, as a + + object + + + + Sets the bottom margin width of the image. + the new bottom margin width + this image + + + Sets the margins around the image to a series of new widths. + the new margin top width + the new margin right width + the new margin bottom width + the new margin left width + this image + + + Gets the current left padding width of the image. + + the left padding width, as a + + object + + + + Sets the left padding width of the image. + the new left padding width + this image + + + Gets the current right padding width of the image. + + the right padding width, as a + + object + + + + Sets the right padding width of the image. + the new right padding width + this image + + + Gets the current top padding width of the image. + + the top padding width, as a + + object + + + + Sets the top padding width of the image. + the new top padding width + this image + + + Gets the current bottom padding width of the image. + + the bottom padding width, as a + + object + + + + Sets the bottom padding width of the image. + the new bottom padding width + this image + + + Sets all paddings around the image to the same width. + the new padding width + this image + + + Sets the paddings around the image to a series of new widths. + the new padding top width + the new padding right width + the new padding bottom width + the new padding left width + this image + + + Scale the image relative to its default size. + the horizontal scaling coefficient. default value 1 = 100% + the vertical scaling coefficient. default value 1 = 100% + this element + + + Scale the image to an absolute size. + + Scale the image to an absolute size. This method will preserve the + width-height ratio of the image. + + the new maximum width of the image + the new maximum height of the image + this element + + + Scale the image to an absolute size. + + Scale the image to an absolute size. This method will not + preserve the width-height ratio of the image. + + the new absolute width of the image + the new absolute height of the image + this element + + + Sets the autoscale property for both width and height. + whether or not to let the image resize automatically + this image + + + Sets the autoscale property for the height of the image. + + Sets the autoscale property for the height of the image. + Is currently bugged and will not work as expected. + + whether or not to let the image height resize automatically + this image + + + Sets the autoscale property for the width of the image. + whether or not to let the image width resize automatically + this image + + + Sets values for a absolute repositioning of the Element. + + Sets values for a absolute repositioning of the Element. Also has as a + side effect that the Element's + + is changed to + fixed. + + horizontal position on the page + vertical position on the page + this image. + + + + Sets values for a absolute repositioning of the Element, on a specific + page. + + + Sets values for a absolute repositioning of the Element, on a specific + page. Also has as a side effect that the Element's + + is changed to + fixed. + + the page where the element must be positioned + horizontal position on the page + vertical position on the page + this Element. + + + Gets width of the image. + + Gets width of the image. It returns width of image or form XObject, + not the width set by one of the #setWidth methods + + the original width of the image + + + Gets height of the image. + + Gets height of the image. It returns height of image or form XObject, + not the height set by one of the #setHeight methods + + the original height of the image + + + Sets the height property of the image, measured in points. + a value measured in points. + this image. + + + + Sets the height property of the image with a + . + + a value measured in points. + this image. + + + Sets the max-height property of the image, measured in points. + a value measured in points. + this image. + + + + Sets the max-height property of the image with a + . + + a value measured in points. + this image. + + + Sets the min-height property of the image, measured in points. + a value measured in points. + this image. + + + + Sets the min-height property of the image with a + . + + a value measured in points. + this image. + + + Sets the max-width property of the image, measured in points. + a value measured in points. + this image. + + + + Sets the max-width property of the image with a + . + + a value measured in points. + this image. + + + Sets the min-width property of the image, measured in points. + a value measured in points. + this image. + + + + Sets the min-width property of the image with a + . + + a value measured in points. + this image. + + + Sets the width property of the image, measured in points. + a value measured in points. + this image. + + + + Sets the width property of the image with a + . + + + a + + object + + this image. + + + Gets the width property of the image. + the width of the element, with a value and a measurement unit. + + + + Gets scaled width of the image. + the current scaled width + + + Gets scaled height of the image. + the current scaled height + + + Sets an object-fit mode for the image. + + is the + + mode + + this image + + + + Retrieves the + + mode for the image. + + + an object-fit mode for the image if it was set + and default value + + otherwise + + + + Give this element a neutral role. + + Give this element a neutral role. See also + . + + this Element + + + + This is a line separator element which is basically just a horizontal line with + a style specified by + + custom drawing interface instance. + + + This is a line separator element which is basically just a horizontal line with + a style specified by + + custom drawing interface instance. + This might be thought of as an HTML's <hr> element alternative. + + + + + Creates a custom line separator with line style defined by custom + + interface instance + + line drawer instance + + + + A clickable piece of + + which contains a + link annotation dictionary. + + + A clickable piece of + + which contains a + link annotation dictionary + . The concept is largely similar to that of the + HTML anchor tag. + + + + Creates a Link with a fully constructed link annotation dictionary. + the textual contents of the link + + a + + + + + Creates a Link which can execute an action. + the textual contents of the link + + a + + + + + Creates a Link to another location in the document. + the textual contents of the link + + a + + + + + Gets the link annotation dictionary associated with this link. + + a + + + + + + A List is a layout element representing a series of objects that are vertically + outlined with the same or very similar layout properties, giving it a sense + of unity. + + + A List is a layout element representing a series of objects that are vertically + outlined with the same or very similar layout properties, giving it a sense + of unity. It contains + + objects that can optionally be prefixed + with a symbol and/or numbered. + + + + + Creates a List with the + + as a prefix. + + + + Creates a List with a custom numbering type. + a prefix style + + + + Adds a new + + to the bottom of the List. + + a new list item + this list. + + + + Adds a new + + to the bottom of the List. + + textual contents of the new list item + this list. + + + Customizes the index of the first item in the list. + the custom index, as an int + this list. + + + Sets the list symbol to be used. + + Sets the list symbol to be used. This will create an unordered list, i.e. + all + list items + will be shown with the same prefix. + + the textual symbol to be used for all items. + this list. + + + Sets the list symbol to be used. + + Sets the list symbol to be used. This will create an unordered list, i.e. + all + list items + will be shown with the same prefix. + + + the + + object to be used for all items. + + this list. + + + Sets the list symbol to be used. + + Sets the list symbol to be used. This will create an unordered list, i.e. + all + list items + will be shown with the same prefix. + + + the + + object to be used for all items. + + this list. + + + Sets the list numbering type to be used. + + Sets the list numbering type to be used. This will create an ordered list, + i.e. every + + will have a unique prefix. + + + the + + that will generate appropriate prefixes for the + + s. + + this list. + + + A specialized enum containing alignment properties for list symbols. + + A specialized enum containing alignment properties for list symbols. + + means that the items will be aligned as follows: + 9. Item 9 + 10. Item 10 + + Whereas + + means the items will be aligned as follows: + 9. Item 9 + 10. Item 10 + + the alignment of the list symbols + this element + + + + Gets the indent offset of the + + symbols. + + the indent offset as a float. + + + + Sets the indent offset of the + + symbols. + + the new indent offset. + this list. + + + + Gets the piece of text that is added after the + + symbol. + + the post symbol text + + + + Sets a piece of text that should be added after the + + symbol. + + the post symbol text + + + + Gets the piece of text that is added before the + + symbol. + + the pre symbol text + + + + Sets a piece of text that should be added before the + + symbol. + + the pre symbol text + + + + A list item is a layout element that is one entry in a + . + + + A list item is a layout element that is one entry in a + + . The list + object controls the prefix, postfix, and numbering of the list items. + + + + Creates a ListItem. + + + Creates a list item with text. + the textual contents of the list item + + + Customizes the index of the item in the list. + the custom value property of an ordered list's list item. + this listItem. + + + Creates a list item with an image. + the graphical contents of the list item + + + Sets the list item symbol to be used. + the textual symbol to be used for the item. + this list item. + + + Sets the list item symbol to be used. + + the + + object to be used for the item. + + this list item. + + + Sets the list item symbol to be used. + + the + + object to be used for the item. + + this list. + + + Sets the list item numbering type to be used. + + the + + that will generate appropriate prefixes for the + . + + this list item. + + + + A layout element that represents a self-contained block of textual and + graphical information. + + + A layout element that represents a self-contained block of textual and + graphical information. + It is a + + which essentially acts as a container for + leaf elements. + + + + Creates a Paragraph. + + + Creates a Paragraph, initialized with a piece of text. + + the initial textual content, as a + + + + + Creates a Paragraph, initialized with a piece of text. + + the initial textual content, as a + + + + + + Adds a piece of text to this + . + + + the content to be added, as a + + + + this + + + + + + Adds a + element + to this + . + + + the content to be added, any + + + + this + + + + + + Adds an + element + to this + . + + + the content to be added, any + + + + this + + + + + + Adds a + + of layout elements to this + . + + the content to be added + + any + + + + this + + + + + + Adds an unspecified amount of tabstop elements as properties to this + . + + + the + tabstop(s) + to be added as properties + + + this + + + + + + + Adds a + + of tabstop elements as properties to this + . + + + the list of + + s to be added as properties + + + this + + + + + + + Removes a tabstop position from the Paragraph, if it is present in the + + property. + + + the + + position to be removed. + + this Paragraph + + + + + Sets the indent value for the first line of the + . + + + the indent value that must be applied to the first line of + the Paragraph, as a float + + this Paragraph + + + + Sets orphans restriction on a + . + + + an instance of + . + + + this + + instance. + + + + + Sets widows restriction on a + . + + + an instance of + . + + + this + + instance. + + + + + Sets the leading value, using the + + strategy. + + the new leading value + this Paragraph + + + + + Sets the leading value, using the + + strategy. + + the new leading value + this Paragraph + + + + + This class represents the empty space from a + + to the following + + , if any. + + + This class represents the empty space from a + + to the following + + , if any. Using this class will not have any effect unless + there are + + objects defined for the enveloping element. + + + + + A + + is a layout element that represents data in a two-dimensional + grid. + + + A + + is a layout element that represents data in a two-dimensional + grid. It is filled with + cells + , ordered in rows and columns. + + It is an implementation of + + , which means it can be flushed + to the canvas, in order to reclaim memory that is locked up. + + + + + Constructs a + Table + with the preferable column widths. + + + Constructs a + Table + with the preferable column widths. +
    + Since 7.0.2 table layout algorithms were introduced. Auto layout is default, except large tables. + For large table 100% width and fixed layout set implicitly. +
    + Note, the eventual columns width depends on selected layout, table width, + cell's width, cell's min-widths, and cell's max-widths. + Table layout algorithm has the same behaviour as expected for CSS table-layout property, + where + + is <colgroup>'s widths. + For more information see + + and + . +
    + + preferable column widths in points. Values must be greater than or equal to zero, + otherwise it will be interpreted as undefined. + + + whether parts of the table will be written before all data is added. + Note, large table does not support auto layout, table width shall not be removed. + + + +
    + + + Constructs a + Table + with the preferable column widths. + + + Constructs a + Table + with the preferable column widths. +
    + Since 7.0.2 table layout algorithms were introduced. Auto layout is default, except large tables. + For large table 100% width and fixed layout set implicitly. +
    + Note, the eventual columns width depends on selected layout, table width, + cell's width, cell's min-widths, and cell's max-widths. + Table layout algorithm has the same behaviour as expected for CSS table-layout property, + where + + is <colgroup>'s widths. + For more information see + + and + . +
    + + preferable column widths, points and/or percents. Values must be greater than or equal to zero, + otherwise it will be interpreted as undefined. + + + whether parts of the table will be written before all data is added. + Note, large table does not support auto layout, table width shall not be removed. + + + +
    + + + Constructs a + Table + with the preferable column widths. + + + Constructs a + Table + with the preferable column widths. +
    + Since 7.0.2 table layout algorithms were introduced. Auto layout is default. +
    + Note, the eventual columns width depends on selected layout, table width, + cell's width, cell's min-widths, and cell's max-widths. + Table layout algorithm has the same behaviour as expected for CSS table-layout property, + where + + is <colgroup>'s widths. + For more information see + + and + . +
    + + preferable column widths, points and/or percents. Values must be greater than or equal to zero, + otherwise it will be interpreted as undefined. + + + +
    + + + Constructs a + Table + with the preferable column widths. + + + Constructs a + Table + with the preferable column widths. +
    + Since 7.0.2 table layout algorithms were introduced. Auto layout is default. +
    + Note, the eventual columns width depends on selected layout, table width, + cell's width, cell's min-widths, and cell's max-widths. + Table layout algorithm has the same behaviour as expected for CSS table-layout property, + where + columnWidths + is <colgroup>'s widths. + For more information see + + and + . +
    + + preferable column widths in points. Values must be greater than or equal to zero, + otherwise it will be interpreted as undefined. + + + +
    + + + Constructs a + Table + with specified number of columns. + + + Constructs a + Table + with specified number of columns. + The final column widths depend on selected table layout. +
    + Since 7.0.2 table layout algorithms were introduced. Auto layout is default, except large tables. + For large table fixed layout set implicitly. +
    + Since 7.1 table will have undefined column widths, that will be determined during layout. + In oder to set equal percent width as column width, use + +
    + Note, the eventual columns width depends on selected layout, table width, + cell's width, cell's min-widths, and cell's max-widths. + Table layout algorithm has the same behaviour as expected for CSS table-layout property, + where + columnWidths + is <colgroup>'s widths. + For more information see + + and + . +
    + the number of columns, each column will have equal percent width. + + whether parts of the table will be written before all data is added. + Note, large table does not support auto layout, table width shall not be removed. + + + +
    + + + Constructs a + Table + with specified number of columns. + + + Constructs a + Table + with specified number of columns. + The final column widths depend on selected table layout. +
    + Since 7.0.2 table layout was introduced. Auto layout is default, except large tables. + For large table fixed layout set implicitly. + + Since 7.1 table will have undefined column widths, that will be determined during layout. + In oder to set equal percent width as column width, use + + + Note, the eventual columns width depends on selected layout, table width, + cell's width, cell's min-widths, and cell's max-widths. + Table layout algorithm has the same behaviour as expected for CSS table-layout property, + where + columnWidths + is <colgroup>'s widths. + For more information see + + and + . +
    + the number of columns, each column will have equal percent width. + + +
    + + Set fixed layout. + + Set fixed layout. Analog of + table-layout:fixed + CSS property. + Note, the table must have width property, otherwise auto layout will be used. + + Algorithm description +
    + 1. Scan columns for width property and set it. All the rest columns get undefined value. + Column width includes borders and paddings. Columns have set in constructor, analog of + <colgroup> + element in HTML. +
    + 2. Scan the very first row of table for width property and set it to undefined columns. + Cell width has lower priority in comparing with column. Cell width doesn't include borders and paddings. +
    + 2.1 If cell has colspan and all columns are undefined, each column will get equal width: + width/colspan. +
    + 2.2 If some columns already have width, equal remain (original width minus existed) width will be added + remainWidth/colspan + to each column. +
    + 3. If sum of columns is less, than table width, there are two options: +
    + 3.1. If undefined columns still exist, they will get the rest remaining width. +
    + 3.2. Otherwise all columns will be expanded proportionally based on its width. +
    + 4. If sum of columns is greater, than table width, nothing to do. +
    + this element. +
    + + Set auto layout. + + Set auto layout. Analog of + table-layout:auto + CSS property.
    + Note, large table does not support auto layout. + + Algorithm principles. +
    + 1. Column width cannot be less, than min-width of any cell in the column (calculated by layout). +
    + 2. Specified table width has higher priority, than sum of column and cell widths. +
    + 3. Percent value of cell and column width has higher priority, than point value. +
    + 4. Cell width has higher priority, than column width. +
    + 5. If column has no width, it will try to reach max-value (calculated by layout). +
    + this element. +
    + + + Set + + = 100%. + + this element + + + Returns the column width for the specified column. + index of the column + the width of the column + + + Returns the number of columns. + the number of columns. + + + Returns the number of rows. + the number of rows. + + + Adds a new cell to the header of the table. + + Adds a new cell to the header of the table. + The header will be displayed in the top of every area of this table. + See also + . + + a header cell to be added + this element + + + Adds a new cell with received blockElement as a content to the header of the table. + + Adds a new cell with received blockElement as a content to the header of the table. + The header will be displayed in the top of every area of this table. + See also + . + + an element to be added to a header cell + any IElement + this element + + + Adds a new cell with received image to the header of the table. + + Adds a new cell with received image to the header of the table. + The header will be displayed in the top of every area of this table. + See also + . + + an element to be added to a header cell + this element + + + Adds a new cell with received string as a content to the header of the table. + + Adds a new cell with received string as a content to the header of the table. + The header will be displayed in the top of every area of this table. + See also + . + + a string to be added to a header cell + this element + + + Gets the header of the table. + Gets the header of the table. The header is represented as a distinct table and might have its own properties. + + + table header or + + , if + + hasn't been called. + + + + Adds a new cell to the footer of the table. + + Adds a new cell to the footer of the table. + The footer will be displayed in the bottom of every area of this table. + See also + . + + a footer cell + this element + + + Adds a new cell with received blockElement as a content to the footer of the table. + + Adds a new cell with received blockElement as a content to the footer of the table. + The footer will be displayed in the bottom of every area of this table. + See also + . + + an element to be added to a footer cell + IElement instance + this element + + + Adds a new cell with received image as a content to the footer of the table. + + Adds a new cell with received image as a content to the footer of the table. + The footer will be displayed in the bottom of every area of this table. + See also + . + + an image to be added to a footer cell + this element + + + Adds a new cell with received string as a content to the footer of the table. + + Adds a new cell with received string as a content to the footer of the table. + The footer will be displayed in the bottom of every area of this table. + See also + . + + a content string to be added to a footer cell + this element + + + Gets the footer of the table. + Gets the footer of the table. The footer is represented as a distinct table and might have its own properties. + + + table footer or + + , if + + hasn't been called. + + + + + Tells you if the first header needs to be skipped (for instance if the + header says "continued from the previous page"). + + Value of property skipFirstHeader. + + + Skips the printing of the first header. + + Skips the printing of the first header. Used when printing tables in + succession belonging to the same printed table aspect. + + New value of property skipFirstHeader. + this element + + + + Tells you if the last footer needs to be skipped (for instance if the + footer says "continued on the next page") + + Value of property skipLastFooter. + + + Skips the printing of the last footer. + + Skips the printing of the last footer. Used when printing tables in + succession belonging to the same printed table aspect. + + New value of property skipLastFooter. + this element + + + Sets the table's caption. + + Sets the table's caption. + If there is no + + set (note that it's an inheritable property), + + will be used. + Also the + + will be set on the element. + + The element to be set as a caption. + this element + + + Sets the table's caption and its caption side. + + Sets the table's caption and its caption side. + Also the + + will be set on the element. + + The element to be set as a caption. + The caption side to be set on the caption. + this element + + + Gets the table's caption. + the table's caption. + + + Starts new row. + Starts new row. This mean that next cell will be added at the beginning of next line. + this element + + + Adds a new cell to the table. + + Adds a new cell to the table. The implementation decides for itself which + row the cell will be placed on. + + + + Cell + to add. + + this element + + + Adds a new cell with received blockElement as a content. + a blockElement to add to the cell and then to the table + IElement instance + this element + + + Adds a new cell with received image as a content. + an image to add to the cell and then to the table + this element + + + Adds a new cell with received string as a content. + a string to add to the cell and then to the table + this element + + + Returns a cell as specified by its location. + + Returns a cell as specified by its location. If the cell is in a col-span + or row-span and is not the top left cell, then null is returned. + + the row of the cell. indexes are zero-based + the column of the cell. indexes are zero-based + the cell at the specified position. + + + Creates a renderer subtree with root in the current table element. + + Creates a renderer subtree with root in the current table element. + Compared to + + , the renderer returned by this method should contain all the child + renderers for children of the current element. + + + a + + subtree for this element + + + + Gets a table renderer for this element. + + Gets a table renderer for this element. Note that this method can be called more than once. + By default each element should define its own renderer, but the renderer can be overridden by + + method call. + + a table renderer for this element + + + Indicates that all the desired content has been added to this large element and no more content will be added. + + + Indicates that all the desired content has been added to this large element and no more content will be added. + After this method is called, more precise rendering is activated. + For instance, a table may have a + + method set to true, + and in case of large table on + + we do not know if any more content will be added, + so we might not place the content in the bottom of the page where it would fit, but instead add a footer, and + place that content in the start of the page. Technically such result would look all right, but it would be + more concise if we placed the content in the bottom and did not start new page. For such cases to be + renderered more accurately, one can call complete() when some content is still there and not flushed. + + + + Writes the newly added content to the document. + + + Flushes the content which has just been added to the document. + + Flushes the content which has just been added to the document. + This is a method for internal usage and is called automatically by the document. + + + + Gets the markup properties of the bottom border of the (current) last row. + + an array of + + objects + + + + + Defines whether the + + should be extended to occupy all the space left in the available area + in case it is the last element in this area. + + + defines whether the + + should be extended + + + this + + + + + + Defines whether the + + should be extended to occupy all the space left in the available area + in case the area has been split and it is the last element in the split part of this area. + + + defines whether the + + should be extended + + + this + + + + + Sets the type of border collapse. + + + + to be set as the border collapse type + + + this + + + + + + Sets the horizontal spacing between this + table + 's + cells. + + + a horizontal spacing between this + table + 's + cells + + + this + + + + + + Sets the vertical spacing between this + table + 's + cells. + + + a vertical spacing between this + table + 's + cells + + + this + + + + + Returns the list of all row groups. + + a list of a + + which holds the row numbers of a section of a table + + + + A simple object which holds the row numbers of a section of a table. + + + + Creates a + + + the start number of the row group, inclusive + the finish number of the row group, inclusive + + + Gets the starting row number of the table section + the start number of the row group, inclusive + + + Gets the finishing row number of the table section + the finish number of the row group, inclusive + + + + A TabStop is the closest location on a line of text that the text will jump + to if a + + is inserted. + + + A TabStop is the closest location on a line of text that the text will jump + to if a + + is inserted. At least one TabStop must be defined on an + element if you want to use + Tabs. + This object can be added to a + + with the method + . + + + + Creates a TabStop at the appropriate position. + a float, measured in absolute points + + + + Creates a TabStop at the appropriate position, with a specified tab + alignment. + + + Creates a TabStop at the appropriate position, with a specified tab + alignment. A tab alignment defines the way the textual content should be + positioned with regards to this tab stop. + + a float, measured in absolute points + + a + + value + + + + + Creates a TabStop at the appropriate position, with a specified tab + alignment and an explicitly given line pattern. + + + Creates a TabStop at the appropriate position, with a specified tab + alignment and an explicitly given line pattern. A tab alignment defines + the way the textual content should be positioned with regards to this tab + stop. The line pattern defines a pattern that should be repeated until + the TabStop is reached. If null, the space leading up to the TabStop will + be empty. + + a float, measured in absolute points + + a + + value + + + the + + value, a pattern drawing object + + + + Returns the position of a tab stop. + tabPosition, measured in absolute points + + + + Returns the alignment of a tab stop, which defines the way the textual content + should be positioned in regard to this tab stop. + + + a + + value + + + + + Sets the alignment, which defines the way the textual content + should be positioned in regard to this tab stop. + + + a + + value + + + + Returns the anchor of a tab stop. + + a + + value + + + + Sets the anchor of a tab stop. + + a + + value + + + + + Returns the tab leader of a tab stop, which defines a pattern that + should be repeated until the TabStop is reached. + + + a + + value, a pattern drawing object + + + + + Sets the tab leader of a tab stop, which defines a pattern that + should be repeated until the TabStop is reached. + + + a + + value + + + + + A + + is a piece of text of any length. + + + A + + is a piece of text of any length. As a + leaf element + , + it is the smallest piece of content that may bear specific layout attributes. + + + + Constructs a Text with its role initialized. + + the contents, as a + + + + + Gets the contents of the Text object that will be rendered. + the string with the contents + + + Sets the contents of the Text object. + the new contents + + + Gets the text rise. + the vertical distance from the text's default base line, as a float. + + + Sets the text rise. + a vertical distance from the text's default base line. + this Text + + + + Gets the horizontal scaling property, which determines how wide the text + should be stretched. + + the horizontal spacing, as a float + + + Skews the text to simulate italic and other effects. + + Skews the text to simulate italic and other effects. Try alpha=0 + and beta=12. + + the first angle in degrees + the second angle in degrees + this Text + + + + The horizontal scaling parameter adjusts the width of glyphs by stretching or + compressing them in the horizontal direction. + + + the scaling parameter. 1 means no scaling will be applied, + 0.5 means the text will be scaled by half. + 2 means the text will be twice as wide as normal one. + + this Text + + + Give this element a neutral role. + + Give this element a neutral role. See also + . + + this Element + + + Class that bundles all the error message templates as constants. + + + + Complex FontSelectorStrategy split text based on + . + + + Complex FontSelectorStrategy split text based on + . + If unicode script changes, a new font will be found. + If there is no suitable font, only one notdef glyph from + + will be added. + + + + Sets preferred font weight + font weight in css notation. + + this instance. + + + Set font style + shall be 'normal', 'italic' or 'oblique'. + this element + + + + Contains all font related data to create + + and + . + + + Contains all font related data to create + + and + . + + fetches with + . + + + + Note, + + and + + are not taken into account in + + , + the same font with different aliases will have equal FontInfo's, + and therefore the same + + in the end document. + + + + + Gets path to font, if + + was created by String. + + + Gets path to font, if + + was created by String. + Note, to get PostScript or full name, use + . + + the font name + + + + Gets font data, if + + was created with + byte[]. + + font data + + + Gets font alias. + alias if exist, otherwise null. + + + + + The default font-family is used by + + if it's impossible to select a font for all other set font-families + + + + Creates a new instance of FontProvider. + predefined set of fonts, could be null. + + + Creates a new instance of FontProvider. + + + Creates a new instance of FontProvider. + default font family. + + + Creates a new instance of FontProvider. + predefined set of fonts, could be null. + default font family. + + + + Add font to + + cache. + + + the font file which will be added to font cache. + The + + instances are normally created via + . + + + font encoding to create + + . Possible values for this + argument are the same as for + + family of methods. + + sets the specific range of characters to be used from the font. + true, if font was successfully added, otherwise false. + + + + Add font to + + cache. + + + the font file which will be added to font cache. + The + + instances are normally created via + . + + + font encoding to create + + . Possible values for this + argument are the same as for + + family of methods. + + true, if font was successfully added, otherwise false. + + + + Add font to + + cache. + + + the font file which will be added to font cache. + The + + instances are normally created via + . + + true, if font was successfully added, otherwise false. + + + + Add font to + + cache. + + + path to the font file to add. Can be a path to file or font name, + see + . + + + font encoding to create + + . Possible values for this + argument are the same as for + + family of methods. + + sets the specific range of characters to be used from the font. + true, if font was successfully added, otherwise false. + + + + Add font to + + cache. + + + path to the font file to add. Can be a path to file or font name, + see + . + + + font encoding to create + + . Possible values for this + argument are the same as for + + family of methods. + + true, if font was successfully added, otherwise false. + + + + Add font to + + cache. + + + path to the font file to add. Can be a path to file or font name, + see + . + + true, if font was successfully added, otherwise false. + + + + Add font to + + cache. + + byte content of the font program file. + + font encoding to create + + . Possible values for this + argument are the same as for + + family of methods. + + sets the specific range of characters to be used from the font. + true, if font was successfully added, otherwise false. + + + + Add font to + + cache. + + byte content of the font program file. + + font encoding to create + + . Possible values for this + argument are the same as for + + family of methods. + + true, if font was successfully added, otherwise false. + + + + Add font to + + cache. + + byte content of the font program file. + true, if font was successfully added, otherwise false. + + + Add all the fonts from a directory. + path to directory. + number of added fonts. + + + + Add all fonts from system directories to + + cache. + + number of added fonts. + + + + Add standard fonts to + + cache. + + number of added fonts. + + + + + Gets + . + + the font set + + + Gets the default font-family. + the default font-family + + + Gets the default encoding for specific font. + to get default encoding + the default encoding + + + + The method is used to determine whether the font should be cached or not by default. + + The method is used to determine whether the font should be cached or not by default. + + NOTE: This method can be overridden to customize behaviour. + + the default cache flag + + + The method is used to determine whether the font should be embedded or not by default. + + The method is used to determine whether the font should be embedded or not by default. + + NOTE: This method can be overridden to customize behaviour. + + the default embedding flag + + + + Gets the + + to split specified text into sequences of glyphs, already tied + to the fonts which contain them. + + + Gets the + + to split specified text into sequences of glyphs, already tied + to the fonts which contain them. The fonts can be taken from the added fonts to the font provider and + are chosen based on font-families list and desired font characteristics. + + for splitting into sequences of glyphs. + + target font families to create + + for sequences of glyphs. + + + instance of + + to create + + for sequences of glyphs. + + + set which provides fonts additionally to the fonts added to font provider. + Combined set of font provider fonts and additional fonts is used when choosing + a single font for a sequence of glyphs. Additional fonts will only be used for the given + font selector strategy instance and will not be otherwise preserved in font provider. + + + + + instance. + + + + + Gets the + + to split specified text into sequences of glyphs, already tied + to the fonts which contain them. + + + Gets the + + to split specified text into sequences of glyphs, already tied + to the fonts which contain them. The fonts can be taken from the added fonts to the font provider and + are chosen based on font-families list and desired font characteristics. + + for splitting into sequences of glyphs. + + target font families to create + + for sequences of glyphs. + + + instance of + + to create + + for sequences of glyphs. + + + + + instance. + + + + + Gets the + + to split specified text into sequences of glyphs, already tied + to the fonts which contain them. + + + Gets the + + to split specified text into sequences of glyphs, already tied + to the fonts which contain them. The fonts can be taken from the added fonts to the font provider and + are chosen based on font-families list and desired font characteristics. + + for splitting into sequences of glyphs. + + target font families to create + + for sequences of glyphs. + + + + + instance. + + + + + Create + + or get from cache. + + target font families. + + instance of + . + + + an instance of + . + + + + + + + Create + + or get from cache. + + target font families. + + instance of + . + + + set which provides fonts additionally to the fonts added to font provider. + Combined set of font provider fonts and additional fonts is used when choosing + a single font for + + . Additional fonts will only be used for the given + font selector strategy instance and will not be otherwise preserved in font provider. + + + an instance of + . + + } + + + + Create a new instance of + . + + + Create a new instance of + + . While caching is main responsibility of + . + This method just create a new instance of + . + + Set of all available fonts in current context. + target font families. + + instance of + . + + + an instance of + . + + + + + Get from cache or create a new instance of + . + + + font info, to create + + and + . + + + cached or new instance of + . + + + + + Get from cache or create a new instance of + . + + + font info, to create + + and + . + + set of additional fonts to consider. + + cached or new instance of + . + + + + + Resets + PdfFont cache. + + + Resets + PdfFont cache. + After calling that method + + can be reused with another + + + + + Sort given set of fonts according to font name and style. + + + Create new FontSelector instance. + unsorted set of all available fonts. + sorted list of preferred font families. + + instance of + . + + + + The best font match. + + The best font match. + If any font from + + doesn't contain requested glyphs, this font will be used. + + the best matched font + + + Sorted set of fonts. + sorted set of fonts + + + + This method is used to compare two fonts (the required one which is described by fontInfo and + the one to be examined which is described by fc and fontFamily) and measure their similarity. + + + This method is used to compare two fonts (the required one which is described by fontInfo and + the one to be examined which is described by fc and fontFamily) and measure their similarity. + The more the fonts are similar the higher the score is. + + Firstly we check if the font-family described by fontInfo equals to the required one. + If it's not true the examination fails, it continues otherwise. + If the required font-family is monospace, serif or sans serif we check whether + the font under examination is monospace, serif or sans serif resp. Its font-family is not + taking into considerations. + + If font-family is respected, we consider the next font-style characteristics to select the required font + of the respected font-family: + a) bold + b) italic + + + + + Key for + + caching. + + + + + + + is responsible for splitting text into sub texts with one particular font. + + + + is responsible for splitting text into sub texts with one particular font. + + will create next sub text and set current font. + + + + Utility method to create PdfFont. + instance of FontInfo. + cached or just created PdfFont on success, otherwise null. + + + + Reusable font set for FontProgram related data. + + Reusable font set for FontProgram related data. + Add and search fonts. + + A FontSet instance could be shared for multiple threads. + However FontSet filling is not thread safe operation. + + + + + + Creates a new instance of + . + + + + Add all the fonts in a directory and possibly its subdirectories. + path to directory. + + recursively scan subdirectories if + . + + number of added fonts. + + + Add all the fonts in a directory. + path to directory. + number of added fonts. + + + Add not supported for auto creating FontPrograms. + + Add not supported for auto creating FontPrograms. + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + Alias will replace original font family in font selector algorithm. + + + + + + + FontEncoding for creating + + + font alias. + sets the specific range of characters to be used from the font + true, if font was successfully added, otherwise false. + + + Add not supported for auto creating FontPrograms. + + Add not supported for auto creating FontPrograms. + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + Alias will replace original font family in font selector algorithm. + + + + + + + FontEncoding for creating + + + font alias. + true, if font was successfully added, otherwise false. + + + Add not supported for auto creating FontPrograms. + + + + + + FontEncoding for creating + . + + true, if font was successfully added, otherwise false. + + + + Creates + + , fetches + + and adds just created + + to + . + + + Creates + + , fetches + + and adds just created + + to + . + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + Alias will replace original font family in font selector algorithm. + + path to font data. + preferred font encoding. + font alias, will replace original font family. + sets the specific range of characters to be used from the font + true, if font was successfully added, otherwise false. + + + + + Creates + + , fetches + + and adds just created + + to + . + + + Creates + + , fetches + + and adds just created + + to + . + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + Alias will replace original font family in font selector algorithm. + + path to font data. + preferred font encoding. + font alias. + true, if font was successfully added, otherwise false. + + + + + Creates + + , fetches + + and adds just created + + to + . + + path to font data. + preferred font encoding. + true, if font was successfully added, otherwise false. + + + + + Creates + + , fetches + + and adds just created + + to + . + + + Creates + + , fetches + + and adds just created + + to + . + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + Alias will replace original font family in font selector algorithm. + + font data. + preferred font encoding. + font alias. + sets the specific range of characters to be used from the font + true, if font was successfully added, otherwise false. + + + + + Creates + + , fetches + + and adds just created + + to + . + + + Creates + + , fetches + + and adds just created + + to + . + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + Alias will replace original font family in font selector algorithm. + + font data. + preferred font encoding. + font alias. + true, if font was successfully added, otherwise false. + + + + + Creates + + , fetches + + and adds just created + + to + . + + font data. + preferred font encoding. + true, if font was successfully added, otherwise false. + + + + + Creates + + , fetches + + and adds just created + + to + . + + + Creates + + , fetches + + and adds just created + + to + . + + will be used to determine encoding. + + path to font data. + true, if font was successfully added, otherwise false. + + + + Creates + + , fetches + + and adds just created + + to + . + + + Creates + + , fetches + + and adds just created + + to + . + + will be used to determine encoding. + + font data. + true, if font was successfully added, otherwise false. + + + + Adds + + with alias. + + + Adds + + with alias. Could be used to fill temporary font set. + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + Alias will replace original font family in font selector algorithm. + + font info. + font alias. + sets the specific range of characters to be used from the font + true, if font was successfully added, otherwise false. + + + + Adds + + with alias. + + + Adds + + with alias. Could be used to fill temporary font set. + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + Alias will replace original font family in font selector algorithm. + + font info. + font alias. + true, if font was successfully added, otherwise false. + + + + Adds + . + + + Adds + + . Could be used to fill temporary font set. + + Note, + + do not taken into account in + . + The same font with different alias will not be replaced. + + font info. + true, if font was successfully added, otherwise false. + + + Search in existed fonts for PostScript name or full font name. + + Search in existed fonts for PostScript name or full font name. + + Note, this method has O(n) complexity. + + PostScript or full name. + + true, if + + contains font with given name. + + + + Search in existed fonts for PostScript name or full font name. + + Search in existed fonts for PostScript name or full font name. + + Note, this method has O(n) complexity. + + PostScript or full name. + + Collection of + + from set of fonts with given PostScript or full name. + + + + Gets available fonts. + + Gets available fonts. + + Note, the collection is unmodifiable. + + set of all available fonts + + + Gets union of available and temporary fonts. + + Gets union of available and temporary fonts. + + Note, the collection is unmodifiable. + + set of temporary fonts + set of all available and temporary fonts + + + + Returns + + if this set contains no elements. + + + + + if this set contains no elements + + + + Returns the number of elements in this set. + the number of elements in this set + + + + Class represents ordered list of + . + + + Class represents ordered list of + . + This class is used in + + as internal field and in one of the overloads of + the + + method as range + of characters to be used in font. + + To create a custom Range instance + + shall be used. + + + + Binary search over ordered segments. + numeric character reference based on the character's Unicode code point + true if this Range contains the specified code point, otherwise false + + + Order ranges. + Order ranges. Replace with a union of ranges in case of overlap. + Unsorted list of sub-ranges. + ordered and normalized sub-ranges. + + + + Builder of + . + + + + Default Range instance. + Range that contains any integer + + + Default constructor with empty range. + + + Constructor with a single range. + low boundary of the range + high boundary of the range + + + Constructor with a single number. + a single number + + + Constructor with a single range. + low boundary of the range + high boundary of the range + + + Constructor with a single char. + a single char + + + Add one more range. + low boundary of the range + high boundary of the range + this RangeBuilder + + + Add one more range. + low boundary of the range + high boundary of the range + this RangeBuilder + + + Add range with a single number. + a single number + this RangeBuilder + + + Add range with a single char. + a single char + this RangeBuilder + + + + Creates a + + instance based on added ranges. + + + the + + instance based on added ranges + + + + + This class implements a simple byte vector with access to the + underlying array. + + + This class implements a simple byte vector with access to the + underlying array. + + This work was authored by Carlos Villegas (cav@uniscope.co.jp). + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + Construct byte vector instance with default block size. + + + Construct byte vector instance. + initial block size + + + Construct byte vector instance. + + byte array to use + TODO should n should be initialized to a.length to be consistent with + CharVector behavior? [GA] + + + + Construct byte vector instance. + byte array to use + + initial block size + TODO should n should be initialized to a.length to be consistent with + CharVector behavior? [GA] + + + + Obtain byte vector array. + byte array + + + Obtain number of items in array. + number of items + + + Obtain capacity of array. + current capacity of array + + + Pet byte at index. + the index + a byte + + + Get byte at index. + the index + a byte + + + This is to implement memory allocation in the array. + This is to implement memory allocation in the array. Like malloc(). + to allocate + previous length + + + Trim byte vector to current length. + + + + This class implements a simple char vector with access to the + underlying array. + + + This class implements a simple char vector with access to the + underlying array. + + This work was authored by Carlos Villegas (cav@uniscope.co.jp). + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + Construct char vector instance with default block size. + + + Construct char vector instance. + initial block size + + + Construct char vector instance. + char array to use + + + Construct char vector instance. + char array to use + initial block size + + + Copy constructor + the CharVector that should be cloned + + + Reset length of vector, but don't clear contents. + + + Obtain char vector array. + char array + + + Obtain number of items in array. + number of items + + + Obtain capacity of array. + current capacity of array + + + Pet char at index. + the index + a char + + + Get char at index. + the index + a char + + + This is to implement memory allocation in the array. + This is to implement memory allocation in the array. Like malloc(). + to allocate + previous length + + + Trim char vector to current length. + + + Represents a hyphen. + + + pre break string + + + no break string + + + post break string + + + Construct a hyphen. + break string + break string + break string + + + Construct a hyphen. + break string + + + + + + + + + This class represents a hyphenated word. + + This class represents a hyphenated word. + + This work was authored by Carlos Villegas (cav@uniscope.co.jp). + + + + number of hyphenation points in word + + + + rawWord as made of alternating strings and + Hyphen + instances + + + + the number of hyphenation points in the word + + + an index position + the pre-break text, not including the hyphen character + + + an index position + the post-break text + + + the hyphenation points + + + + + + + + + This is the class used to configure hyphenation on layout level + + + The Hyphenator object. + + + The hyphenation symbol used when hyphenating. + + + + Constructs a new + . + + + Constructs a new + + . No language hyphenation files will be used. + Only soft hyphen symbols ('\u00ad') will be taken into account. + + the minimum number of characters before the hyphenation point + the minimum number of characters after the hyphenation point + + + + Constructs a new + + by a + + which will be used to + find hyphenation points. + + + the + + instance + + + + + Constructs a new + + instance. + + the language + the optional country code (may be null or "none") + the minimum number of characters before the hyphenation point + the minimum number of characters after the hyphenation point + + + Hyphenates a given word. + + + + object representing possible hyphenation points + or + + if no hyphenation points are found. + + Tee word to hyphenate + + + Gets the hyphenation symbol. + the hyphenation symbol + + + Sets the hyphenation symbol to the specified value. + the new hyphenation symbol + + + Class containing constants to be used in hyphenation on layout level. + + + A hyphenation exception. + + A hyphenation exception. + + This work was authored by Carlos Villegas (cav@uniscope.co.jp). + + + + Construct a hyphenation exception. + a message string + + + + This tree structure stores the hyphenation patterns in an efficient + way for fast lookup. + + + This tree structure stores the hyphenation patterns in an efficient + way for fast lookup. It provides the provides the method to + hyphenate a word. + + This work was authored by Carlos Villegas (cav@uniscope.co.jp). + + + + value space: stores the interletter values + + + This map stores hyphenation exceptions + + + This map stores the character classes + + + Temporary map to store interletter values on pattern loading. + + + Default constructor. + + + + Packs the values by storing them in 4 bits, two values into a byte + Values range is from 0 to 9. + + + Packs the values by storing them in 4 bits, two values into a byte + Values range is from 0 to 9. We use zero as terminator, + so we'll add 1 to the value. + + + a string of digits from '0' to '9' representing the + interletter values. + + + the index into the vspace array where the packed values + are stored. + + + + Unpack values. + an integer + a string + + + Read hyphenation patterns from an XML file. + the filename + + + Read hyphenation patterns from an XML file. + the InputSource for the file + unique key representing country-language combination + + + Find pattern. + a pattern + a string + + + + String compare, returns 0 if equal or + t is a substring of s. + + first character array + starting index into first array + second character array + starting index into second array + an integer + + + Get values. + an integer + a byte array + + + + Search for all possible partial matches of word starting + at index an update interletter values. + + + Search for all possible partial matches of word starting + at index an update interletter values. In other words, it + does something like: + + + for(i=0; i<patterns.length; i++) { + if ( word.substring(index).startsWidth(patterns[i]) ) + update_interletter_values(patterns[i]); + } + + + But it is done in an efficient way since the patterns are + stored in a ternary tree. In fact, this is the whole purpose + of having the tree: doing this search without having to test + every single pattern. The number of patterns for languages + such as English range from 4000 to 10000. Thus, doing thousands + of string comparisons for each word to hyphenate would be + really slow without the tree. The tradeoff is memory, but + using a ternary tree instead of a trie, almost halves the + the memory used by Lout or TeX. It's also faster than using + a hash table + + null terminated word to match + start index from word + interletter values array to update + + + Hyphenate word and return a Hyphenation object. + the word to be hyphenated + + Minimum number of characters allowed + before the hyphenation point. + + + Minimum number of characters allowed after + the hyphenation point. + + + a + Hyphenation + object representing + the hyphenated word or null if word is not hyphenated. + + + + Hyphenate word and return an array of hyphenation points. + char array that contains the word + Offset to first character in word + Length of word + + Minimum number of characters allowed + before the hyphenation point. + + + Minimum number of characters allowed after + the hyphenation point. + + + a + Hyphenation + object representing + the hyphenated word or null if word is not hyphenated. + + + + Add a character class to the tree. + + Add a character class to the tree. It is used by + PatternParser + as callback to + add character classes. Character classes define the + valid word characters for hyphenation. If a word contains + a character not defined in any of the classes, it is not hyphenated. + It also defines a way to normalize the characters in order + to compare them with the stored patterns. Usually pattern + files use only lower case characters, in this case a class + for letter 'a', for example, should be defined as "aA", the first + character being the normalization char. + + a character class (group) + + + Add an exception to the tree. + + Add an exception to the tree. It is used by + PatternParser + class as callback to + store the hyphenation exceptions. + + normalized word + + a vector of alternating strings and + hyphen + objects. + + + + Add a pattern to the tree. + + Add a pattern to the tree. Mainly, to be used by + PatternParser + class as callback to + add a pattern to the tree. + + the hyphenation pattern + + interletter weight values indicating the + desirability and priority of hyphenating at a given point + within the pattern. It should contain only digit characters. + (i.e. '0' to '9'). + + + + This is a cache for HyphenationTree instances. + + + Contains the cached hyphenation trees + + + Used to avoid multiple error messages for the same language if a pattern file is missing. + + + Looks in the cache if a hyphenation tree is available and returns it if it is found. + the language + the country (may be null or "none") + the HyhenationTree instance or null if it's not in the cache + + + Constructs the key for the hyphenation pattern file. + the language + the country (may be null or "none") + the resulting key + + + + If the user configured a hyphenation pattern file name + for this (lang,country) value, return it. + + + If the user configured a hyphenation pattern file name + for this (lang,country) value, return it. If not, return null. + + the language + the country (may be null or "none") + the map of user-configured hyphenation pattern file names + the hyphenation pattern file name or null + + + Cache a hyphenation tree under its key. + the key (ex. "de_CH" or "en") + the hyphenation tree + + + Notes a key to a hyphenation tree as missing. + + Notes a key to a hyphenation tree as missing. + This is to avoid searching a second time for a hyphenation pattern file which is not + available. + + the key (ex. "de_CH" or "en") + + + Indicates whether a hyphenation file has been requested before but it wasn't available. + + Indicates whether a hyphenation file has been requested before but it wasn't available. + This is to avoid searching a second time for a hyphenation pattern file which is not + available. + + the key (ex. "de_CH" or "en") + true if the hyphenation tree is unavailable + + + This class is the main entry point to the hyphenation package. + + This class is the main entry point to the hyphenation package. + You can use only the static methods or create an instance. + + This work was authored by Carlos Villegas (cav@uniscope.co.jp). + + + + Logging instance. + + + Creates a new hyphenator. + the language + the optional country code (may be null or "none") + the minimum number of characters before the hyphenation point + the minimum number of characters after the hyphenation point + + + Creates a new hyphenator. + the language + the optional country code (may be null or "none") + the map with user-configured hyphenation pattern file names + the minimum number of characters before the hyphenation point + the minimum number of characters after the hyphenation point + + + Registers additional file directories. + directory to register + + + Returns the default hyphenation tree cache. + the default (static) hyphenation tree cache + + + Clears the default hyphenation tree cache. + Clears the default hyphenation tree cache. This method can be used if the underlying data files are changed at runtime. + + + + + Returns a hyphenation tree for a given language and country, + with fallback from (lang,country) to (lang). + + + Returns a hyphenation tree for a given language and country, + with fallback from (lang,country) to (lang). + The hyphenation trees are cached. + + the language + the country (may be null or "none") + the map with user-configured hyphenation pattern file names + the hyphenation tree + + + Returns a hyphenation tree for a given language and country. + Returns a hyphenation tree for a given language and country. The hyphenation trees are cached. + the language + the country (may be null or "none") + the map with user-configured hyphenation pattern file names + the hyphenation tree + + + Load tree from xml file using configuration settings. + the directory to search the file into + language key for the requested hyphenation file + the requested HyphenationTree or null if it is not available + + + Load tree from the stream. + the input stream to load the tree from + unique key representing country-language combination + the requested HyphenationTree or null if it is not available + + + Hyphenates a word. + the language + the optional country code (may be null or "none") + the map with user-configured hyphenation pattern file names + the word to hyphenate + the minimum number of characters before the hyphenation point + the minimum number of characters after the hyphenation point + the hyphenation result + + + Hyphenates a word. + the language + the optional country code (may be null or "none") + the word to hyphenate + the minimum number of characters before the hyphenation point + the minimum number of characters after the hyphenation point + the hyphenation result + + + Hyphenates a word. + the word to hyphenate + the hyphenation result + + + + This interface is used to connect the XML pattern file parser to + the hyphenation tree. + + + This interface is used to connect the XML pattern file parser to + the hyphenation tree. + + This work was authored by Carlos Villegas (cav@uniscope.co.jp). + + + + Add a character class. + + Add a character class. + A character class defines characters that are considered + equivalent for the purpose of hyphenation (e.g. "aA"). It + usually means to ignore case. + + character group + + + Add a hyphenation exception. + + Add a hyphenation exception. An exception replaces the + result obtained by the algorithm for cases for which this + fails or the user wants to provide his own hyphenation. + A hyphenatedword is a vector of alternating String's and + Hyphen + instances + + word to add as an exception + pre-hyphenated word + + + Add hyphenation patterns. + the pattern + + interletter values expressed as a string of + digit characters. + + + + + Construct a pattern parser. + + + Construct a pattern parser. + a pattern consumer + + + Parses a hyphenation pattern file. + the filename + + + Parses a hyphenation pattern file. + the InputStream for the file + unique key representing country-language combination + + +

    Ternary Search Tree.

    + +

    Ternary Search Tree.

    + + A ternary search tree is a hybrid between a binary tree and + a digital search tree (trie). Keys are limited to strings. + A data value of type char is stored in each leaf node. + It can be used as an index (or pointer) to the data. + Branches that only contain one key are compressed to one node + by storing a pointer to the trailer substring of the key. + This class is intended to serve as base class or helper class + to implement Dictionary collections or the like. Ternary trees + have some nice properties as the following: the tree can be + traversed in sorted order, partial matches (wildcard) can be + implemented, retrieval of all keys within a given distance + from the target, etc. The storage requirements are higher than + a binary tree but a lot less than a trie. Performance is + comparable with a hash table, sometimes it outperforms a hash + function (most of the time can determine a miss faster than a hash). + + The main purpose of this java port is to serve as a base for + implementing TeX's hyphenation algorithm (see The TeXBook, + appendix H). Each language requires from 5000 to 15000 hyphenation + patterns which will be keys in this tree. The strings patterns + are usually small (from 2 to 5 characters), but each char in the + tree is stored in a node. Thus memory usage is the main concern. + We will sacrify 'elegance' to keep memory requirements to the + minimum. Using java's char type as pointer (yes, I know pointer + it is a forbidden word in java) we can keep the size of the node + to be just 8 bytes (3 pointers and the data char). This gives + room for about 65000 nodes. In my tests the english patterns + took 7694 nodes and the german patterns 10055 nodes, + so I think we are safe. + + All said, this is a map with strings as keys and char as value. + Pretty limited!. It can be extended to a general map by + using the string representation of an object and using the + char value as an index to an array that contains the object + values. + + This work was authored by Carlos Villegas (cav@uniscope.co.jp). +
    +
    + + + Pointer to low branch and to rest of the key when it is + stored directly in this node, we don't have unions in java! + + + + Pointer to high branch. + + + Pointer to equal branch and to data when this node is a string terminator. + + + The character stored in this node: splitchar. + + The character stored in this node: splitchar. + Two special values are reserved: + + 0x0000 as string terminator + + 0xFFFF to indicate that the branch starting at + this node is compressed + + + This shouldn't be a problem if we give the usual semantics to + strings since 0xFFFF is garanteed not to be an Unicode character. + + + + This vector holds the trailing of the keys when the branch is compressed. + + + root + + + free node + + + number of items in tree + + + allocation size for arrays + + + default constructor + + + initialize + + + + Branches are initially compressed, needing + one node per key plus the size of the string + key. + + + Branches are initially compressed, needing + one node per key plus the size of the string + key. They are decompressed as needed when + another key with same prefix + is inserted. This saves a lot of space, + specially for long keys. + + the key + a value + + + Insert key. + the key + offset into key array + a value + + + The actual insertion function, recursive version. + + The actual insertion function, recursive version. + PLEASE NOTE that the implementation has been adapted to consume less stack memory + + + + Compares 2 null terminated char arrays + a character array + an index into character array + a character array + an index into character array + an integer + + + Compares a string with null terminated char array + a string + a character array + an index into character array + an integer + + + a character array + an index into character array + a character array + an index into character array + + + a character array + an index into character array + an integer + + + a character array + an integer + + + Find key. + the key + result + + + Find key. + the key + offset into key array + result + + + a key + trye if key present + + + length + + + + Recursively insert the median first and then the median of the + lower and upper halves, and so on in order to get a balanced + tree. + + + Recursively insert the median first and then the median of the + lower and upper halves, and so on in order to get a balanced + tree. The array of keys is assumed to be sorted in ascending + order. + + array of keys + array of values + where to insert + count to insert + + + Balance the tree for best search performance + + + + Each node stores a character (splitchar) which is part of + some key(s). + + + Each node stores a character (splitchar) which is part of + some key(s). In a compressed branch (one that only contain + a single string key) the trailer of the key which is not + already in nodes is stored externally in the kv array. + As items are inserted, key substrings decrease. + Some substrings may completely disappear when the whole + branch is totally decompressed. + The tree is traversed to find the key substrings actually + used. In addition, duplicate substrings are removed using + a map (implemented with a TernaryTree!). + + + + the keys + + + + An object that iterates over the + . + + + + current node index + + + current key + + + parent + + + child + + + default constructor + + + Construct item. + a char + a char + + + Construct item. + + an + + + + + Node stack + + + key stack implemented with a StringBuffer + + + default constructor + + + Resets the Iterator to its initial state. + + + next element + + + value + + + true if more elements + + + traverse upwards + + + traverse the tree to find next key + + + + A generic Map-like interface that defines methods for storing and retrieving + objects by an enum key of the + + type. + + + + Checks if this entity has the specified property. + + Checks if this entity has the specified property. Compared to + + , + this method can check parent's properties, styles, etc, depending on the origin of the instance + + the property to be checked + + + + if this instance has given property, + + otherwise + + + + Checks if this entity has the specified property, i.e. if it was set to this very element earlier + + the property to be checked + + + + if this instance has given own property, + + otherwise + + + + Gets the property from this entity. + + Gets the property from this entity. Compared to + + , + this method can check parent's properties, styles, etc, depending on the origin of the instance + + the return type associated with the property + the property to be retrieved + + the value of the given property. + + will be returned if the property value was not found + + + + Gets own property from this entity. + + Gets own property from this entity. The property must have been set earlier to this entity. + If the property is not found, + + will be returned. + + the return type associated with the property + the property to be retrieved + + the value of the given own property. + + will be returned if the property value was not found + + + + Gets the default property from this entity. + the return type associated with the property + the property to be retrieved + + the default property value. If the default property is not defined, + + will be returned + + + + Sets a property for this entity. + the property to be set + the value of the property + + + Deletes the own property of this entity. + the property to be deleted + + + + Represents the area for content + layouting. + + + + The number of page on which the area is located. + + + The area's bounding box + + + + Creates the area for content + layouting. + + the number of page on which the area is located. + the area's bounding box + + + Gets the number of page on which the area is located. + page number + + + + Gets the + box + which bounds the area. + + the bounding box + + + + Sets the + box + which bounds the area. + + the area's bounding box + + + + Creates a "deep copy" of this LayoutArea, meaning the object returned by this method will be independent + of the object being cloned. + + the copied LayoutArea. + + + + + + + + + + + + + Represents the context for content + layouting. + + + + + The + + for the content to be placed on. + + + + The info about margins collapsing. + + + + The list of + + objects. + + + + Indicates whether the height is clipped or not. + + + Creates the layout context. + for the content to be placed on + + + Creates the layout context. + for the content to be placed on + the info about margins collapsing + + + Creates the layout context. + for the content to be placed on + the info about margins collapsing + + list of + + objects + + + + Creates the layout context. + for the content to be placed on + indicates whether the height is clipped or not + + + Creates the layout context. + for the content to be placed on + the info about margins collapsing + + list of + + objects + + indicates whether the height is clipped or not + + + + Gets the + area + the content to be placed on. + + the area for content layouting. + + + Gets info about margins collapsing. + the info about margins collapsing + + + + Gets list of + + objects. + + + list of + + objects + + + + Indicates whether the layout area's height is clipped or not. + whether the layout area's height is clipped or not. + + + Defines whether the layout area's height is clipped or not. + indicates whether the height is clipped or not. + + + + + + We use a simplified version of CSS positioning. + + We use a simplified version of CSS positioning. + See https://www.webkit.org/blog/117/webcore-rendering-iv-absolutefixed-and-relative-positioning + + + + Default positioning by normal rules of block and line layout. + + + + Relative positioning is exactly like static positioning except that the left, top, right and bottom properties + can be used to apply a translation to the object. + + + Relative positioning is exactly like static positioning except that the left, top, right and bottom properties + can be used to apply a translation to the object. Relative positioning is literally nothing more than a paint-time translation. + As far as layout is concerned, the object is at its original position. + + + + + Absolute positioned objects are positioned relative to the containing block, which is the nearest enclosing + ancestor block with a position other than 'static'. + + + + Fixed positioned objects are positioned relative to the viewport, i.e., the page area of the current page. + + + + + Represents the result of content + layouting. + + + + + The status of + + which indicates that the content was fully placed. + + + + + The status of + + which indicates that the content was placed partially. + + + + + The status of + + which indicates that the content was not placed. + + + + + The status of + + which indicates whether the content was added or not + and, if yes, was it added fully or partially. + + + + + The area occupied by the content during its + layouting. + + + The area occupied by the content during its + layouting. + which indicates whether the content was added or not and, if yes, was it added fully or partially. + + + + + The split renderer created during + layouting. + + + The split renderer created during + layouting. + This renderer will be used to draw the splitted part of content. + + + + + The overflow renderer created during + layouting. + + + The overflow renderer created during + layouting. + This renderer will be used to draw the overflowed part of content. + + + + + The + + that will be rendered by this object. + + + + + The first renderer to produce + + during + . + + + + + Creates the + + result of + layouting + }. + + + Creates the + + result of + layouting + }. + The + + will be set as null. + + + the status of + + + the area occupied by the content + the renderer to draw the splitted part of the content + the renderer to draw the overflowed part of the content + + + + Creates the + + result of + layouting + }. + + + the status of + + + the area occupied by the content + the renderer to draw the splitted part of the content + the renderer to draw the overflowed part of the content + + the first renderer to produce + + + + + + Gets the status of + . + + the status + + + + Sets the status of + . + + + the status of + + + + + + Gets the + layout area + occupied by the content during + layouting. + + + the + layout area + occupied by the content + + + + + Gets the split + renderer + created during + layouting. + + + the + renderer + + + + + Sets the split + renderer. + + the renderer to draw the splitted part of the content + + + + Gets the overflow renderer created during + layouting. + + + the + renderer + + + + + Sets the overflow + renderer. + + the renderer to draw the overflowed part of the content + + + Gets areaBreak value. + the areaBreak value + + + Sets areaBreak value. + the areaBreak value + the areaBreak value + + + + Gets the first renderer to produce + + during + + + + the + renderer + + + + + + + + Represents the context for content of a line + layouting. + + + + Creates the context for content of a line. + for the content to be placed on + the info about margins collapsing + + list of + + objects + + indicates whether the height is clipped or not + + + Creates the context for content of a line. + the context for content layouting + + + + Specifies whether some floating element within the same paragraph has already completely overflowed to the next + page. + + true if floating element has already overflowed to the next page, false otherwise. + + + + Changes the value of property specified by + . + + true if some floating element already completely overflowed. + + + this + + instance. + + + + Gets the indent of text in the beginning of the current line. + the indent of text in this line. + + + Sets the indent of text in the beginning of the current line. + the indent of text in this line. + + this + + instance. + + + + + Represents the result of a line + layouting. + + + + Indicates whether split was forced by new line symbol or not. + + + + Creates the + + result of + layouting + }. + + + Creates the + + result of + layouting + }. + The + + will be set as null. + + + the status of + + + the area occupied by the content + the renderer to draw the splitted part of the content + the renderer to draw the overflowed part of the content + + + + Creates the + + result of + layouting + }. + + + the status of + + + the area occupied by the content + the renderer to draw the splitted part of the content + the renderer to draw the overflowed part of the content + + the first renderer to produce + + + + + Indicates whether split was forced by new line symbol in rendered text. + + Indicates whether split was forced by new line symbol in rendered text. + The value will be set as true if, for example, + the rendered text of one of the child renderers contains '\n' symbol. + + whether split was forced by new line or not + + + Sets a flat that split was forced by new line symbol in rendered text. + indicates that split was forced by new line symbol in rendered text. + + + this layout result + the setting was applied on. + + + + Gets the list of floats overflowed to next page. + list of floats overflowed to next page + + + Sets the list of floats overflowed to next page. + the floats overflowed to next page + + + + Represents the result of content + layouting. + + + + + The + + value of min and max width. + + + + Creates min and max width. + the status which indicates the content + the area occupied by the content + the renderer to draw the splitted part of the content + the renderer to draw the overflowed part of the content + + + Creates min and max width. + the status which indicates the content + the area occupied by the content + the renderer to draw the splitted part of the content + the renderer to draw the overflowed part of the content + + the first renderer to produce + + + + + Gets min and max width. + min and max width + + + Sets min and max width. + min and max width + min and max width + + + Represents the result of positioning for layout context. + + + Creates position for layout context. + for the content to be placed on + the parent content to be placed on + + + Gets the value of the parent occupied area. + the parent occupied area + + + Represents the root layout area. + + + Indicates whether the area already has some placed content or not. + + + Creates the root layout area. + the value number of page + the bounding box + + + Indicates whether the area already has some placed content or not. + whether the area is empty or not + + + Defines whether the area already has some placed content or not. + indicates whether the area already has some placed content or not. + + + + Creates a "deep copy" of this RootLayoutArea, meaning the object returned by this method will be independent + of the object being cloned. + + + Creates a "deep copy" of this RootLayoutArea, meaning the object returned by this method will be independent + of the object being cloned. + Note that although the return type of this method is + + , + the actual type of the returned object is + . + + the copied RootLayoutArea. + + + + Represents the result of a text + layout. + + + + + Indicates whether some word was split during + layout. + + + + Indicates whether split was forced by new line symbol in text or not. + + + + Creates the + + result of + layouting + }. + + + Creates the + + result of + layouting + }. + The + + will be set as null. + + + the status of + + + the area occupied by the content + the renderer to draw the split part of the content + the renderer to draw the overflowed part of the content + + + + Creates the + + result of + layouting + }. + + + the status of + + + the area occupied by the content + the renderer to draw the split part of the content + the renderer to draw the overflowed part of the content + + the first renderer to produce + + + + + + Indicates whether some word in a rendered text was split during + layout. + + + Indicates whether some word in a rendered text was split during + layout. + The value will be set as true if, for example, the rendered words width is bigger than the width of layout area. + + whether some word was split or not. + + + + Sets + + + + indicates that some word was split during + layout. + + + + this layout result + the setting was applied on + + + + + Indicates whether split was forced by new line symbol in rendered text. + + Indicates whether split was forced by new line symbol in rendered text. + The value will be set as true if, for example, the rendered text contains '\n' symbol. + This value can also be true even if the text was fully placed, but had line break at the end. + + whether split was forced by new line or not. + + + + Sets + + + indicates that split was forced by new line symbol in rendered text. + + + this layout result + the setting was applied on. + + + + + Indicates whether split renderer contains possible break. + + Indicates whether split renderer contains possible break. + Possible breaks are either whitespaces or split characters. + + true if there's a possible break within the split renderer. + + + + + Sets + . + + indicates that split renderer contains possible break. + + + this layout result + the setting was applied on. + + + + + + Sets + . + + + indicates if TextRenderer#line starts with a split character that is + also a whitespace. + + + + this layout result + the setting was applied on. + + + + + Indicates whether TextRenderer#line starts with a whitespace. + true if TextRenderer#line starts with a whitespace. + + + + Sets + . + + indicates if TextRenderer#line ends with a splitCharacter. + + + this layout result + the setting was applied on. + + + + + Indicates whether TextRenderer#line ends with a splitCharacter. + true if TextRenderer#line ends with a splitCharacter. + + + + Sets min width of the leftmost unbreakable part of the TextRenderer#line after layout. + + Sets min width of the leftmost unbreakable part of the TextRenderer#line after layout. + This value includes left-side additional width, i.e. left margin, border and padding widths. + In case when entire TextRenderer#line is unbreakable, leftMinWidth also includes right-side additional width. + + min width of the leftmost unbreakable part of the TextRenderer#line after layout. + + + + this layout result + the setting was applied on. + + + + Gets min width of the leftmost unbreakable part of the TextRenderer#line after layout. + + Gets min width of the leftmost unbreakable part of the TextRenderer#line after layout. + This value leftMinWidth includes left-side additional width, i.e. left margin, border and padding widths. + In case when entire TextRenderer#line is unbreakable, leftMinWidth also includes right-side additional width. + + min width of the leftmost unbreakable part of the TextRenderer#line after layout. + + + Sets min width of the rightmost unbreakable part of the TextRenderer#line after layout. + + Sets min width of the rightmost unbreakable part of the TextRenderer#line after layout. + This value includes right-side additional width, i.e. right margin, border and padding widths. + In case when entire TextRenderer#line is unbreakable, this value must be -1 + and right-side additional width must be included in leftMinWidth. + + min width of the rightmost unbreakable part of the TextRenderer#line after layout. + + + + this layout result + the setting was applied on. + + + + Gets min width of the rightmost unbreakable part of the TextRenderer#line after layout. + + Gets min width of the rightmost unbreakable part of the TextRenderer#line after layout. + This value includes right-side additional width, i.e. right margin, border and padding widths. + In case when entire TextRenderer#line is unbreakable, this value must be -1 + and right-side additional width must be included in leftMinWidth. + + min width of the leftmost unbreakable part of the TextRenderer#line after layout. + + + Class containing constants to be used in layout. + + + + Creates a "deep copy" of this MarginsCollapse, meaning the object returned by this method will be independent + of the object being cloned. + + the copied MarginsCollapse. + + + + Rules of the margins collapsing are taken from Mozilla Developer Network: + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing + See also: + https://www.w3.org/TR/CSS2/box.html#collapsing-margins + + + + This method shall be called after child occupied area is included into parent occupied area. + available area for child and its siblings layout. It might be adjusted inside the method + + + + Class for min-max-width of rotated elements. + + Class for min-max-width of rotated elements. + Also contains heuristic methods for it calculation based on the assumption that area of element stays the same + when we try to layout it with different available width (available width is between min-width and max-width). + + + + Create new instance + min-width of rotated element + max-width of rotated element + the width of not rotated element, that will have min-width after rotation + the width of not rotated element, that will have max-width after rotation + the height of rotated element, that have min-width as its rotated width + the height of rotated element, that have min-width as its rotated width + + + + Heuristic method, based on the assumption that area of element stays the same, when we try to + layout it with different available width (available width is between min-width and max-width). + + rotation angle in radians + the constant area + NOT rotated element min-max-width + possible min-max-width of element after rotation + + + + Heuristic method, based on the assumption that area of element stays the same, when we try to + layout it with different available width (available width is between min-width and max-width). + + rotation angle in radians + the constant area + NOT rotated element min-max-width + the maximum width of area the element will occupy after rotation. + possible min-max-width of element after rotation + + + Utility method for calculating rotated width of area in a similar way to other calculations in this class. + + the initial area + the rotation angle in radians + width of rotated area + + + This method use derivative of function defined on interval: [xMin, xMax] to find its local minimum and maximum. + + + This method use derivative of function defined on interval: [xMin, xMax] to find its local minimum and maximum. + It also calculate other handy values needed for the creation of + . + + + the + + of this instance is used as analysed function + + the smallest possible value of function argument + the biggest possible value of function argument + + the calculated + + + + + + Class that represents functions used, for calculation of width of element after rotation + based on it's NOT rotated width and assumption, that area of element stays the same when + we try to layout it with different available width. + + + Class that represents functions used, for calculation of width of element after rotation + based on it's NOT rotated width and assumption, that area of element stays the same when + we try to layout it with different available width. + Contains handy methods for function analysis. + + + + Create new instance + rotation angle in radians + the constant area + + + Function used for width calculations of rotated element. + Function used for width calculations of rotated element. This function is continuous on interval: (0, Infinity) + + width value of NOT rotated element + width of rotated element + + + Function used for height calculations of rotated element. + Function used for height calculations of rotated element. This function is continuous on interval: (0, Infinity) + + width value of NOT rotated element + width of rotated element + + + Get's possible values of NOT rotated width of all element that have therer rotated width less that availableWidth + + the highest possible width of rotated element. + interval that specify biggest and smallest possible values of NOT rotated width of such elements. + + + + + Gets the argument of + + that results in zero derivative. + + + Gets the argument of + + that results in zero derivative. + In case we have + + == 0 + or + + == 0 + the function doesn't have + zero derivative on defined interval, but value returned by this method fits well in the calculations above. + + + the argument of + + that results in zero derivative + + + + + A specialized enum containing potential property values for + + and + . + + + + + The possible values for the type of break + that is executed by an + . + + + + + A specialized class holding configurable properties related to an + + 's background. + + + A specialized class holding configurable properties related to an + + 's background. This class is meant to be used as the value for the + + key in an + + . Allows + to define a background color, and positive or negative changes to the + location of the edges of the background coloring. + + + + Creates a background with a specified color. + the background color + + + Creates a background with a specified color and opacity. + the background color + the opacity of the background color; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + + + + Creates a background with a specified color, and extra space that + must be counted as part of the background and therefore colored. + + + Creates a background with a specified color, and extra space that + must be counted as part of the background and therefore colored. + These values are allowed to be negative. + + the background color + extra coloring to the left side + extra coloring at the top + extra coloring to the right side + extra coloring at the bottom + + + + Creates a background with a specified color, and extra space that + must be counted as part of the background and therefore colored. + + + Creates a background with a specified color, and extra space that + must be counted as part of the background and therefore colored. + These values are allowed to be negative. + + the background color + the opacity of the background color; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + extra coloring to the left side + extra coloring at the top + extra coloring to the right side + extra coloring at the bottom + + + Creates a background with a specified color, opacity and clip value. + the background color + + the opacity of the background color; a float between 0 and 1, where 1 stands for fully opaque + color and 0 - for fully transparent + + the value to clip the background color + + + Gets the background's color. + + a + + of any supported kind + + + + Gets the opacity of the background. + a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + + Gets the extra space that must be filled to the left of the Element. + a float value + + + Gets the extra space that must be filled to the right of the Element. + a float value + + + Gets the extra space that must be filled at the top of the Element. + a float value + + + Gets the extra space that must be filled at the bottom of the Element. + a float value + + + Gets background clip value. + background clip value + + + Enum with boxes that can be used as a value in background-clip and background-origin properties. + + + Class to hold background-image property. + + + + Creates a copy of passed + + instance. + + + + + for cloning + + + + + Gets initial image if it is instanceof + + , otherwise returns null. + + + + + + + + + Gets initial image if it is instanceof + + , otherwise returns null. + + + + + + + + + Creates a new + + instance. + + + background-image property. + + instance. + + + background-repeat property. + + instance. + + + background-position property. + + instance. + + + background-size property. + + instance. + + + background-image property. + + instance. + + + the image's blend mode. + + instance. + + + background-clip property. + + instance. + + + background-origin property. + + instance. + + + + Gets background-position. + + + + + + + Gets linearGradientBuilder. + + + + + + + Returns is background specified. + + + + if background is specified, otherwise false + + + + Gets the background size property. + + + + instance + + + + Gets initial image width. + the initial image width + + + Gets initial image height. + the initial image height + + + + Gets image + + instance. + + the image background repeat + + + Get the image's blend mode. + + the + + representation of the image's blend mode + + + + Gets background-clip. + + + + + + + Gets background-origin. + + + + + + + + + builder class. + + + + + Creates a new + + instance. + + + + Sets image. + + Sets image. + + Makes linearGradientBuilder null as far as we can't have them both. + + + + + to be set. + + + this + . + + + + Sets linearGradientBuilder. + + Sets linearGradientBuilder. + + Makes image null as far as we can't have them both. It also makes background-repeat: no-repeat. + + + + + to be set. + + + this + . + + + + Sets background-repeat. + + + + to be set. + + + this + . + + + + Sets background-position. + + + + to be set. + + + this + . + + + + Set the image's blend mode. + + + + to be set. + + + this + . + + + + Set the image's backgroundSize. + + + + to be set. + + + this + . + + + + Sets background-clip. + + + + to be set. + + + this + . + + + + Sets background-origin. + + + + to be set. + + + this + . + + + + + Builds new + + using set fields. + + + new + . + + + + Class to hold background-position property. + + + + Creates a new + + instance. + + + Creates a new + + instance. Fills it with default values. + + + + Converts all percentage and enum values to point equivalent. + container width to calculate percentage. + container height to calculate percentage. + + + + to store processed xPosition. + + + + + to store processed yPosition. + + + + Gets horizontal position. + position in x-dimension + + + Sets horizontal position. + position in x-dimension + + + + + + + Gets vertical position. + position in y-dimension + + + Sets vertical position. + position in y-dimension + + + + + + + Gets horizontal shift. + shift in x-dimension from left + + + Sets horizontal shift. + shift in x-dimension from left + + + + + + + Gets vertical shift. + shift in y-dimension from top + + + Sets vertical shift. + shift in y-dimension + + + + + + + + true if every field equals. False otherwise. + + + + object's hashCode. + + + + Parses positionX to + . + + + + + in which positionX will be parsed + + multiplier by which the xShift will be multiplied + + + + Parses positionY to + . + + + + + in which positionY will be parsed + + multiplier by which the yShift will be multiplied + + + A specialized enum containing positions in x-dimension (horizontal positions). + + + A specialized enum containing positions in y-dimension (vertical positions). + + + Class to hold background-repeat property. + + + + Creates a new + + instance. + + + Creates a new + + instance. + The axis will have the value + . + + + + + Creates a new + + instance based on one + + instance. + + the repeat value that will be set for for both axes + + + + Creates a new + + instance based on two + + instance. + + the repeat value that will be set for for X axis + the repeat value that will be set for for Y axis + + + + Gets the + + value for X axis. + + the repeat value for X axis. + + + + Gets the + + value for Y axis. + + the repeat value for Y axis. + + + + Checks whether the + + value is set on X axis or not. + + + is the X axis have + + value + + + + + Checks whether the + + value is set on Y axis or not. + + + is the Y axis have + + value + + + + Prepares the image rectangle for drawing. + + Prepares the image rectangle for drawing. This means that the size and position of the image + rectangle will be changed to match the + + values for the axes. + + the image rectangle which will be changed + the background available area + the image background size property + the necessary whitespace between backgrounds + + + Defines all possible background repeat values for one axis. + + + + The no repeat value which mean that the background will not be repeated, but displayed once with its + original size. + + + + + The repeat value which means that the background with its original size will be repeated over the entire + available space. + + + + The round value which mean that the background will stretch or compress. + + The round value which mean that the background will stretch or compress. Initially, the available space is + divided by module by the size of the background, if the result is less than half the size of the background, + then the background is stretched in such a way that when it is repeated it will take up all the space, + otherwise the background is compressed to fit one more background in the available space. + + + + + The space value which means that the background will be repeated as much as possible with its original size + and without cropping. + + + The space value which means that the background will be repeated as much as possible with its original size + and without cropping. the first and last backgrounds are attached to opposite edges of the available space, + and the whitespaces are evenly distributed between the backgrounds. + + + + Class to hold background-size property. + + + Width size for this image. + + Width size for this image. If + + is in percent, then width depends on the area of the element. + + + + Height size for this image. + + Height size for this image. If + + is in percent, then height depends on the area of the element. + + + + Image covers the entire area and its size may be more than the area. + + + Image hsd a maximum size but not larger than the area. + + + + Creates a new + + instance. + + + Creates a new + + instance. + The "cover" and "contain" properties are not set. + + + + Clears all current properties and sets new width and height values. + + Clears all current properties and sets new width and height values. One of the parameters + can be null. Note that in this case null property will be scaled so that it becomes + proportionally equal with the non-null value. If both parameters are set to null, then + the default image size will be used. + + + a + + object + + + a + + object + + + + + Clears all size values and sets the "contain" property + . + + + + + + Clears all size values and sets the "cover" property + . + + + + + Gets the background width property of the image. + + the + + width for this image. + + + + + Gets the background height property of the image. + + the + + height for this image. + + + + + Returns is size has specific property. + + + + if size set to "contain" or "cover", otherwise false. + + + + Returns value of the "contain" property. + + + + if property "contain" is set to the size, otherwise false. + + + + + Returns value of the "cover" property. + + + + if property "cover" is set to the size, otherwise false. + + + + + + A specialized enum holding the possible values + for a text + + 's base direction. + + + A specialized enum holding the possible values + for a text + + 's base direction. + This class is meant to be used as the value + for the + + key in an + . + + + + Defines all possible blend modes and their mapping to pdf names. + + + Get the pdf representation of the current blend mode. + + the + + representation of the current blend mode. + + + + + A specialized enum containing potential property values for + . + + + + Represents a border radius. + + + The horizontal semi-major axis of the ellipse to use for the border in that corner. + + + The vertical semi-major axis of the ellipse to use for the border in that corner. + + + + Creates a + border radius + with given value. + + the radius + + + + Creates a + border radius + with a given point value. + + the radius + + + + Creates a + border radius + with given horizontal and vertical values. + + the horizontal radius of the corner + the vertical radius of the corner + + + + Creates a + border radius + with given horizontal and vertical point values. + + the horizontal radius of the corner + the vertical radius of the corner + + + + Gets the horizontal radius of the + border's + corner. + + the horizontal radius + + + + Gets the vertical radius of the + border's + corner. + + the vertical radius + + + + A specialized enum containing potential property values for + . + + + + + A specialized enum containing the potential caption side values + for a + + 's caption. + + + + + A specialized enum containing potential property values for + . + + + + + A specialized enum containing potential property values for + . + + + + + A specialized enum containing potential property values for + . + + + + + A specialized enum holding the possible values + for a text + + 's kerning property. + + + A specialized enum holding the possible values + for a text + + 's kerning property. + This class is meant to be used as the value for the + + key + in an + . + + + + + A specialized enum containing potential property values for + . + + + + Interface for implementing custom symbols for lists + + + Creates symbol. + - the positive (greater then zero) index of list item in list. + + - the + + with all properties of corresponding list. + + + - the + + with all properties of corresponding list item. + + + the + + representing symbol. + + + + + A enum containing potential property values for + . + + + + + A specialized class that specifies the leading, "the vertical distance between + the baselines of adjacent lines of text" (ISO-32000-1, section 9.3.5). + + + A specialized class that specifies the leading, "the vertical distance between + the baselines of adjacent lines of text" (ISO-32000-1, section 9.3.5). + Allows to use either an absolute (constant) leading value, or one + determined by font size. Pronounce as 'ledding' (cfr. Led Zeppelin). + This class is meant to be used as the value for the + + key in an + . + + + + A leading type independent of font size. + + + A leading type related to the font size and the resulting bounding box. + + + Creates a Leading object. + + a constant type that defines the calculation of actual + leading distance. Either + + or + + + to be used as a basis for the leading calculation. + + + Gets the calculation type of the Leading object. + + the calculation type. Either + + or + + + + + Gets the value to be used as the basis for the leading calculation. + a calculation value + + + + A property corresponding to the css line-height property and used to + set the height of a line box in the HTML mode. + + + A property corresponding to the css line-height property and used to + set the height of a line box in the HTML mode. On block-level elements, + it specifies the minimum height of line boxes within the element. + On non-replaced inline elements, it specifies the height that is used to calculate line box height. + + + + Returns the line height value. + + Returns the line height value. + The meaning of the returned value depends on the type of line height. + + + the + + value. + + + + + Creates a + + with a fixed value. + + value to set + + created + + object + + + + + Creates a + + with multiplied value. + + + Creates a + + with multiplied value. + This value must be multiplied by the element's font size. + + value to set + + created + + object + + + + + Creates a normal + . + + + created + + object + + + + + Check if the + + contains fixed value. + + + true if + + contains fixed value. + + + + + Check if the + + contains multiplied value. + + + true if + + contains multiplied value. + + + + + Check if the + + contains normal value. + + + true if + + is normal. + + + + + A specialized enum holding the possible values + for a list + + 's entry prefix. + + + A specialized enum holding the possible values + for a list + + 's entry prefix. + This class is meant to be used as the value for the + + key + in an + . + + + + Zapfdingbats font characters in range [172; 181] + + + Zapfdingbats font characters in range [182; 191] + + + Zapfdingbats font characters in range [192; 201] + + + Zapfdingbats font characters in range [202; 221] + + + A specialized enum containing alignment properties for list symbols. + + A specialized enum containing alignment properties for list symbols. + + + means that the items will be aligned as follows: + + 9. Item 9
    + 10. Item 10 + + Whereas + + means the items will be aligned as follows: + + 9. Item 9
    + 10. Item 10 +
    +
    + + A specialized enum containing position properties for list symbols. + + + + A specialized enum holding the possible values for an object-fit property + which define the way of fitting the image into the content box with different size. + + + + If object-fit set to FILL, image will be sized to fill the element's content box. + + If object-fit set to FILL, image will be sized to fill the element's content box. This can + change the aspect-ratio of the image. + + + + + If object-fit set to CONTAIN, image will be scaled keeping its aspect ratio to fit in + the content box. + + + If object-fit set to CONTAIN, image will be scaled keeping its aspect ratio to fit in + the content box. The whole picture will be rendered in the document but some are of the + image container might be blank. + + + + + If object-fit set to COVER, image will be scaled keeping its aspect ratio to cover + the content box. + + + If object-fit set to COVER, image will be scaled keeping its aspect ratio to cover + the content box. The image will be clipped to fit the container's bounds. + + + + + If object-fit set to SCALE_DOWN, image will be scaled keeping its aspect ratio to fit in + the content box but scaling coefficient cannot be greater than 1. + + + If object-fit set to SCALE_DOWN, image will be scaled keeping its aspect ratio to fit in + the content box but scaling coefficient cannot be greater than 1. If content box is greater + than the image, picture will be rendered in its original size leaving the rest area of + the container blank. + + + + If object-fit set to NONE, image will not be scaled. + + If object-fit set to NONE, image will not be scaled. It will keep its original size. If + the content box is greater than image it will contain blank areas, otherwise picture will + be clipped to fit the container's bounds. + + + + + The possible values for the type of overflow of + . + + + + The possible values for the overflow wrap property. + + The possible values for the overflow wrap property. + + + and + + mean that long words will break if they overflow the container. + + + means that long words will not break, + even if they overflow the container. + + + + + A specialized class holding configurable parameters related to + + 's + orphans restrictions. + + + A specialized class holding configurable parameters related to + + 's + orphans restrictions. This class is meant to be used as the value for the + + key. + + + + + Creates a + + instance with a specified orphans limitation. + + minimal number of paragraph's lines to remain on an area before an area break. + + + Sets parameter that defines orphans restrictions. + minimal number of paragraph's lines to remain on an area before an area break. + + this + + instance + + + + Gets minimal number of paragraph's lines to remain on an area before a split. + minimal number of paragraph's lines to remain on an area before an area break. + + + Writes a log message reporting that orphans constraint is violated. + + Writes a log message reporting that orphans constraint is violated. + This method is to be overridden if violation scenarios need to be handled in some other way. + + a renderer processing orphans + + + + explaining the reason for violation + + + + + A specialized class holding configurable parameters related to + + 's + widows restrictions. + + + A specialized class holding configurable parameters related to + + 's + widows restrictions. This class is meant to be used as the value for the + + key. + + + + + Creates a + + instance with specified widows restrictions. + + minimal number of paragraph's lines to be overflowed to the next area. + + a number of lines that are allowed to be moved to the next area + in order to fix widows constraint violation. + + + defines whether the entire paragraph should be pushed to the next area + if widows constraint is violated and cannot be automatically fixed. + + + + Sets parameters that define widows restrictions and conditions of handling cases of widows constraint violation. + + minimal number of paragraph's lines to be overflowed to the next area. + + a number of lines that are allowed to be moved to the next area + in order to fix widows constraint violation. + + + defines whether paragraph should be completely pushed to the next area + if widows constraint is violated and cannot be automatically fixed. + + + this + + instance. + + + + Gets minimal number of paragraph's lines to be overflowed to the next area. + minimal number of paragraph's lines to be overflowed to the next area + + + + Gets a number of lines that are allowed to be moved to the next area in order to fix + widows constraint violation. + + a number of lines that are allowed to be moved to the next are + + + + Indicates whether paragraph should be completely pushed to the next area if widows constraint is violated and + cannot be automatically fixed. + + + true if paragraph should be completely pushed to the next area if widows constraint is violated and + cannot be automatically fixed, otherwise - false + + + + Writes a log message reporting that widows constraint is violated and cannot be automatically fixed. + + + Writes a log message reporting that widows constraint is violated and cannot be automatically fixed. + This method is to be overridden if violation scenarios need to be handled in some other way. + + a renderer processing widows + + + + explaining the reason for violation + + + + + An enum of property names that are used for graphical properties of layout + elements. + + + An enum of property names that are used for graphical properties of layout + elements. The + + performs the same function as an + + , with the values of + + as its potential keys. + + + + Font family as String or PdfFont shall be set. + + + + String value. + + String value. 'normal'|'italic'|'oblique' + Note, this property will be applied only if + + has String[] value. + + + + String value. + + String value. 'normal'|'bold'|number + Note, this property will be applied only if + + has String[] value. + + + + + Shall be instance of + + + + + + Shall be instance of + . + + + + Value of 1 is equivalent to no scaling + + + + Use values from + . + + + + Value of 1 is equivalent to no scaling + + + + Some properties must be passed to + + objects that + are lower in the document's hierarchy. + + + Some properties must be passed to + + objects that + are lower in the document's hierarchy. Most inherited properties are + related to textual operations. Indicates whether or not this type of property is inheritable. + + + + + This method checks whether a Property, in order to be picked up by the + rendering engine, must be defined on the current element or renderer + (return false), or may be defined in one of its parent + elements or renderers (return true). + + the ID, defined in this class, of the property to check + whether the property type is inheritable + + + Enum of rendering modes that can be used in layout logic. + + + Default object layout mode + + + Mode in which objects are processed in accordance with the HTML documentation + + + + A specialized enum holding the possible values for a + Tab + 's alignment. + + + + + A specialized enum containing potential property values for + . + + + + + This class is used to store and process multiple + transform + css property before drawing. + + + + + Creates a new + + instance. + + + the amount of + + instances that this + + instant shall contain and be able to process + + + + + Adds a + + in a list of single transforms to process later. + + + a + + instance + + + + + Converts the + + instance, i.e. the list of + + instances, + to the equivalent + + instance relatively to the available area, + including resolving of percent values to point values. + + + a + + instance to convert + + the width of available area, the point value of which is equivalent to 100% for percentage resolving + + the height of available area, the point value of which is equivalent to 100% for percentage resolving + + + resulting affine transformation instance, accumulated from + + + + + + This class is used to store one + transform + function. + + + + + Creates a default + + instance equivalent to no transform. + + + + + Creates a + + instance. + + horizontal scaling + vertical skewing + horizontal skewing + vertical scaling + horizontal translation + vertical translation + + + Gets an array of values corresponding to transformation, i.e. scaling and skewing. + an array of floats + + + Gets an array of values corresponding to translation. + + an array of + + -s + + + + Represents a color with the specified opacity. + + + + Creates a new + + instance of certain fully opaque color. + + + the + + of the created + + object + + + + + Creates a new + . + + + the + + of the created + + object + + + a float defining the opacity of the color; a float between 0 and 1, + where 1 stands for fully opaque color and 0 - for fully transparent + + + + Gets the color. + + a + + + + + Gets the opacity of color. + a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + + Sets the opacity value for non-stroking operations in the transparent imaging model. + + the + + to be written to + + + + Sets the opacity value for stroking operations in the transparent imaging model. + + the + + to be written to + + + + A POJO that describes the underline of a layout element. + + A POJO that describes the underline of a layout element. + This class is to be used as a property for an element or renderer, + as the value for + + + + + Creates an Underline. + + Creates an Underline. Both the thickness and vertical positioning under + the text element's base line can be set to a fixed value, or a variable + one depending on the element's font size. + If you want a fixed-width thickness, set thicknessMul to 0; + if you want a thickness solely dependent on the font size, set + thickness to 0. + Mutatis mutandis for the y-position. + + + the + + of the underline + + a float defining the minimum thickness in points of the underline + a float defining the font size dependent component of the thickness of the underline + + a float defining the default absolute vertical distance in points from the text's base line + + a float defining the font size dependent component of the vertical positioning of the underline + + + the way the underline finishes at its edges. + + + + + Creates an Underline. + + Creates an Underline. Both the thickness and vertical positioning under + the text element's base line can be set to a fixed value, or a variable + one depending on the element's font size. + If you want a fixed-width thickness, set thicknessMul to 0; + if you want a thickness solely dependent on the font size, set + thickness to 0. + Mutatis mutandis for the y-position. + + + the + + of the underline + + a float defining the opacity of the underline; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + a float defining the minimum thickness in points of the underline + a float defining the font size dependent component of the thickness of the underline + + a float defining the default absolute vertical distance in points from the text's base line + + a float defining the font size dependent component of the vertical positioning of the underline + + + the way the underline finishes at its edges. + + + + + Gets the color of the underline. + + a + + + + + Gets the opacity of the underline color. + a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent + + + Gets the total thickness of the underline (fixed + variable part). + the font size for which to calculate the variable thickness + the total thickness, as a float, in points + + + Gets the vertical position of the underline (fixed + variable part). + the font size for which to calculate the variable position + the y-position, as a float, in points + + + Gets the multiplier for the vertical positioning of the text underline. + the Y-position multiplier, as a float + + + + Gets the + + of the text underline. + + + the line cap style, as an int referring to + the values of + + + + + A specialized class that holds a value and the unit it is measured in. + + + Creates a UnitValue object with a specified type and value. + + either + + or a + + + the value to be stored. + + + Creates a copy of UnitValue object. + the value to be stored + + + Creates a UnitValue POINT object with a specified value. + the value to be stored. + + a new + + + + + + + Creates a UnitValue PERCENT object with a specified value. + the value to be stored. + + a new + + + + + + + Creates an array of UnitValue PERCENT objects with specified values. + the values to be stored. + + a new normalized (Σ=100%) array of + + + . + + + + Creates an array of UnitValue PERCENT objects with equal values. + of the resulted array. + + a array of equal + + + . + + + + Creates an array of UnitValue POINT objects with specified values. + the values to be stored. + + a new array of + + + + + + + Returns the unit this value is stored in, either points (pt) or percent(%) + + either 1 for + + or 2 for + + + + + Sets the unit this value is stored in, either points (pt) or percent(%) + + either + + or + + + + + Gets the measured value stored in this object + the value, as a float + + + Sets the measured value stored in this object + a float + + + Returns whether or not the value is stored in points (pt) + true if stored in points + + + Returns whether or not the value is stored in percent (%) + true if stored in percent + + + + A specialized enum containing potential property values for + . + + + + + Defines the most common properties and behavior that are shared by most + + implementations. + + + Defines the most common properties and behavior that are shared by most + + implementations. All default Renderers are subclasses of + this default implementation. + + + + + The maximum difference between + + coordinates to consider rectangles equal + + + + The infinity value which is used while layouting + + + + The common ordering index of top side in arrays of four elements which define top, right, bottom, + left sides values (e.g. margins, borders, paddings). + + + + + The common ordering index of right side in arrays of four elements which define top, right, bottom, + left sides values (e.g. margins, borders, paddings). + + + + + The common ordering index of bottom side in arrays of four elements which define top, right, bottom, + left sides values (e.g. margins, borders, paddings). + + + + + The common ordering index of left side in arrays of four elements which define top, right, bottom, + left sides values (e.g. margins, borders, paddings). + + + + Creates a renderer. + + + Creates a renderer for the specified layout element. + the layout element that will be drawn by this renderer + + + + + + + + + + + + + + + + + + + Checks if this renderer or its model element have the specified property, + i.e. if it was set to this very element or its very model element earlier. + + the property to be checked + + + + if this instance or its model element have given own property, + + otherwise + + + + + + + + Deletes property from this very renderer, or in case the property is specified on its model element, the + property of the model element is deleted + + the property key to be deleted + + + + + + + + + + + + + + + + + + Returns a property with a certain key, as a font object. + + an + enum value + + + a + + + + + Returns a property with a certain key, as a color. + + an + enum value + + + a + + + + + + Returns a property with a certain key, as a + . + + + an + enum value + + + a + + + + + Returns a property with a certain key, as a floating point value. + + an + enum value + + + a + + + + + Returns a property with a certain key, as a floating point value. + + an + enum value + + default value to be returned if property is not found + + a + + + + + Returns a property with a certain key, as a boolean value. + + an + enum value + + + a + + + + + Returns a property with a certain key, as a unit value. + + an + enum value + + + a + + + + + Returns a property with a certain key, as an integer value. + + an + enum value + + + a + + + + + Returns a string representation of the renderer. + + a + + + + + + + + + + + + + Draws a background layer if it is defined by a key + + in either the layout element or this + + itself. + + the context (canvas, document, etc) of this drawing operation. + + + + Create a + + with the given area and containing a linear gradient inside. + + the linear gradient builder + the result object area + the pdf document + the xObject with a specified area and a linear gradient + + + Evaluate the actual background + the current occupied area with applied margins + the actual background area + + + + Performs the drawing operation for all + children + of this renderer. + + the context (canvas, document, etc) of this drawing operation. + + + + Performs the drawing operation for the border of this renderer, if + defined by any of the + + values in either the layout + element or this + + itself. + + the context (canvas, document, etc) of this drawing operation. + + + + Indicates whether this renderer is flushed or not, i.e. if + + has already + been called. + + whether the renderer has been flushed + + + + + + + + + + + + + + Gets all rectangles that this + + can draw upon in the given area. + + + a physical area on the + + + + a list of + rectangles + + + + + Gets the bounding box that contains all content written to the + + by this + . + + + the smallest + + that surrounds the content + + + + Gets the border box of a renderer. + + Gets the border box of a renderer. + This is a box used to draw borders. + + border box of a renderer + + + Applies margins, borders and paddings of the renderer on the given rectangle. + a rectangle margins, borders and paddings will be applied on. + + indicates whether margins, borders and paddings will be applied + inside (in case of false) or outside (in case of true) the rectangle. + + + a + border box + of the renderer + + + + Applies margins of the renderer on the given rectangle + a rectangle margins will be applied on. + + indicates whether margins will be applied + inside (in case of false) or outside (in case of true) the rectangle. + + + a + border box + of the renderer + + + + + + Applies the border box of the renderer on the given rectangle + If the border of a certain side is null, the side will remain as it was. + + a rectangle the border box will be applied on. + + indicates whether the border box will be applied + inside (in case of false) or outside (in case of false) the rectangle. + + + a + border box + of the renderer + + + + + Applies paddings of the renderer on the given rectangle + a rectangle paddings will be applied on. + + indicates whether paddings will be applied + inside (in case of false) or outside (in case of false) the rectangle. + + + a + border box + of the renderer + + + + + Replaces given property own value with the given value. + the property to be replaced + the value with which property will be replaced + the type associated with the property + previous property value + + + Returns back own value of the given property. + the property to be returned back + the value which will be returned back + the type associated with the property + + + Checks if this renderer has intrinsic aspect ratio. + true, if aspect ratio is defined for this renderer, false otherwise + + + Gets intrinsic aspect ratio for this renderer. + aspect ratio, if it is defined for this renderer, null otherwise + + + Retrieves element's fixed content box width, if it's set. + + Retrieves element's fixed content box width, if it's set. + Takes into account + + , + + , + and + + properties. + + + width of the parent element content box. + If element has relative width, it will be + calculated relatively to this parameter. + + element's fixed content box width or null if it's not set. + + + + Retrieves element's fixed content box max width, if it's set. + + Retrieves element's fixed content box max width, if it's set. + Takes into account + + and + + properties. + + + width of the parent element content box. + If element has relative width, it will be + calculated relatively to this parameter. + + element's fixed content box max width or null if it's not set. + + + + Retrieves element's fixed content box max width, if it's set. + + Retrieves element's fixed content box max width, if it's set. + Takes into account + + property value. + + + width of the parent element content box. + If element has relative width, it will be + calculated relatively to this parameter. + + element's fixed content box max width or null if it's not set. + + + + Updates fixed content box width value for this renderer. + + Updates fixed content box width value for this renderer. + Takes into account + + property value. + + element's new fixed content box width. + + + Retrieves the element's fixed content box height, if it's set. + + Retrieves the element's fixed content box height, if it's set. + Takes into account + + , + + , + and + + properties. + + element's fixed content box height or null if it's not set. + + + Calculates the element corner's border radii. + defines border radii of the element + defines the area of the element + defines whether horizontal or vertical radii should be calculated + the element corner's border radii. + + + Updates fixed content box height value for this renderer. + + Updates fixed content box height value for this renderer. + Takes into account + + property value. + + element's new fixed content box height, shall be not null. + + + Retrieve element's content box max-ehight, if it's set. + + Retrieve element's content box max-ehight, if it's set. + Takes into account + + property value. + + element's content box max-height or null if it's not set. + + + Updates content box max-height value for this renderer. + + Updates content box max-height value for this renderer. + Takes into account + + property value. + + element's new content box max-height, shall be not null. + + + Retrieves element's content box min-height, if it's set. + + Retrieves element's content box min-height, if it's set. + Takes into account + + property value. + + element's content box min-height or null if it's not set. + + + Updates content box min-height value for this renderer. + + Updates content box min-height value for this renderer. + Takes into account + + property value. + + element's new content box min-height, shall be not null. + + + Gets the first yLine of the nested children recursively. + + Gets the first yLine of the nested children recursively. E.g. for a list, this will be the yLine of the + first item (if the first item is indeed a paragraph). + NOTE: this method will no go further than the first child. + + the first yline of the nested children, null if there is no text found + + + Applies given margins on the given rectangle + a rectangle margins will be applied on. + the margins to be applied on the given rectangle + + indicates whether margins will be applied + inside (in case of false) or outside (in case of true) the rectangle. + + + a + border box + of the renderer + + + + Returns margins of the renderer + + a + float[] + margins of the renderer + + + + Returns paddings of the renderer + + a + float[] + paddings of the renderer + + + + Applies given paddings on the given rectangle + a rectangle paddings will be applied on. + the paddings to be applied on the given rectangle + + indicates whether paddings will be applied + inside (in case of false) or outside (in case of false) the rectangle. + + + a + border box + of the renderer + + + + Applies the given border box (borders) on the given rectangle + a rectangle paddings will be applied on. + + the + borders + to be applied on the given rectangle + + + indicates whether the border box will be applied + inside (in case of false) or outside (in case of false) the rectangle. + + + a + border box + of the renderer + + + + Retrieve the parent's resolved height declaration. + + Retrieve the parent's resolved height declaration. + If the parent has a relative height declaration, it will check it's parent recursively, + + + null if no height declaration is set on the parent, or if it's own height declaration cannot be resolved + The float value of the resolved height otherwiser + + + + Retrieve the direct parent's absolute height property + the direct parent's absolute height property value if it exists, null otherwise + + + Calculates min and max width values for current renderer. + + instance of + + + + + Indicates whether the renderer's position is fixed or not. + + a + boolean + + + + Indicates whether the renderer's position is fixed or not. + + a + boolean + + + + Gets borders of the element in the specified order: top, right, bottom, left. + + an array of BorderDrawer objects. + In case when certain border isn't set Property.BORDER is used, + and if Property.BORDER is also not set then null is returned + on position of this border + + + + Gets border radii of the element in the specified order: top-left, top-right, bottom-right, bottom-left. + + + an array of BorderRadius objects. + In case when certain border radius isn't set Property.BORDER_RADIUS is used, + and if Property.BORDER_RADIUS is also not set then null is returned + on position of this border radius + + + + + Calculates the bounding box of the content in the coordinate system of the pdf entity on which content is placed, + e.g. document page or form xObject. + + + Calculates the bounding box of the content in the coordinate system of the pdf entity on which content is placed, + e.g. document page or form xObject. This is particularly useful for the cases when element is nested in the rotated + element. + + + a + + which is a bbox of the content not relative to the parent's layout area but rather to + the some pdf entity coordinate system. + + + + Calculates bounding box around points. + list of the points calculated bbox will enclose. + array of float values which denote left, bottom, right, top lines of bbox in this specific order + + + + This method calculates the shift needed to be applied to the points in order to position + upper and left borders of their bounding box at the given lines. + + x coordinate at which points bbox left border is to be aligned + y coordinate at which points bbox upper border is to be aligned + the points, which bbox will be aligned at the given position + + array of two floats, where first element denotes x-coordinate shift and the second + element denotes y-coordinate shift which are needed to align points bbox at the given lines. + + + + Check if corresponding property has point value. + + + + + false if property value either null, or percent, otherwise true. + + + Check if corresponding property has relative value. + + + + + false if property value either null, or point, otherwise true. + + + Gets pdf document from root renderers. + PdfDocument, or null if there are no document + + + Returns the property of the renderer as a UnitValue if it exists and is a UnitValue, null otherwise + + renderer to retrieve the property from + key for the property to retrieve + A UnitValue if the property is present and is a UnitValue, null otherwise + + + + Gets any valid + + for this renderer, based on + + , + + and + + properties. + + + Gets any valid + + for this renderer, based on + + , + + and + + properties. + This method will not change font property of renderer. Also it is not guarantied that returned font will contain + all glyphs used in renderer or its children. + + This method is usually needed for evaluating some layout characteristics like ascender or descender. + + + a valid + + instance based on renderer + + property. + + + + + Get first valid + + for this renderer, based on given font-families, font provider and font characteristics. + + + Get first valid + + for this renderer, based on given font-families, font provider and font characteristics. + This method will not change font property of renderer. Also it is not guarantied that returned font will contain + all glyphs used in renderer or its children. + + This method is usually needed for evaluating some layout characteristics like ascender or descender. + + + a valid + + instance based on renderer + + property. + + + + + This method creates + + instance that could be used + to transform content inside the occupied area, + considering the centre of the occupiedArea as the origin of a coordinate system for transformation. + + + + + that transforms the content and places it inside occupied area. + + + + + Add the specified + renderer + to the end of children list and update its + parent link to + this. + + + the + child renderer + to be add + + + + + Add the specified collection of + renderers + to the end of children list and + update their parent links to + this. + + + the collection of + child renderers + to be add + + + + + Inserts the specified collection of + renderers + at the specified space of + children list and update their parent links to + this. + + index at which to insert the first element from the specified collection + + the collection of + child renderers + to be add + + + + + Set the specified collection of + renderers + as the children for + this + element. + + + Set the specified collection of + renderers + as the children for + this + element. That meant that the old collection would be cleaned, all parent links in old + children to + this + would be erased (i.e. set to + + ) and then the specified + list of children would be added similar to + . + + + the collection of children + renderers + to be set + + + + + Remove the child + renderer + at the specified place. + + + Remove the child + renderer + at the specified place. If the removed renderer has + the parent link set to + this + and it would not present in the children list after + removal, then the parent link of the removed renderer would be erased (i.e. set to + . + + the index of the renderer to be removed + the removed renderer + + + + Remove the children + renderers + which are contains in the specified collection. + + + Remove the children + renderers + which are contains in the specified collection. + If some of the removed renderers has the parent link set to + this + , then + the parent link of the removed renderer would be erased (i.e. set to + . + + the collections of renderers to be removed from children list + + + + if the children list has been changed + + + + + Update the child + renderer + at the specified place with the specified one. + + + Update the child + renderer + at the specified place with the specified one. + If the removed renderer has the parent link set to + this + , then it would be erased + (i.e. set to + + ). + + the index of the renderer to be updated + the renderer to be set + the removed renderer + + + + Sets current + + as parent to renderers in specified collection. + + the collection of renderers to set the parent renderer on + + + + Generates standard structure attributes for current tag + based on the layout element properties and renderer layout results. + + + + + This class is used to identify standard structure role type based only on it's name for the sake of applying + standard structure attributes. + + + This class is used to identify standard structure role type based only on it's name for the sake of applying + standard structure attributes. + + These types mostly resemble structure type levels in the pdf 1.7 specification, however they are not exact. + In pdf 2.0 some of these types are not even present and moreover, specific roles with the same name might belong + to different type levels depending on context (which consists of kids, parents and their types). + + So, these types are mostly useful for the internal itext usage and are not backed by any spec. They are designed for + the most part to return the value the most suitable and handy for the purposes of accessibility properties applying. + + Here are the main reasons to leave these types as is for now, even after introducing of PDF 2.0: + + Standard structure types for pdf 1.7 and 2.0 are very alike. There are some differences, like new/removed roles + and attributes, however they are not used in current layout auto tagging mechanism. + + Differentiating possible types for the same role based on the context is not supported at the moment. + + + In general, the correct way to handle role types would be to have separate classes for every namespace that define type + and apply attributes. However I believe, that for now it is not feasible at the moment to implement this approach. + The right time to improve and replace this class might be when new roles and attributes (specific to the different standard structure namespaces) + will be more widely used in the auto tagging mechanism by default, and also when may be there will be more known + practical examples of utilizing standard structure attributes. + + + + Identifies standard structure role type based only on it's name. + + Identifies standard structure role type based only on it's name. The return types might be one of the constants: + + + + + + + + + + + + + + + + + + See also remarks in the + + class documentation. + + + + + Renderer for the + + layout element. + + + Renderer for the + + layout element. Will terminate the + current content area and initialize a new one. + + + + Creates an AreaBreakRenderer. + + the + + that will be rendered by this object + + + + + Throws an UnsupportedOperationException because instances of this + class are only used for terminating the current content area. + + + + + + + + + Throws an UnsupportedOperationException because instances of this + class are only used for terminating the current content area. + + + + + + + + + Throws an UnsupportedOperationException because instances of this + class are only used for terminating the current content area. + + + + + + + + + Throws an UnsupportedOperationException because instances of this + class are only used for terminating the current content area. + + + + + + + + + + + + + + + + + + + + + Throws an UnsupportedOperationException because instances of this + class are only used for terminating the current content area. + + + + + + + + + + + + + Throws an UnsupportedOperationException because instances of this + class are only used for terminating the current content area. + + + + + + + + + + + + Utility class for calculate background image width and height. + + + Calculates width and height values for image with a given area params. + + the + + width and height of which you want to calculate + + width of the area of this images + height of the area of this images + array of two Float values. NOTE that first value defines width, second defines height. + + + + + This class helps to identify whether we are dealing with a renderer that creates + a new "Block formatting context" in terms of CSS. + + + This class helps to identify whether we are dealing with a renderer that creates + a new "Block formatting context" in terms of CSS. Such renderers adhere to + specific rules of floating elements and margins collapse handling. + + + https://www.w3.org/TR/CSS21/visuren.html#block-formatting + + https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context + + + + Defines whether a renderer creates a new "Block formatting context" in terms of CSS. + + Defines whether a renderer creates a new "Block formatting context" in terms of CSS. + + See + + class description for more info. + + + an + + to be checked. + + true if given renderer creates a new "Block formatting context" in terms of CSS, false otherwise. + + + + Represents a renderer for block elements. + + + Creates a BlockRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + + + Creates a split renderer. + the result of content layouting + + a new + + instance + + + + Creates an overflow renderer. + the result of content layouting + + a new + + instance + + + + + This method applies vertical alignment for the occupied area + of the renderer and its children renderers. + + + + + This method rotates content of the renderer and + calculates correct occupied area for the rotated element. + + + a + + + + + + This method creates + + instance that could be used + to rotate content inside the occupied area. + + + This method creates + + instance that could be used + to rotate content inside the occupied area. Be aware that it should be used only after + layout rendering is finished and correct occupied area for the rotated element is calculated. + + + + + that rotates the content and places it inside occupied area. + + + + This method starts rotation for the renderer if rotation angle property is specified. + + the + + to draw on + + + + This method ends rotation for the renderer if applied. + + the + + to draw on + + + + + + + + Represents a renderer for the + + layout element. + + + + Creates a CanvasRenderer from its corresponding layout object. + + Creates a CanvasRenderer from its corresponding layout object. + Sets + + to true. + + + the + + which this object should manage + + + + Creates a CanvasRenderer from its corresponding layout object. + + Creates a CanvasRenderer from its corresponding layout object. + Defines whether the content should be flushed immediately after addition + + or not + + + the + + which this object should manage + + the value which stands for immediate flushing + + + + + + + + + + For + + , this has a meaning of the renderer that will be used for relayout. + + relayout renderer. + + + + Represents a renderer for the + + layout element. + + + + Creates a CellRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + + + + + + + + + + + + Applies spacings on the given rectangle. + a rectangle spacings will be applied on + + indicates whether spacings will be applied + inside (in case of false) or outside (in case of true) the rectangle. + + + a + border box + of the renderer + + + + Applies given spacings on the given rectangle. + a rectangle spacings will be applied on + the spacings to be applied on the given rectangle + + indicates whether spacings will be applied + inside (in case of false) or outside (in case of true) the rectangle. + + + a + border box + of the renderer + + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If a renderer overflows to the next area, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. + + new renderer instance + + + + Horizontal borders to be collapsed with + the first-on-the-area row's cell top borders of this TableRenderer instance. + + + + + Horizontal borders to be collapsed with + the last-on-the-area row's cell bottom borders of this TableRenderer instance. + + + + + Vertical borders to be collapsed with + the last-on-the-area row's cell bottom borders of this TableRenderer instance. + + + + Gets vertical borders which cross the top horizontal border. + vertical borders which cross the top horizontal border + + + Returns the collapsed border. + + Returns the collapsed border. We process collapse + if the table border width is strictly greater than cell border width. + + cell border + table border + the collapsed border + + + + Returns the + + instances, which intersect in the specified point. + + + Returns the + + instances, which intersect in the specified point. + + The order of the borders: first the left one, then the top, the right and the bottom ones. + + index of horizontal border + index of vertical border + + a list of + + instances, which intersect in the specified point + + + + + A comparison function to compare two + + instances. + + + + Gets the width of the widest border in the specified list. + the borders which widths should be considered + the width of the widest border in the specified list + + + Compares borders and defines whether this border is wider than the other. + + Compares borders and defines whether this border is wider than the other. + + Note that by default the comparison will be strict, e.g. if this border + is of the same width as the other border, then false will be returned. + + this border + the other border to be compared with + whether this border is wider than the other + + + Compares borders and defines whether this border is wider than the other. + this border + the other border to be compared with + + if true, then in case this border is of the same width as the other border, + true will be returned. If false, it will be checked whether the width + of this border is strictly greater than the other border's width + + whether this border is wider than the other + + + + Represents a renderer for the + + layout element. + + + + Creates a DivRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If a renderer overflows to the next area, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. + + new renderer instance + + + Get handler for target-counters. + + the + + instance + + + + Indicates if relayout is required for targetCounterHandler. + true if relayout is required, false otherwise + + + + For + + , this has a meaning of the renderer that will be used for relayout. + + relayout renderer. + + + Adds new page with defined page size to PDF document. + the size of new page, can be null + the page size of created page + + + Ensures that PDF document has n pages. + + Ensures that PDF document has n pages. If document has fewer pages, + adds new pages by calling + + method. + + the expected number of pages if document + the size of created pages, can be null + the page size of the last created page, or null if no page was created + + + Creates a FlexContainerRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If a renderer overflows to the next area, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. + + new renderer instance + + + + + + + + + + + + + + + + + + Performs flex layout algorithm. + + Performs flex layout algorithm. + + The algorithm could be found here: + https://www.w3.org/TR/css-flexbox-1/#layout-algorithm + + bounding box in which flex container should be rendered + flex container's renderer + list of lines + + + + If the item has an intrinsic aspect ratio and its computed cross size property is definite, + then the transferred size suggestion is that size (clamped by its min and max cross size properties + if they are definite), converted through the aspect ratio. + + + If the item has an intrinsic aspect ratio and its computed cross size property is definite, + then the transferred size suggestion is that size (clamped by its min and max cross size properties + if they are definite), converted through the aspect ratio. It is otherwise undefined. + + transferred size suggestion if it can be calculated, null otherwise + + + + If the item’s computed main size property is definite, + then the specified size suggestion is that size (clamped by its max main size property if it’s definite). + + + If the item’s computed main size property is definite, + then the specified size suggestion is that size (clamped by its max main size property if it’s definite). + It is otherwise undefined. + + the width of the flex container + specified size suggestion if it's definite, null otherwise + + + + The content size suggestion is the min-content size in the main axis, clamped, if it has an aspect ratio, + by any definite min and max cross size properties converted through the aspect ratio, + and then further clamped by the max main size property if that is definite. + + the width of the flex container + content size suggestion + + + + Gets the maximum offset above the base line that this + + extends to. + + + the upwards vertical offset of this + + + + + + Gets the maximum offset below the base line that this + + extends to. + + + the downwards vertical offset of this + + + + + Creates an ImageRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + + + + + + + Gets original width of the image, not the width set by + + method. + + original image width + + + + Gets original height of the image, not the height set by + + method. + + original image height + + + + A renderer object is responsible for drawing a corresponding layout object on + a document or canvas. + + + A renderer object is responsible for drawing a corresponding layout object on + a document or canvas. Every layout object has a renderer, by default one of + the corresponding type, e.g. you can ask an + + for its + . + Renderers are designed to be extensible, and custom implementations can be + seeded to layout objects (or their custom subclasses) at runtime. + + + + Adds a child to the current renderer + a child to be added + + + + This method simulates positioning of the renderer, including all of its children, and returns + the + + , representing the layout result, including occupied area, status, i.e. + if there was enough place to fit the renderer subtree, etc. + + + This method simulates positioning of the renderer, including all of its children, and returns + the + + , representing the layout result, including occupied area, status, i.e. + if there was enough place to fit the renderer subtree, etc. + + can be extended to return custom layout results for custom elements, e.g. + + uses + + as its result. + This method can be called standalone to learn how much area the renderer subtree needs, or can be called + before + + , to prepare the renderer to be flushed to the output stream. + + the description of layout area and any other additional information + result of the layout process + + + + Flushes the renderer subtree contents, i.e. draws itself on canvas, + adds necessary objects to the + + etc. + + + contains the + + to which the renderer subtree if flushed, + the + + on which the renderer subtree is drawn and other additional parameters + needed to perform drawing + + + + + Gets the resultant occupied area after the last call to the + + method. + + + + + instance + + + + Gets a property from this entity or one of its hierarchical parents. + + Gets a property from this entity or one of its hierarchical parents. + If the property is not found, + + will be returned. + + the return type associated with the property + the property to be retrieved + a fallback value + the value of the given property + + + + Explicitly sets this object as the child of another + + in + the renderer hierarchy. + + + Explicitly sets this object as the child of another + + in + the renderer hierarchy. Some implementations also use this method + internally to create a consistent hierarchy tree. + + the object to place higher in the renderer hierarchy + by default, this object + + + + Gets the parent + . + + + direct parent + renderer + of this instance + + + + Gets the model element associated with this renderer. + + the model element, as a + container of properties + + + + + Gets the child + + s. + + + a list of direct child + renderers + of this instance + + + + + Indicates whether this renderer is flushed or not, i.e. if + + has already + been called. + + whether the renderer has been flushed + + + Moves the renderer subtree by the specified offset. + Moves the renderer subtree by the specified offset. This method affects occupied area of the renderer. + + the x-axis offset in points. Positive value will move the renderer subtree to the right. + the y-axis offset in points. Positive value will move the renderer subtree to the top. + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + new renderer instance + + + Gets the total lengths of characters in this line. + + Gets the total lengths of characters in this line. Other elements (images, tables) are not taken + into account. + + the total lengths of characters in this line. + + + Returns the number of base characters, i.e. non-mark characters + the number of base non-mark characters + + + Calculates and sets encountered tab size. + + Calculates and sets encountered tab size. + Returns null, if processing is finished and layout can be performed for the tab renderer; + otherwise, in case when the tab should be processed after the next element in the line, this method returns corresponding tab stop. + + + + Calculates and sets tab size with the account of the element that is next in the line after the tab. + + + Calculates and sets tab size with the account of the element that is next in the line after the tab. + Returns resulting width of the tab. + + + + Trim first child text renderers. + total number of trimmed glyphs. + + + Apply OTF features and return the last(!) base direction of child renderer + the last(!) base direction of child renderer. + + + Checks if the word that's been split when has been layouted on this line can fit the next line without splitting. + + the childRenderer containing the split word + + true if + + has been changed + during layouting of + + + + the value of + + before it's been changed + during layouting of + + or null if + + hasn't been changed + + + + + + current layoutBox + true if layoutBox's height has been clipped + true if the split word can fit the next line without splitting + + + + Extracts ascender and descender of an already layouted + childRenderer. + + an already layouted child who's ascender and descender are to be extracted + + + + of the childRenderer based on which ascender and descender are defined + + + + rendering mode + + + true if childRenderer + + + a two-element float array where first element is ascender value and second element is descender value + + + + + Updates + + , + + , + + and + + after a + + sequence has been fully processed. + + + position of the last + + child of the + sequence to remain on the line + + + a + + containing + + 's maxAscent, maxDescent, + maxTextAscent, maxTextDescent before + + sequence start + + + a + + with + + children's + positions as keys + and float arrays consisting of maxAscent, maxDescent, + maxTextAscent, + maxTextDescent of the corresponding + + children. + + + a two-element float array where first element is a new + + 's ascender + and second element is a new + + 's descender + + + + + Update + + , + + , + + , + + , + + and + + after child's layout. + + + a two-element float array where first element is ascender of a layouted child + and second element is descender of a layouted child + + + the layouted + childRenderer + of current + + + + true if + + + + + While resolving TextRenderer may split into several ones with different fonts. + + + Creates a LineSeparatorRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + + + + + + + + + Creates a LinkRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + Creates a LinkRenderer from its corresponding layout object, with a custom + text to replace the contents of the + . + + + the + + which this object should manage + + the replacement text + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If a renderer overflows to the next area, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. + + new renderer instance + + + Creates a ListItemRenderer from its corresponding layout object. + + the + + which this object should manage + + + + Creates a ListRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If a renderer overflows to the next area, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. + + new renderer instance + + + + Corrects split and overflow renderers when + + is applied. + + + Corrects split and overflow renderers when + + is applied. + + We assume that + + is applied when the first + + cannot be fully layouted. + This means that the problem has occurred in one of the first list item renderer's children. + In that case we force the placement of all first item renderer's children before the one, + which was the cause of + + , including this child. + + Notice that we do not expect + + to be applied + if we can render the first item renderer and strongly recommend not to set + + manually. + + + the + split renderer + before correction + + + the + overflow renderer + before correction + + + the renderer which has produced + + + the area occupied by layout before correction + + corrected + layout result + + + + Class to store metaInfo that will be used for layout renderers. + + + Creates MetaInfoContainer instance with provided meta info. + the meta info + + + Return the IMetaInfo object. + returns IMetaInfo + + + + The class represents results of calculating of rendered image size + after applying of the + + property. + + + + Creates a new instance of the class with default values. + + + Creates a new instance of the class. + is a width of the image to render + is a height of the image to render + + is a flag showing if rendered image should be clipped + as its size is greater than size of the image container + + + + Getter for width of rendered image. + width of rendered image + + + Setter for width of rendered image. + is a new width of rendered image + + + Getter for height of rendered image. + height of rendered image + + + Setter for height of rendered image. + is a new height of rendered image + + + + Getter for a boolean value showing if at least one dimension of rendered image + is greater than expected image size. + + + Getter for a boolean value showing if at least one dimension of rendered image + is greater than expected image size. If true then image will be shown partially + + true if the image need to be cutting during rendering and false otherwise + + + + Setter for a boolean value showing if at least one dimension of rendered image + is greater than expected image size. + + + Setter for a boolean value showing if at least one dimension of rendered image + is greater than expected image size. If true then image will be shown partially + + is a new value of the cutting-required flag + + + + Utility class which supports the + + property. + + + + + Calculates size of image to be render when certain + + mode is + applied. + + + Calculates size of image to be render when certain + + mode is + applied. The width or the height of the image might be greater than the same + property of the image in a document. In this case parts of the image will not + be shown. + + is an object-fit mode + is a width of the original image + is a height of the original image + is a width of the image to draw + is a width of the image to draw + + results of object-fit mode applying as an + + object + + + + + This class represents the + renderer + object for a + + object. + + + This class represents the + renderer + object for a + + object. It will draw the glyphs of the textual content on the + . + + + + Creates a ParagraphRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If a renderer overflows to the next area, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. + + new renderer instance + + + + + + + + + + + + + + + + Gets the lines which are the result of the + . + + paragraph lines, or null if layout hasn't been called yet + + + Draws (flushes) the content. + + + + + This method correctly closes the + + instance. + + + This method correctly closes the + + instance. + There might be hanging elements, like in case of + + is set to true + and when no consequent element has been added. This method addresses such situations. + + + + + + + + This method tries to calculate min-max-width of rotated element using heuristics + of + . + + + This method tries to calculate min-max-width of rotated element using heuristics + of + . + This method may call + + once in best case + (if the width is set on element, or if we are really lucky) and three times in worst case. + + the minMaxWidth of NOT rotated renderer + the actual renderer + minMaxWidth of rotated renderer or original value in case rotated value can not be calculated, or renderer isn't rotated. + + + + This method tries to calculate width of not rotated renderer, so after rotation it fits availableWidth. + + + This method tries to calculate width of not rotated renderer, so after rotation it fits availableWidth. + This method uses heuristics of + . + It doesn't take into account any of height properties of renderer or height of layoutArea. + The minMaxWidth calculations and initial layout may take long time, but they won't be called if the renderer have width property. + + the width of layoutArea + the actual renderer + + the width that should be set as width of layout area to properly layout element, or fallback to + + in case it can not be calculated, or renderer isn't rotated. + + + + Creates a table border descriptor which will be used while drawing the described border. + the index of the described border + the border's start main-axis coordinate + fixed cross-axis coordinate of the whole border + the sizes (widths or heights) of rows or columns depending on the type of main axis + + + + Horizontal borders of the table. + + Horizontal borders of the table. + It consists of a list, each item of which represents + a horizontal border of a row, each of them is a list of borders of the cells. + The amount of the lists is the number of rows + 1, the size of each of these lists + corresponds to the number of columns. + + + + Vertical borders of the table. + + Vertical borders of the table. + It consists of a list, each item of which represents + a vertical border of a row, each of them is a list of borders of the cells. + The amount of the lists is the number of columns + 1, the size of each of these lists + corresponds to the number of rows. + + + + The number of the table's columns. + + + The outer borders of the table (as body). + + + All the cells of the table. + + All the cells of the table. + Each item of the list represents a row and consists of its cells. + + + + The first row, which should be processed on this area. + + The first row, which should be processed on this area. + The value of this field varies from area to area. + It's zero-based and inclusive. + + + + The last row, which should be processed on this area. + + The last row, which should be processed on this area. + The value of this field varies from area to area. + It's zero-based and inclusive. The last border will have index (finishRow+1) because + the number of borders is greater by one than the number of rows + + + + The width of the widest left border. + + + The width of the widest right border. + + + The number of rows flushed to the table. + + The number of rows flushed to the table. + Its value is zero for regular tables. The field makes sense only for large tables. + + + + + This class represents the + renderer + object for a + + object. + + + This class represents the + renderer + object for a + + object. It will delegate its drawing operations on to the + + instances associated with the + table cells. + + + + True for newly created renderer. + True for newly created renderer. For split renderers this is set to false. Used for tricky layout. + + + + + Creates a TableRenderer from a + + which will partially render + the table. + + the table to be rendered by this renderer + the table rows to be rendered + + + + Creates a TableRenderer from a + . + + the table to be rendered by this renderer + + + + + + Applies the given spacings on the given rectangle + a rectangle spacings will be applied on. + the horizontal spacing to be applied on the given rectangle + the vertical spacing to be applied on the given rectangle + + indicates whether the spacings will be applied + inside (in case of false) or outside (in case of false) the rectangle. + + + a + border box + of the renderer + + + + Applies the given horizontal or vertical spacing on the given rectangle + a rectangle spacings will be applied on. + the horizontal or vertical spacing to be applied on the given rectangle + defines whether the provided spacing should be applied as a horizontal or a vertical one + + + indicates whether the spacings will be applied + inside (in case of false) or outside (in case of false) the rectangle. + + + a + border box + of the renderer + + + + + + + + + + + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If a renderer overflows to the next area, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. + + new renderer instance + + + + + + If there is some space left, we will move the footer up, because initially the footer is at the very bottom of the area. + + + If there is some space left, we will move the footer up, because initially the footer is at the very bottom of the area. + We also will adjust the occupied area by the footer's size if it is present. + + the layout box which represents the area which is left free. + + + If there is some space left, we will move the caption up, because initially the caption is at the very bottom of the area. + + + If there is some space left, we will move the caption up, because initially the caption is at the very bottom of the area. + We also will adjust the occupied area by the caption's size if it is present. + + the layout box which represents the area which is left free. + + + This method is used to set row range for table renderer during creating a new renderer. + + This method is used to set row range for table renderer during creating a new renderer. + The purpose to use this method is to remove input argument RowRange from createOverflowRenderer + and createSplitRenderer methods. + + + + Returns minWidth + + + This are a structs used for convenience in layout. + + + Utility class that copies overflow renderer rows on cell replacement so it won't affect original renderer + + + + Gets width of the cell, adding paddings and extra spacing if necessary. + + renderer from which width will be taken. + Note that this method will not change original width of the element. + + defines if 0 width is valid + increased width of the renderer + + + Creates a TabRenderer from its corresponding layout object + + the + + which this object should manage + + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If a renderer overflows to the next area, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. + + new renderer instance + + + Handler to handle target-counter logic. + + + Pages for all renderers with id. + + + + Creates a copy of the given + + instance. + + + + + instance to be copied + + + + + Creates a new + + instance. + + + + Adds renderer's page to the root renderer map. + renderer from which page and root renderer will be taken. + + + Gets page from renderer using given id. + renderer from which root renderer will be taken + key to the renderersPages Map + page on which renderer was layouted + + + Indicates if page value was defined for this id. + renderer from which root renderer will be taken + target id + true if value is defined for this id, false otherwise + + + Indicates if relayout is required. + true if relayout is required, false otherwise + + + Prepares handler to relayout. + + + Replaces special whitespace glyphs to new whitespace '\u0020' glyph that has custom width. + + Replaces special whitespace glyphs to new whitespace '\u0020' glyph that has custom width. + Special whitespace glyphs are symbols such as '\u2002', '\u2003', '\u2009' and '\t'. + + the string for preprocessing + the font that will be used when displaying the string + old line with new special whitespace glyphs + + + + This class represents the + renderer + object for a + + object. + + + This class represents the + renderer + object for a + + object. It will draw the glyphs of the textual content on the + . + + + + Creates a TextRenderer from its corresponding layout object. + + the + + which this object should manage + + + + + Creates a TextRenderer from its corresponding layout object, with a custom + text to replace the contents of the + . + + + the + + which this object should manage + + the replacement text + + + + Trims any whitespace characters from the start of the + + to be rendered. + + + + Gets the maximum offset above the base line that this Text extends to. + + the upwards vertical offset of this + + + + + Gets the maximum offset below the base line that this Text extends to. + + the downwards vertical offset of this + + + + + + Gets the position on the canvas of the imaginary horizontal line upon which + the + + 's contents will be written. + + + the y position of this text on the + + + + + Moves the vertical position to the parameter's value. + the new vertical position of the Text + + + + Manually sets the contents of the Text's representation on the canvas, + regardless of the Text's own contents. + + the replacement text + + + Manually set a GlyphLine and PdfFont for rendering. + + the + + + the font + + + The length of the whole text assigned to this renderer. + the text length + + + Gets char code at given position for the text belonging to this renderer. + the position in range [0; length()) + Unicode char code + + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + + Gets a new instance of this class to be used as a next renderer, after this renderer is used, if + + is called more than once. + + If + + overflows to the next line, iText uses this method to create a renderer + for the overflow part. So if one wants to extend + + , one should override + this method: otherwise the default method will be used and thus the default rather than the custom + renderer will be created. Another method that should be overridden in case of + + 's extension is + + . This method is responsible + for creation of + + 's copies, which represent its parts of specific font. + + new renderer instance + + + Get ascender and descender from font metrics. + + Get ascender and descender from font metrics. + If these values are obtained from typo metrics they are normalized with a scale coefficient. + + from which metrics will be extracted + array in which the first element is an ascender and the second is a descender + + + Get ascender and descender from font metrics. + + Get ascender and descender from font metrics. + In RenderingMode.DEFAULT_LAYOUT_MODE if these values are obtained from typo metrics they are normalized with a scale coefficient. + + from which metrics will be extracted + mode in which metrics will be obtained. Impact on the use of scale coefficient + array in which the first element is an ascender and the second is a descender + + + + Analyzes/checks whether + + , bounded by start and end, + contains glyphs belonging to special script. + + + Analyzes/checks whether + + , bounded by start and end, + contains glyphs belonging to special script. + Mind that the behavior of this method depends on the analyzeSpecialScriptsWordBreakPointsOnly parameter: + - pass + + if you need to analyze the + + by checking each of its glyphs + AND to fill + + list afterwards, + i.e. when analyzing a sequence of TextRenderers prior to layouting; + - pass + + if you want to check if text contains glyphs belonging to special scripts, + according to the already filled + + list. + + + false if analysis of each glyph is required, + true if analysis has already been performed earlier + and the results are stored in + + + + true if + + , bounded by start and end, contains glyphs belonging to special script, otherwise false + + + + + + Returns the length of the + line + which is the result of the layout call. + + the length of the line + + + + Resolve + + String[] value. + + add all processed renderers to. + + true, if new + + has been created. + + + + + Creates a copy of this + + , which corresponds to the passed + + with + . + + + Creates a copy of this + + , which corresponds to the passed + + with + . + + While processing + + , iText uses this method to create + glyph lines + of specific + fonts + , which represent the + + 's parts. If one extends + + , one should override this method, otherwise if + + related logic is triggered, copies of this + + will have the default behavior rather than + the custom one. + + + a + + which represents some of this + + 's content + + + a + + for this part of the + + 's content + + + copy of this + + , which correspond to the passed + + with + + + + + Identifies two properties for the layouted text renderer text: start and end break possibilities. + + + Identifies two properties for the layouted text renderer text: start and end break possibilities. + First - if it ends with split character, second - if it starts with the split character + which is at the same time is a whitespace character. These properties will later be used for identifying + if we can consider this and previous/next text renderers chunks to be a part of a single word spanning across + the text renderers boundaries. In the start of the text renderer we only care about split characters, which are + white spaces, because only such will allow soft-breaks before them: normally split characters allow breaks only + after them. + + + current renderer + + property value + + + a boolean array of two elements, where first element identifies start break possibility, and second - end + break possibility. + + + + + Preprocess a continuous sequence of TextRenderer containing special scripts + prior to layouting the first TextRenderer in the sequence. + + + Preprocess a continuous sequence of TextRenderer containing special scripts + prior to layouting the first TextRenderer in the sequence. + + In this method we preprocess a sequence containing special scripts only, + skipping floating renderers as they're not part of a regular layout flow, + and breaking the prelayout processing once a non-special script containing renderer occurs. + Note! Even though floats are skipped during calculating correct word boundaries, + floats themselves are considered as soft-wrap opportunities. + + Prelayout processing includes the following steps: + + + + : determine boundaries of the + sequence + and concatenate its TextRenderer#text fields converted to a String representation; + + get the String analyzed with WordWrapper#getPossibleBreaks and + receive a zero-based array of points where the String is allowed to got broken in lines; + + + + : + distribute the list over the TextRenderer#specialScriptsWordBreakPoints, preliminarily having the points + shifted, + so that each TextRenderer#specialScriptsWordBreakPoints is based on the first element of TextRenderer#text. + + + + line renderer containing text sequence to process + + index of the childRenderer in LineRenderer#childRenderers + from which the a continuous sequence of TextRenderer containing special scripts starts + + + + + Performs some settings on + + and its child prior to layouting the child + to be overflowed beyond the available area. + + line renderer containing text sequence to process + + true if it is + + sequence processing in overflowX mode + + + the + + 's child to be preprocessed + + + true if value of + + has been changed during + layouting + + + the value of + + before it's been changed + during layouting of + + or null if + + hasn't been changed + + + + + Checks if the layouting should be stopped on current child and resets configurations set on + . + + line renderer containing text sequence to process + + true if it is + + sequence processing in overflowX mode + + + the + + 's child to be preprocessed + + + true if value of + + has been changed during + layouting + + + + + This method defines how to proceed with a + + within which possible breaks haven't been found. + + + This method defines how to proceed with a + + within which possible breaks haven't been found. + Possible scenarios are: + - Preceding renderer is also an instance of + + and does contain special scripts: + + will proceed to analyze the preceding + + on the subject of possible breaks; + - Preceding renderer is either an instance of + + which does not contain special scripts, + or an instance of + + or is an inlineBlock child: in this case the entire subsequence of + + -s containing special scripts is to be moved to the next line; + - Otherwise a forced split is to happen. + + line renderer containing text sequence to process + + index of the latter child + that has been analyzed on the subject of possible breaks + + + + + instance standing for the strategy to proceed with. + + + + + Set + + instance to use. + + the instance to set + + + Checks if layout module can access pdfCalligraph + true if layout can access pdfCalligraph and false otherwise + + + A generic abstract root element for a PDF layout object hierarchy. + this type + + + Adds an element to the root. + Adds an element to the root. The element is immediately placed in the contents. + an element with spacial margins, tabbing, and alignment + this element + + + + Adds an image to the root. + Adds an image to the root. The element is immediately placed in the contents. + a graphical image element + this element + + + + + Gets + + if presents. + + + instance of + + if exists, otherwise null. + + + + + Sets + . + + + Sets + . + Note, font provider is inherited property. + + + instance of + . + + + + + Gets the rootRenderer attribute, a specialized + + that + acts as the root object that other + renderers + descend + from. + + + the + + attribute + + + + Convenience method to write a text aligned about the specified point + text to be placed to the page + the point about which the text will be aligned and rotated + the point about which the text will be aligned and rotated + horizontal alignment about the specified point + this object + + + Convenience method to write a text aligned about the specified point + text to be placed to the page + the point about which the text will be aligned and rotated + the point about which the text will be aligned and rotated + horizontal alignment about the specified point + the angle of rotation applied to the text, in radians + this object + + + Convenience method to write a text aligned about the specified point + text to be placed to the page + the point about which the text will be aligned and rotated + the point about which the text will be aligned and rotated + horizontal alignment about the specified point + vertical alignment about the specified point + the angle of rotation applied to the text, in radians + this object + + + Convenience method to write a kerned text aligned about the specified point + text to be placed to the page + the point about which the text will be aligned and rotated + the point about which the text will be aligned and rotated + horizontal alignment about the specified point + vertical alignment about the specified point + the angle of rotation applied to the text, in radians + this object + + + Convenience method to write a text aligned about the specified point + + paragraph of text to be placed to the page. By default it has no leading and is written in single line. + Set width to write multiline text. + + the point about which the text will be aligned and rotated + the point about which the text will be aligned and rotated + horizontal alignment about the specified point + this object + + + Convenience method to write a text aligned about the specified point + + paragraph of text to be placed to the page. By default it has no leading and is written in single line. + Set width to write multiline text. + + the point about which the text will be aligned and rotated + the point about which the text will be aligned and rotated + horizontal alignment about the specified point + vertical alignment about the specified point + this object + + + Convenience method to write a text aligned about the specified point + + paragraph of text to be placed to the page. By default it has no leading and is written in single line. + Set width to write multiline text. + + the point about which the text will be aligned and rotated + the point about which the text will be aligned and rotated + the page number to write the text + horizontal alignment about the specified point + vertical alignment about the specified point + the angle of rotation applied to the text, in radians + this object + + + + The implementation of + + that allows breaking within words. + + + + + The default implementation of + + interface. + + + + Interface for customizing the split character. + + + The splitting implementation is free to look ahead or look behind characters to make a decision. + + the position of + + in the + + + an array of unicode char codes which represent current text + true if the character can split a line. + + + + The implementation of + + that prevents breaking within words. + + + + Container object for style properties of an element. + + Container object for style properties of an element. A style can be used as + an effective way to define multiple equal properties to several elements. + Used in + . + The properties set via Style have a lower priority than directly set properties. + For example, if the same property is set directly and added via Style, then, + no matter in which order they are set, the one set directly will be chosen. + + + + Gets the current left margin width of the element. + + the left margin width, as a + + object + + + + Sets the left margin width of the element. + the new left margin width + this element + + + Gets the current right margin width of the element. + + the right margin width, as a + + object + + + + Sets the right margin width of the element. + the new right margin width + this element + + + Gets the current top margin width of the element. + + the top margin width, as a + + object + + + + Sets the top margin width of the element. + the new top margin width + this element + + + Gets the current bottom margin width of the element. + + the bottom margin width, as a + + object + + + + Sets the bottom margin width of the element. + the new bottom margin width + this element + + + Sets all margins around the element to the same width. + the new margin width + this element + + + Sets the margins around the element to a series of new widths. + the new margin top width + the new margin right width + the new margin bottom width + the new margin left width + this element + + + Gets the current left padding width of the element. + + the left padding width, as a + + object + + + + Sets the left padding width of the element. + the new left padding width + this element + + + Gets the current right padding width of the element. + + the right padding width, as a + + object + + + + Sets the right padding width of the element. + the new right padding width + this element + + + Gets the current top padding width of the element. + + the top padding width, as a + + object + + + + Sets the top padding width of the element. + the new top padding width + this element + + + Gets the current bottom padding width of the element. + + the bottom padding width, as a + + object + + + + Sets the bottom padding width of the element. + the new bottom padding width + this element + + + Sets all paddings around the element to the same width. + the new padding width + this element + + + Sets the paddings around the element to a series of new widths. + the new padding top width + the new padding right width + the new padding bottom width + the new padding left width + this element + + + Sets the vertical alignment of the element. + the vertical alignment setting + this element + + + + Sets a ratio which determines in which proportion will word spacing and character spacing + be applied when horizontal alignment is justified. + + + the ratio coefficient. It must be between 0 and 1, inclusive. + It means that ratio part of the free space will + be compensated by word spacing, and 1-ratio part of the free space will + be compensated by character spacing. + If ratio is 1, additional character spacing will not be applied. + If ratio is 0, additional word spacing will not be applied. + + this element + + + + Returns whether the + + should be kept together as much + as possible. + + + the current value of the + + property + + + + + Sets whether the + + should be kept together as much + as possible. + + + the new value of the + + property + + this element + + + Sets the rotation radAngle. + the new rotation radAngle, as a float + this element + + + Sets the rotation angle. + the new rotation angle, as a double + this element + + + Sets the width property of the element, measured in points. + a value measured in points. + this Element. + + + + Sets the width property of the element with a + . + + + a + + object + + this Element. + + + Gets the width property of the element. + the width of the element, with a value and a measurement unit. + + + + + Sets the height property of the element with a + . + + + a + + object + + this Element. + + + Sets the height property the element as a point-value. + a floating point value for the new height + the block element itself. + + + Gets the height property of the element. + the height of the element, as a floating point value. Null if the property is not present + + + Sets the max-height of the element as point-unit value. + a floating point value for the new max-height + the block element itself + + + + Sets the max-height property of the element with a + . + + + a + + object + + the block element itself + + + + Sets the min-height property of the element with a + . + + + a + + object + + the block element itself + + + Sets the min-height of the element as point-unit value. + a floating point value for the new min-height + the block element itself + + + + Sets the max-width property of the element with a + . + + + a + + object + + the block element itself + + + Sets the max-width of the element as point-unit value. + a floating point value for the new max-width + the block element itself + + + + Sets the min-width property of the element with a + . + + + a + + object + + the block element itself + + + Sets the min-width of the element as point-unit value. + a floating point value for the new min-width + the block element itself + + + + A layout element which has + accessibility properties. + + + A layout element which has + accessibility properties. + They define element's role ( + + ) - the name + that will be used to tag the element if it is added to a Tagged PDF document. + They can also define other metadata for the tag. + + + + + Gets the + accessibility properties. + + + Gets the + accessibility properties + . See also + . + + an interface that allows to specify properties of a tagged element in Tagged PDF. + +
    +
    diff --git a/Bin/itext.pdfa.dll b/Bin/itext.pdfa.dll new file mode 100644 index 000000000..5ddb2a65f Binary files /dev/null and b/Bin/itext.pdfa.dll differ diff --git a/Bin/itext.pdfa.dll.refresh b/Bin/itext.pdfa.dll.refresh new file mode 100644 index 000000000..e59bea482 --- /dev/null +++ b/Bin/itext.pdfa.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.pdfa.dll \ No newline at end of file diff --git a/Bin/itext.pdfa.xml b/Bin/itext.pdfa.xml new file mode 100644 index 000000000..22a6d5842 --- /dev/null +++ b/Bin/itext.pdfa.xml @@ -0,0 +1,860 @@ + + + + itext.pdfa + + + + + PdfA1Checker defines the requirements of the PDF/A-1 standard and contains + method implementations from the abstract + + class. + + + PdfA1Checker defines the requirements of the PDF/A-1 standard and contains + method implementations from the abstract + + class. + + The specification implemented by this class is ISO 19005-1 + + + + Creates a PdfA1Checker with the required conformance level + + the required conformance level, a or + b + + + + Retrieve maximum allowed real value. + maximum allowed real number + + + Retrieve maximal allowed integer value. + maximal allowed integer number + + + Retrieve minimal allowed integer value. + minimal allowed integer number + + + Retrieve maximum allowed length of the name object. + maximum allowed length of the name + + + Returns maximum allowed bytes length of the string in a PDF document. + maximum string length + + + + Gets a + + of fields with kids from a + + of + + objects. + + + the + + of form fields + + objects + + + the + + of form fields + + + + + PdfA2Checker defines the requirements of the PDF/A-2 standard and contains a + number of methods that override the implementations of its superclass + . + + + PdfA2Checker defines the requirements of the PDF/A-2 standard and contains a + number of methods that override the implementations of its superclass + . + + The specification implemented by this class is ISO 19005-2 + + + + Creates a PdfA2Checker with the required conformance level + + the required conformance level, a or + u or b + + + + + Verify the conformity of the Form XObject with appropriate + specification. + + + Verify the conformity of the Form XObject with appropriate + specification. Throws PdfAConformanceException if any discrepancy was found + + + the + + to be checked + + + the + + current content stream + + + + + PdfA3Checker defines the requirements of the PDF/A-3 standard and contains a + number of methods that override the implementations of its superclass + . + + + PdfA3Checker defines the requirements of the PDF/A-3 standard and contains a + number of methods that override the implementations of its superclass + . + The specification implemented by this class is ISO 19005-3 + + + + Creates a PdfA3Checker with the required conformance level + + the required conformance level, a or + u or b + + + + + An abstract class that will run through all necessary checks defined in the + different PDF/A standards and levels. + + + An abstract class that will run through all necessary checks defined in the + different PDF/A standards and levels. A number of common checks are executed + in this class, while standard-dependent specifications are implemented in the + available subclasses. The standard that is followed is the series of ISO + 19005 specifications, currently generations 1 through 3. The ZUGFeRD standard + is derived from ISO 19005-3. + While it is possible to subclass this method and implement its abstract + methods in client code, this is not encouraged and will have little effect. + It is not possible to plug custom implementations into iText, because iText + should always refuse to create non-compliant PDF/A, which would be possible + with client code implementations. Any future generations of the PDF/A + standard and its derivates will get their own implementation in the + iText 7 - pdfa project. + + + + + The Red-Green-Blue color profile as defined by the International Color + Consortium. + + + + + The Cyan-Magenta-Yellow-Key (black) color profile as defined by the + International Color Consortium. + + + + + The Grayscale color profile as defined by the International Color + Consortium. + + + + The Output device class + + + The Monitor device class + + + + The maximum Graphics State stack depth in PDF/A documents, i.e. the + maximum number of graphics state operators with code q that + may be opened (i.e. not yet closed by a corresponding Q) at + any point in a content stream sequence. + + + The maximum Graphics State stack depth in PDF/A documents, i.e. the + maximum number of graphics state operators with code q that + may be opened (i.e. not yet closed by a corresponding Q) at + any point in a content stream sequence. + Defined as 28 by PDF/A-1 section 6.1.12, by referring to the PDF spec + Appendix C table 1 "architectural limits". + + + + Contains some objects that are already checked. + + Contains some objects that are already checked. + NOTE: Not all objects that were checked are stored in that set. This set is used for avoiding double checks for + actions, signatures, xObjects and page objects; and for letting those objects to be manually flushed. + Use this mechanism carefully: objects that are able to be changed (or at least if object's properties + that shall be checked are able to be changed) shouldn't be marked as checked if they are not to be + flushed immediately. + + + + Creates a PdfAChecker with the required conformance level. + the required conformance level + + + + This method checks a number of document-wide requirements of the PDF/A + standard. + + + This method checks a number of document-wide requirements of the PDF/A + standard. The algorithms of some of these checks vary with the PDF/A + level and thus are implemented in subclasses; others are implemented + as private methods in this class. + + The catalog being checked + + + + This method checks all requirements that must be fulfilled by a page in a + PDF/A document. + + the page that must be checked + + + + This method checks the requirements that must be fulfilled by a COS + object in a PDF/A document. + + the COS object that must be checked + + + + Gets the + + for this file. + + the defined conformance level for this document. + + + In full check mode all objects will be tested for ISO conformance. + + In full check mode all objects will be tested for ISO conformance. If full check mode is + switched off objects which were not modified might be skipped to speed up the validation + of the document + + true if full check mode is switched on + + + + In full check mode all objects will be tested for ISO conformance. + + In full check mode all objects will be tested for ISO conformance. If full check mode is + switched off objects which were not modified might be skipped to speed up the validation + of the document + + is a new value for full check mode switcher + + + + + Remembers which objects have already been checked, in order to avoid + redundant checks. + + the object to check + whether or not the object has already been checked + + + + This method checks compliance of the tag structure elements, such as struct elements + or parent tree entries. + + an object that represents tag structure element. + + + This method checks compliance of the signature dictionary + + a + + containing the signature. + + + + + This method checks compliance with the graphics state architectural + limitation, explained by + . + + the operation to check the graphics state counter for + + + + This method checks compliance with the inline image restrictions in the + PDF/A specs, specifically filter parameters. + + + a + + containing the inline image + + + a + + containing the color spaces used in the document + + + + + This method checks compliance with the color restrictions imposed by the + available color spaces in the document. + + + This method checks compliance with the color restrictions imposed by the + available color spaces in the document. + This method will be abstract in update 7.2 + + the color to check + + a + + containing the color spaces used in the document + + whether the color is used for fill or stroke operations + current content stream + + + + This method performs a range of checks on the given color space, depending + on the type and properties of that color space. + + the color space to check + + a + + containing the color spaces used in the document + + whether or not to also check the parent color space + whether the color space is used for fill or stroke operations + + + + Checks whether the rendering intent of the document is within the allowed + range of intents. + + + Checks whether the rendering intent of the document is within the allowed + range of intents. This is defined in ISO 19005-1 section 6.2.9, and + unchanged in newer generations of the PDF/A specification. + + the intent to be analyzed + + + Performs a check of the each font glyph as a Form XObject. + + Performs a check of the each font glyph as a Form XObject. See ISO 19005-2 Annex A.5. + This only applies to type 3 fonts. + This method will be abstract in update 7.2 + + + + + to be checked + + stream containing checked font + + + + Performs a number of checks on the graphics state, among others ISO + 19005-1 section 6.2.8 and 6.4 and ISO 19005-2 section 6.2.5 and 6.2.10. + + + Performs a number of checks on the graphics state, among others ISO + 19005-1 section 6.2.8 and 6.4 and ISO 19005-2 section 6.2.5 and 6.2.10. + This method will be abstract in the update 7.2 + + the graphics state to be checked + current content stream + + + Performs a number of checks on the font. + + Performs a number of checks on the font. See ISO 19005-1 section 6.3, + ISO 19005-2 and ISO 19005-3 section 6.2.11. + Be aware that not all constraints defined in the ISO are checked in this method, + for most of them we consider that iText always creates valid fonts. + + font to be checked + + + Verify the conformity of the cross-reference table. + is the Xref table + + + Attest content stream conformance with appropriate specification. + + Attest content stream conformance with appropriate specification. + Throws PdfAConformanceException if any discrepancy was found + + is a content stream to validate + + + + Verify the conformity of the operand of content stream with appropriate + specification. + + + Verify the conformity of the operand of content stream with appropriate + specification. Throws PdfAConformanceException if any discrepancy was found + + is an operand of content stream to validate + + + Retrieve maximum allowed number of indirect objects in conforming document. + maximum allowed number of indirect objects + + + Retrieve forbidden actions in conforming document. + + set of + + with forbidden actions + + + + Retrieve allowed actions in conforming document. + + set of + + with allowed named actions + + + + Checks if the action is allowed. + to be checked + + + Verify the conformity of the annotation dictionary. + + the annotation + + to be checked + + + + Checks if entries in catalog dictionary are valid. + + the catalog + + to be checked + + + + Verify the conformity of used color spaces. + + + Verify the conformity of the given image. + the image to check + + the + + containing the color spaces used in the document + + + + Verify the conformity of the file specification dictionary. + + the + + containing file specification to be checked + + + + Verify the conformity of the form dictionary. + + the form + + to be checked + + + + Verify the conformity of the form XObject dictionary. + + the + + to check + + + + Performs a number of checks on the logical structure of the document. + + the catalog + + to check + + + + Performs a number of checks on the metadata of the document. + + the catalog + + to check + + + + Verify the conformity of the non-symbolic TrueType font. + + the + + to check + + + + Verify the conformity of the output intents array in the catalog dictionary. + + the + + to check + + + + Verify the conformity of the page dictionary. + + the + + to check + + the page's resources dictionary + + + Checks the allowable size of the page. + + the + + of page which size being checked + + + + Verify the conformity of the PDF array. + + the + + to check + + + + Verify the conformity of the PDF dictionary. + + the + + to check + + + + Verify the conformity of the PDF name. + + the + + to check + + + + Verify the conformity of the PDF number. + + the + + to check + + + + Verify the conformity of the PDF stream. + + the + + to check + + + + Verify the conformity of the PDF string. + + the + + to check + + + + Verify the conformity of the symbolic TrueType font. + + the + + to check + + + + Verify the conformity of the trailer dictionary. + + the + + of trailer to check + + + + Verify the conformity of the page transparency. + + the + + contains contents for transparency to be checked + + + the + + contains resources for transparency to be checked + + + + Verify the conformity of the resources dictionary. + + the + + to be checked + + + + Checks if the specified flag is set. + a set of flags specifying various characteristics of the PDF object + to be checked + true if the specified flag is set + + + Checks conformance level of PDF/A standard. + + the + + to be checked + + true if the specified conformanceLevel is a for PDF/A-1, PDF/A-2 or PDF/A-3 + + + Checks whether the specified dictionary has a transparency group. + + the + + to check + + + true if and only if the specified dictionary has a + + key and its value is + a dictionary with + + subtype + + + + Checks whether the specified dictionary was already checked. + + the + + to check + + true if the specified dictionary was checked + + + Checks resources of the appearance streams. + the dictionary with appearance streams to check. + + + Check single annotation appearance stream. + + the + + to check + + + + Exception that is thrown when the PDF Document doesn't adhere to the PDF/A specification. + + + Creates a PdfAConformanceException. + the error message + + + Creates a PdfAConformanceException. + the error message + an object + + + Class that bundles all the error message templates as constants. + + + Class containing pdfa conformance constants to be used in logging. + + + Class containing constants to be used in logging. + + + + This class extends + + and serves as + + for + PDF/A compliant documents and as + + for non PDF/A documents. + + + This class extends + + and serves as + + for + PDF/A compliant documents and as + + for non PDF/A documents. + + This class can throw various exceptions like + + as well as + + for PDF/A documents. + + + + Opens a PDF/A document in stamping mode. + + the + + + + the + + object to write to + + + + Opens a PDF/A document in stamping mode. + + the + + + + the + + object to write to + + + + + of the stamping process + + + + + This class extends + + and is in charge of creating files + that comply with the PDF/A standard. + + + This class extends + + and is in charge of creating files + that comply with the PDF/A standard. + Client code is still responsible for making sure the file is actually PDF/A + compliant: multiple steps must be undertaken (depending on the + + ) to ensure that the PDF/A standard is followed. + This class will throw exceptions, mostly + + , + and thus refuse to output a PDF/A file if at any point the document does not + adhere to the PDF/A guidelines specified by the + . + + + + Constructs a new PdfADocument for writing purposes, i.e. from scratch. + + Constructs a new PdfADocument for writing purposes, i.e. from scratch. A + PDF/A file has a conformance level, and must have an explicit output + intent. + + + the + + object to write to + + the generation and strictness level of the PDF/A that must be followed. + + a + + + + + Constructs a new PdfADocument for writing purposes, i.e. from scratch. + + Constructs a new PdfADocument for writing purposes, i.e. from scratch. A + PDF/A file has a conformance level, and must have an explicit output + intent. + + + the + + object to write to + + the generation and strictness level of the PDF/A that must be followed. + + a + + + + a + + + + + Opens a PDF/A document in the stamping mode. + PDF reader. + PDF writer. + + + Opens a PDF/A document in stamping mode. + PDF reader. + PDF writer. + properties of the stamping process + + + + Gets the PdfAConformanceLevel set in the constructor or in the metadata + of the + . + + + a + + + + + + Sets the checker that defines the requirements of the PDF/A standard + depending on conformance level. + + + + + + + + Initializes tagStructureContext to track necessary information of document's tag structure. + + + Utilities to construct an XMP for a PDF/A file. + + + diff --git a/Bin/itext.sign.dll b/Bin/itext.sign.dll new file mode 100644 index 000000000..1e7161fce Binary files /dev/null and b/Bin/itext.sign.dll differ diff --git a/Bin/itext.sign.dll.refresh b/Bin/itext.sign.dll.refresh new file mode 100644 index 000000000..0f2e8a8c6 --- /dev/null +++ b/Bin/itext.sign.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.sign.dll \ No newline at end of file diff --git a/Bin/itext.sign.xml b/Bin/itext.sign.xml new file mode 100644 index 000000000..32853d520 --- /dev/null +++ b/Bin/itext.sign.xml @@ -0,0 +1,3028 @@ + + + + itext.sign + + + + + This class allows you to sign with either an RSACryptoServiceProvider/DSACryptoServiceProvider from a X509Certificate2, + or from manually created RSACryptoServiceProvider/DSACryptoServiceProvider. + Depending on the certificate's CSP, sometimes you will not be able to sign with SHA-256/SHA-512 hash algorithm with + RSACryptoServiceProvider taken directly from the certificate. + This class allows you to use a workaround in this case and sign with certificate's private key and SHA-256/SHA-512 anyway. + + An example of a workaround for CSP that does not support SHA-256/SHA-512: + + if (certificate.PrivateKey is RSACryptoServiceProvider) + { + RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PrivateKey; + + // Modified by J. Arturo + // Workaround for SHA-256 and SHA-512 + + if (rsa.CspKeyContainerInfo.ProviderName == "Microsoft Strong Cryptographic Provider" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Enhanced Cryptographic Provider v1.0" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Base Cryptographic Provider v1.0") + { + string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider"; + int providerType = 24; + + Type CspKeyContainerInfo_Type = typeof(CspKeyContainerInfo); + + FieldInfo CspKeyContainerInfo_m_parameters = CspKeyContainerInfo_Type.GetField("m_parameters", BindingFlags.NonPublic | BindingFlags.Instance); + CspParameters parameters = (CspParameters)CspKeyContainerInfo_m_parameters.GetValue(rsa.CspKeyContainerInfo); + + var cspparams = new CspParameters(providerType, providerName, rsa.CspKeyContainerInfo.KeyContainerName); + cspparams.Flags = parameters.Flags; + + using (var rsaKey = new RSACryptoServiceProvider(cspparams)) + { + // use rsaKey now + } + } + else + { + // Use rsa directly + } + } + + + + + + + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + + Class containing static methods that allow you to get information from + an X509 Certificate: the issuer and the subject. + + + + Class that holds an X509 name. + + + Country code - StringType(SIZE(2)). + + + Organization - StringType(SIZE(1..64)). + + + Organizational unit name - StringType(SIZE(1..64)). + + + Title. + + + Common name - StringType(SIZE(1..64)). + + + Device serial number name - StringType(SIZE(1..64)). + + + Locality name - StringType(SIZE(1..64)). + + + State, or province name - StringType(SIZE(1..64)). + + + Naming attribute of type X520name. + + + Naming attribute of type X520name. + + + Naming attribute of type X520name. + + + Naming attribute of type X520name. + + + Naming attribute of type X520name. + + + Email address (RSA PKCS#9 extension) - IA5String. + + Email address (RSA PKCS#9 extension) - IA5String. + + Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here. + + + + Email address in Verisign certificates. + + + Object identifier. + + + LDAP User id. + + + A Map with default symbols. + + + A Map with values. + + + Constructs an X509 name. + an ASN1 Sequence + + + Constructs an X509 name. + a directory name + + + Gets the first entry from the field array retrieved from the values Map. + the field name + the (first) field value + + + Gets a field array from the values Map. + The field name + List + + + Getter for values. + Map with the fields of the X509 name + + + + Class for breaking up an X500 Name into it's component tokens, similar to + . + + + Class for breaking up an X500 Name into it's component tokens, similar to + . + We need this class as some of the lightweight Java environments don't support classes such as StringTokenizer. + + + + Creates an X509NameTokenizer. + the oid that needs to be parsed + + + Checks if the tokenizer has any tokens left. + true if there are any tokens left, false if there aren't + + + Returns the next token. + the next token + + + Get the issuer fields from an X509 Certificate. + an X509Certificate + an X500Name + + + Get the "issuer" from the TBSCertificate bytes that are passed in. + a TBSCertificate in a byte array + an ASN1Primitive + + + Get the subject fields from an X509 Certificate. + an X509Certificate + an X500Name + + + Get the "subject" from the TBSCertificate bytes that are passed in. + A TBSCertificate in a byte array + a ASN1Primitive + + + + This class contains a series of static methods that + allow you to retrieve information from a Certificate. + + + + Gets a CRL from an X509 certificate. + the X509Certificate to extract the CRL from + CRL or null if there's no CRL available + + + Gets the URL of the Certificate Revocation List for a Certificate + the Certificate + the String where you can check if the certificate was revoked + + + Gets the CRL object using a CRL URL. + the URL where the CRL is located + CRL object + + + Retrieves the OCSP URL from the given certificate. + the certificate + the URL or null + + + Gets the URL of the TSA if it's available on the certificate + a certificate + a TSA URL + + + the certificate from which we need the ExtensionValue + the Object Identifier value for the extension. + the extension value as an ASN1Primitive object + + + Gets a String from an ASN1Primitive + the ASN1Primitive + a human-readable String + + + This class consists of some methods that allow you to verify certificates. + + + The Logger instance. + + + Verifies a single certificate for the current date. + the certificate to verify + the certificate revocation list or null + + a String with the error description or null + if no error + + + + Verifies a single certificate. + the certificate to verify + the certificate revocation list or null + the date, shall not be null + + a String with the error description or null + if no error + + + + Verifies a certificate chain against a KeyStore for the current date. + the certificate chain + the KeyStore + the certificate revocation list or null + + empty list if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + + Verifies a certificate chain against a KeyStore. + the certificate chain + the KeyStore + the certificate revocation list or null + the date, shall not be null + + empty list if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + + Verifies a certificate chain against a KeyStore for the current date. + the certificate chain + the KeyStore + + null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + + Verifies a certificate chain against a KeyStore. + the certificate chain + the KeyStore + the date, shall not be null + + null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + + Verifies an OCSP response against a KeyStore. + the OCSP response + the KeyStore + true is a certificate was found + + + Verifies a time stamp against a KeyStore. + the time stamp + the KeyStore + true is a certificate was found + + + + Superclass for a series of certificate verifiers that will typically + be used in a chain. + + + Superclass for a series of certificate verifiers that will typically + be used in a chain. It wraps another CertificateVerifier + that is the next element in the chain of which the verify() + method will be called. + + + + The previous CertificateVerifier in the chain of verifiers. + + + Indicates if going online to verify a certificate is allowed. + + + Creates the final CertificateVerifier in a chain of verifiers. + the previous verifier in the chain + + + Decide whether or not online checking is allowed. + a boolean indicating whether the certificate can be verified using online verification results. + + + + + Checks the validity of the certificate, and calls the next + verifier in the chain, if any. + + the certificate that needs to be checked + its issuer + the date the certificate needs to be valid + a list of VerificationOK objects. The list will be empty if the certificate couldn't be verified. + + + + + An implementation of the CrlClient that handles offline + Certificate Revocation Lists. + + Paulo Soares + + + The CRL as a byte array. + + + + Creates an instance of a CrlClient in case you + have a local cache of the Certificate Revocation List. + + the CRL bytes + + + + Creates an instance of a CrlClient in case you + have a local cache of the Certificate Revocation List. + + a CRL object + + + Returns the CRL bytes (the parameters are ignored). + + + + + An implementation of the CrlClient that fetches the CRL bytes + from an URL. + + Paulo Soares + + + The Logger instance. + + + The URLs of the CRLs. + + + + Creates a CrlClientOnline instance that will try to find + a single CRL by walking through the certificate chain. + + + + Creates a CrlClientOnline instance using one or more URLs. + the CRLs as Strings + + + Creates a CrlClientOnline instance using one or more URLs. + the CRLs as URLs + + + Creates a CrlClientOnline instance using a certificate chain. + a certificate chain + + + Fetches the CRL bytes from an URL. + + Fetches the CRL bytes from an URL. + If no url is passed as parameter, the url will be obtained from the certificate. + If you want to load a CRL from a local file, subclass this method and pass an + URL with the path to the local file to this method. An other option is to use + the CrlClientOffline class. + + + + + Adds an URL to the list of CRL URLs + an URL in the form of a String + + + Adds an URL to the list of CRL URLs + an URL object + + + + Class that allows you to verify a certificate against + one or more Certificate Revocation Lists. + + + + The Logger instance + + + The list of CRLs to check for revocation date. + + + Creates a CRLVerifier instance. + the next verifier in the chain + a list of CRLs + + + Verifies if a a valid CRL is found for the certificate. + + Verifies if a a valid CRL is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any CRL that was available. + + the certificate that needs to be checked + its issuer + + a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + + + Verifies a certificate against a single CRL. + the Certificate Revocation List + a certificate that needs to be verified + its issuer + the sign date + true if the verification succeeded + + + Fetches a CRL for a specific certificate online (without further checking). + the certificate + its issuer + an X509CRL object + + + Checks if a CRL verifies against the issuer certificate or a trusted anchor. + the CRL + the trusted anchor + true if the CRL can be trusted + + + Class that contains a map with the different message digest algorithms. + + + Algorithm available for signatures since PDF 1.3. + + + Algorithm available for signatures since PDF 1.6. + + + Algorithm available for signatures since PDF 1.7. + + + Algorithm available for signatures since PDF 1.7. + + + Algorithm available for signatures since PDF 1.7. + + + Maps the digest IDs with the human-readable name of the digest algorithm. + + + Maps digest algorithm that are unknown by the JDKs MessageDigest object to a known one. + + + Maps the name of a digest algorithm with its ID. + + + Get a digest algorithm. + oid of the digest algorithm + MessageDigest object + + + Creates a MessageDigest object that can be used to create a hash. + the algorithm you want to use to create a hash + a MessageDigest object + + + Creates a hash using a specific digest algorithm and a provider. + the message of which you want to create a hash + the algorithm used to create the hash + the hash + + + Create a digest based on the inputstream. + data to be digested + algorithm to be used + digest of the data + + + Gets the digest name for a certain id + an id (for instance "1.2.840.113549.2.5") + a digest name (for instance "MD5") + + + + Returns the id of a digest algorithms that is allowed in PDF, + or null if it isn't allowed. + + The name of the digest algorithm. + An oid. + + + Class that contains a map with the different encryption algorithms. + + + Maps IDs of encryption algorithms with its human-readable name. + + + Gets the algorithm name for a certain id. + an id (for instance "1.2.840.113549.1.1.1") + an algorithm name (for instance "RSA") + + + Class that bundles all the error message templates as constants. + + + Produces a blank (or empty) signature. + + Produces a blank (or empty) signature. Useful for deferred signing with + MakeSignature.signExternalContainer(). + + Paulo Soares + + + Creates an ExternalBlankSignatureContainer. + PdfDictionary containing signature iformation. /SubFilter and /Filter aren't set in this constructor. + + + + Creates an ExternalBlankSignatureContainer. + + Creates an ExternalBlankSignatureContainer. This constructor will create the PdfDictionary for the + signature information and will insert the /Filter and /SubFilter values into this dictionary. + + PdfName of the signature handler to use when validating this signature + PdfName that describes the encoding of the signature + + + + Interface that needs to be implemented if you want to embed + Certificate Revocation Lists (CRL) into your PDF. + + Paulo Soares + + + Gets an encoded byte array. + The certificate which a CRL URL can be obtained from. + A CRL url if you don't want to obtain it from the certificate. + A collection of byte array each representing a crl. It may return null or an empty collection. + + + Interface that needs to be implemented to do the actual signing. + + Interface that needs to be implemented to do the actual signing. + For instance: you'll have to implement this interface if you want + to sign a PDF using a smart card. + + Paulo Soares + + + Returns the hash algorithm. + The hash algorithm (e.g. "SHA-1", "SHA-256,..."). + + + Returns the encryption algorithm used for signing. + The encryption algorithm ("RSA" or "DSA"). + + + + Signs the given message using the encryption algorithm in combination + with the hash algorithm. + + The message you want to be hashed and signed. + A signed message digest. + + + Interface to sign a document. + Interface to sign a document. The signing is fully done externally, including the container composition. + + Paulo Soares + + + Produces the container with the signature. + the data to sign + a container with the signature and other objects, like CRL and OCSP. The container will generally be a PKCS7 one. + + + + Modifies the signature dictionary to suit the container. + + Modifies the signature dictionary to suit the container. At least the keys + + and + + will have to be set. + + the signature dictionary + + + Interface for the Online Certificate Status Protocol (OCSP) Client. + + + Fetch a DER-encoded BasicOCSPResponse from an OCSP responder. + + Fetch a DER-encoded BasicOCSPResponse from an OCSP responder. The method should not throw + an exception. + + Note: do not pass in the full DER-encoded OCSPResponse object obtained from the responder, + only the DER-encoded BasicOCSPResponse value contained in the response data. + + Certificate to check. + The parent certificate. + + The URL of the OCSP responder endpoint. If null, implementations can + attempt to obtain a URL from the AuthorityInformationAccess extension of + the certificate, or from another implementation-specific source. + + + a byte array containing a DER-encoded BasicOCSPResponse structure or null if one + could not be obtained + + RFC 6960 § 4.2.1 + + + Time Stamp Authority client (caller) interface. + + Time Stamp Authority client (caller) interface. + + Interface used by the PdfPKCS7 digital signature builder to call + Time Stamp Authority providing RFC 3161 compliant time stamp token. + + + + Get the time stamp estimated token size. + + Get the time stamp estimated token size. + Implementation must return value large enough to accommodate the + entire token returned by + + prior + to actual + + call. + + an estimate of the token size + + + + Returns the + + to digest the data imprint + + + The + + object. + + + + Returns RFC 3161 timeStampToken. + byte[] - data imprint to be time-stamped + byte[] - encoded, TSA signed data of the timeStampToken + + + + Interface you can implement and pass to TSAClientBouncyCastle in case + you want to do something with the information returned + + + + + When a timestamp is created using TSAClientBouncyCastle, + this method is triggered passing an object that contains + info about the timestamp and the time stamping authority. + + a TimeStampTokenInfo object + + + Class which contains constants to be used in logging inside sign module. + + + Add verification according to PAdES-LTV (part 4). + Paulo Soares + + + What type of verification to include. + + + Include only OCSP. + + + Include only CRL. + + + Include both OCSP and CRL. + + + Include CRL only if OCSP can't be read. + + + Options for how many certificates to include. + + + Include verification just for the signing certificate. + + + Include verification for the whole chain of certificates. + + + + Certificate inclusion in the DSS and VRI dictionaries in the CERT and CERTS + keys. + + + + Include certificates in the DSS and VRI dictionaries. + + + Do not include certificates in the DSS and VRI dictionaries. + + + The verification constructor. + + The verification constructor. This class should only be created with + PdfStamper.getLtvVerification() otherwise the information will not be + added to the Pdf. + + + The + + to apply the validation to. + + + + Add verification for a particular signature. + the signature to validate (it may be a timestamp) + the interface to get the OCSP + the interface to get the CRL + options as to how many certificates to include + the validation options to include + certificate inclusion options + true if a validation was generated, false otherwise + + + Get the issuing certificate for a child certificate. + the certificate for which we search the parent + an array with certificates that contains the parent + the parent certificate + + + Adds verification to the signature. + name of the signature + collection of DER-encoded BasicOCSPResponses + collection of DER-encoded CRLs + collection of DER-encoded certificates + boolean + + + Merges the validation with any validation already in the document or creates a new one. + + + Converts an array of bytes to a String of hexadecimal values + a byte array + the same bytes expressed as hexadecimal values + + + Verifies the signatures in an LTV document. + + + The Logger instance + + + Option to specify level of verification; signing certificate only or the entire chain. + + + Verify root. + + + A document object for the revision that is being verified. + + + The fields in the revision that is being verified. + + + The date the revision was signed, or null for the highest revision. + + + The signature that covers the revision. + + + The PdfPKCS7 object for the signature. + + + Indicates if we're working with the latest revision. + + + The document security store for the revision that is being verified + + + The meta info + + + Creates a VerificationData object for a PdfReader + The document we want to verify. + + + Sets an extra verifier. + the verifier to set + + + Sets the certificate option. + Either CertificateOption.SIGNING_CERTIFICATE (default) or CertificateOption.WHOLE_CHAIN + + + + Set the verifyRootCertificate to false if you can't verify the root certificate. + false if you can't verify the root certificate, otherwise true + + + + Sets the + + that will be used during + + creation. + + meta info to set + + + Verifies all the document-level timestamps and all the signatures in the document. + + a list of + + objects + + + a list of all + + objects after verification + + + + Verifies a document level timestamp. + + a list of + + objects + + + + + Checks the certificates in a certificate chain: + are they valid on a specific date, and + do they chain up correctly? + + the certificate chain + + + Verifies certificates against a list of CRLs and OCSP responses. + the signing certificate + the issuer's certificate + + a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + + + Switches to the previous revision. + + + Gets a list of X509CRL objects from a Document Security Store. + a list of CRLs + + + Gets OCSP responses from the Document Security Store. + a list of BasicOCSPResp objects + + + + Checks if the signature covers the whole document + and throws an exception if the document was altered + + a PdfPKCS7 object + + + OcspClient implementation using BouncyCastle. + Paulo Soarees + + + The Logger instance. + + + + Creates + OcspClient. + + will be used for response verification. + + + + Gets OCSP response. + + Gets OCSP response. If + + was set, the response will be checked. + + to certificate to check + the parent certificate + to get the verification + OCSP response + + + + + + Generates an OCSP request using BouncyCastle. + certificate of the issues + serial number + an OCSP request + + + Gets an OCSP response object using BouncyCastle. + to certificate to check + the parent certificate + + to get the verification. If it's null it will be taken + from the check cert or from other implementation specific source + + an OCSP response + + + + Class that allows you to verify a certificate against + one or more OCSP responses. + + + + The Logger instance + + + The list of OCSP responses. + + + Creates an OCSPVerifier instance. + the next verifier in the chain + a list of OCSP responses + + + Verifies if a valid OCSP response is found for the certificate. + + Verifies if a valid OCSP response is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any OCSP response that was available. + + the certificate that needs to be checked + its issuer + + a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + + + Verifies a certificate against a single OCSP response + the OCSP response + the certificate that needs to be checked + + the certificate of CA (certificate that issued signCert). This certificate is considered trusted + and valid by this method. + + sign date + + + + , in case successful check, otherwise false. + + + + + Verifies if an OCSP response is genuine + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + + the OCSP response + the issuer certificate. This certificate is considered trusted and valid by this method. + + sign date + + + Checks if an OCSP response is genuine + the OCSP response + the responder certificate + true if the OCSP response verifies against the responder certificate + + + + Gets an OCSP response online and returns it if the status is GOOD + (without further checking!). + + the signing certificate + the issuer certificate + an OCSP response + + + Class containing all the OID values used by iText. + + + Contains all OIDs used by iText in the context of Certificate Extensions. + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + "Conforming CAs MUST mark this extension as non-critical." + + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + "Conforming CAs MUST mark this extension as non-critical." + + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + "Conforming CAs MUST mark this extension as non-critical." + + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + One of the standard extensions from https://tools.ietf.org/html/rfc5280 + + "The extension MUST be marked as non-critical by conforming CAs." + + + + One of the Internet Certificate Extensions also from https://tools.ietf.org/html/rfc5280 + + One of the Internet Certificate Extensions also from https://tools.ietf.org/html/rfc5280 + + "The extension MUST be marked as non-critical by conforming CAs." + + + + One of the Internet Certificate Extensions also from https://tools.ietf.org/html/rfc5280 + + One of the Internet Certificate Extensions also from https://tools.ietf.org/html/rfc5280 + + "Conforming CAs MUST mark this extension as non-critical." + + + + + One of the + + purposes from https://www.ietf.org/rfc/rfc2459.txt + + + + + Extension for OCSP responder certificate + from https://www.ietf.org/rfc/rfc2560.txt. + + + + According to https://tools.ietf.org/html/rfc5280 4.2. + + According to https://tools.ietf.org/html/rfc5280 4.2. "Certificate Extensions": + "A certificate-using system MUST reject the certificate if it encounters a critical extension it + does not recognize or a critical extension that contains information that it cannot process." + + This set consists of standard extensions which are defined in RFC specifications and are not mentioned + as forbidden to be marked as critical. + + + + + This class does all the processing related to signing + and verifying a PKCS#7 signature. + + + + Holds value of property signName. + + + Holds value of property reason. + + + Holds value of property location. + + + Holds value of property signDate. + + + Assembles all the elements needed to create a signature, except for the data. + the private key + the certificate chain + the interface digest + the hash algorithm + the provider or null for the default provider + true if the sub-filter is adbe.pkcs7.sha1 + + + Use this constructor if you want to verify a signature using the sub-filter adbe.x509.rsa_sha1. + the /Contents key + the /Cert key + the provider or null for the default provider + + + Use this constructor if you want to verify a signature. + the /Contents key + the filtersubtype + the provider or null for the default provider + + + Getter for property sigName. + Value of property sigName. + + + Setter for property sigName. + New value of property sigName. + + + Getter for property reason. + Value of property reason. + + + Setter for property reason. + New value of property reason. + + + Getter for property location. + Value of property location. + + + Setter for property location. + New value of property location. + + + Getter for property signDate. + Value of property signDate. + + + Setter for property signDate. + New value of property signDate. + + + Version of the PKCS#7 object + + + Version of the PKCS#7 "SignerInfo" object. + + + Get the version of the PKCS#7 object. + the version of the PKCS#7 object. + + + Get the version of the PKCS#7 "SignerInfo" object. + the version of the PKCS#7 "SignerInfo" object. + + + The ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + + + The object that will create the digest + + + The digest algorithms + + + The digest attributes + + + Getter for the ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + + Getter for the ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + See ISO-32000-1, section 12.8.3.3 PKCS#7 Signatures as used in ISO 32000 + + the ID of the digest algorithm + + + Returns the name of the digest algorithm, e.g. "SHA256". + the digest algorithm name, e.g. "SHA256" + + + The encryption algorithm. + + + Getter for the digest encryption algorithm. + + Getter for the digest encryption algorithm. + See ISO-32000-1, section 12.8.3.3 PKCS#7 Signatures as used in ISO 32000 + + the encryption algorithm + + + Get the algorithm used to calculate the message digest, e.g. "SHA1withRSA". + + Get the algorithm used to calculate the message digest, e.g. "SHA1withRSA". + See ISO-32000-1, section 12.8.3.3 PKCS#7 Signatures as used in ISO 32000 + + the algorithm used to calculate the message digest + + + The signed digest if created outside this class + + + External RSA data + + + Sets the digest/signature to an external calculated value. + the digest. This is the actual signature + the extra data that goes into the data tag in PKCS#7 + + the encryption algorithm. It may must be null if the digest + is also null. If the digest is not null + then it may be "RSA" or "DSA" + + + + Class from the Java SDK that provides the functionality of a digital signature algorithm. + + + The signed digest as calculated by this class (or extracted from an existing PDF) + + + The RSA data + + + Update the digest with the specified bytes. + + Update the digest with the specified bytes. + This method is used both for signing and verifying + + the data buffer + the offset in the data buffer + the data length + + + Gets the bytes for the PKCS#1 object. + a byte array + + + Gets the bytes for the PKCS7SignedData object. + the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set. If either of the parameters is null, none will be used. + + the digest in the authenticatedAttributes + the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set, and/or a time-stamp-authority client + may be provided. + + the digest in the authenticatedAttributes + specifies the PKCS7 standard flavor to which created PKCS7SignedData object will adhere: either basic CMS or CAdES + + TSAClient - null or an optional time stamp authority client + + collection of DER-encoded BasicOCSPResponses for the certificate in the signature certificates + chain, or null if OCSP revocation data is not to be added. + + + collection of DER-encoded CRL for certificates from the signature certificates chain, + or null if CRL revocation data is not to be added. + + RFC 6960 § 4.2.1 + byte[] the bytes for the PKCS7SignedData object + + + + Added by Aiken Sam, 2006-11-15, modifed by Martin Brunecky 07/12/2007 + to start with the timeStampToken (signedData 1.2.840.113549.1.7.2). + + + Added by Aiken Sam, 2006-11-15, modifed by Martin Brunecky 07/12/2007 + to start with the timeStampToken (signedData 1.2.840.113549.1.7.2). + Token is the TSA response without response status, which is usually + handled by the (vendor supplied) TSA request/response interface). + + byte[] - time stamp token, DER encoded signedData + ASN1EncodableVector + + + When using authenticatedAttributes the authentication process is different. + + When using authenticatedAttributes the authentication process is different. + The document digest is generated and put inside the attribute. The signing is done over the DER encoded + authenticatedAttributes. This method provides that encoding and the parameters must be + exactly the same as in + . + + Note: do not pass in the full DER-encoded OCSPResponse object obtained from the responder, + only the DER-encoded BasicOCSPResponse value contained in the response data. + + A simple example: +
    +            Calendar cal = Calendar.getInstance();
    +            PdfPKCS7 pk7 = new PdfPKCS7(key, chain, null, "SHA1", null, false);
    +            MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
    +            byte[] buf = new byte[8192];
    +            int n;
    +            InputStream inp = sap.getRangeStream();
    +            while ((n = inp.read(buf)) > 0) {
    +            messageDigest.update(buf, 0, n);
    +            }
    +            byte[] hash = messageDigest.digest();
    +            byte[] sh = pk7.getAuthenticatedAttributeBytes(hash, cal);
    +            pk7.update(sh, 0, sh.length);
    +            byte[] sg = pk7.getEncodedPKCS7(hash, cal);
    +            
    +
    + the content digest + + specifies the PKCS7 standard flavor to which created PKCS7SignedData object will adhere: + either basic CMS or CAdES + + + collection of DER-encoded BasicOCSPResponses for the certificate in the signature certificates + chain, or null if OCSP revocation data is not to be added. + + + collection of DER-encoded CRL for certificates from the signature certificates chain, + or null if CRL revocation data is not to be added. + + the byte array representation of the authenticatedAttributes ready to be signed + RFC 6960 § 4.2.1 +
    + + + This method provides that encoding and the parameters must be + exactly the same as in + . + + the content digest + the byte array representation of the authenticatedAttributes ready to be signed + + + Signature attributes + + + Signature attributes (maybe not necessary, but we use it as fallback) + + + encrypted digest + + + Indicates if a signature has already been verified + + + The result of the verification + + + + Verifies that signature integrity is intact (or in other words that signed data wasn't modified) + by checking that embedded data digest corresponds to the calculated one. + + + Verifies that signature integrity is intact (or in other words that signed data wasn't modified) + by checking that embedded data digest corresponds to the calculated one. Also ensures that signature + is genuine and is created by the owner of private key that corresponds to the declared public certificate. + + Even though signature can be authentic and signed data integrity can be intact, + one shall also always check that signed data is not only a part of PDF contents but is actually a complete PDF file. + In order to check that given signature covers the current + + please + use + + method. + + true if the signature checks out, false otherwise + + + Checks if the timestamp refers to this document. + true if it checks false otherwise + + + All the X.509 certificates in no particular order. + + + All the X.509 certificates used for the main signature. + + + The X.509 certificate that is used to sign the digest. + + + Get all the X.509 certificates associated with this PKCS#7 object in no particular order. + + Get all the X.509 certificates associated with this PKCS#7 object in no particular order. + Other certificates, from OCSP for example, will also be included. + + the X.509 certificates associated with this PKCS#7 object + + + Get the X.509 sign certificate chain associated with this PKCS#7 object. + + Get the X.509 sign certificate chain associated with this PKCS#7 object. + Only the certificates used for the main signature will be returned, with + the signing certificate first. + + the X.509 certificates associated with this PKCS#7 object + + + Get the X.509 certificate actually used to sign the digest. + the X.509 certificate actually used to sign the digest + + + + Helper method that creates the collection of certificates + used for the main signature based on the complete list + of certificates and the sign certificate. + + + + Get the X.509 certificate revocation lists associated with this PKCS#7 object + the X.509 certificate revocation lists associated with this PKCS#7 object + + + Helper method that tries to construct the CRLs. + + + BouncyCastle BasicOCSPResp + + + Gets the OCSP basic response if there is one. + the OCSP basic response or null + + + Checks if OCSP revocation refers to the document signing certificate. + true if it checks, false otherwise + + + Helper method that creates the BasicOCSPResp object. + + + + True if there's a PAdES LTV time stamp. + + + True if it's a CAdES signature type. + + + BouncyCastle TimeStampToken. + + + Check if it's a PAdES-LTV time stamp. + true if it's a PAdES-LTV time stamp, false otherwise + + + Gets the timestamp token if there is one. + the timestamp token or null + + + Gets the timestamp date. + + Gets the timestamp date. + In case the signed document doesn't contain timestamp, + + will be returned. + + the timestamp date + + + Getter for the filter subtype. + the filter subtype + + + Returns the encryption algorithm + the name of an encryption algorithm + + + Represents the signature dictionary. + Paulo Soares + + + Creates new PdfSignature. + + + Creates new PdfSignature. + PdfName of the signature handler to use when validating this signature + PdfName that describes the encoding of the signature + + + A name that describes the encoding of the signature value and key information in the signature dictionary. + + + a + + which usually has a value either + + or + . + + + + + The type of PDF object that the wrapped dictionary describes; if present, shall be + + for a signature + dictionary or + + for a timestamp signature dictionary. + + + The type of PDF object that the wrapped dictionary describes; if present, shall be + + for a signature + dictionary or + + for a timestamp signature dictionary. Shall be not null if it's value + is + + . The default value is: + . + + + a + + that identifies type of the wrapped dictionary, + returns null if it is not explicitly specified. + + + + Sets the /ByteRange. + + an array of pairs of integers that specifies the byte range used in the digest calculation. + A pair consists of the starting byte offset and the length + + + + Gets the /ByteRange. + + an array of pairs of integers that specifies the byte range used in the digest calculation. + A pair consists of the starting byte offset and the length. + + + + Sets the /Contents value to the specified byte[]. + a byte[] representing the digest + + + Gets the /Contents entry value. + + Gets the /Contents entry value. + See ISO 32000-1 12.8.1, Table 252 – Entries in a signature dictionary. + + the signature content + + + Sets the /Cert value of this signature. + the byte[] representing the certificate chain + + + Gets the /Cert entry value of this signature. + + Gets the /Cert entry value of this signature. + See ISO 32000-1 12.8.1, Table 252 – Entries in a signature dictionary. + + the signature cert + + + Gets the /Cert entry value of this signature. + + Gets the /Cert entry value of this signature. + /Cert entry required when SubFilter is adbe.x509.rsa_sha1. May be array or byte string. + + the signature cert value + + + Sets the /Name of the person signing the document. + name of the person signing the document + + + gets the /Name of the person signing the document. + name of the person signing the document. + + + Sets the /M value. + Sets the /M value. Should only be used if the time of signing is not available in the signature. + time of signing + + + Gets the /M value. + Gets the /M value. Should only be used if the time of signing is not available in the signature. + + + + which denotes time of signing. + + + + Sets the /Location value. + physical location of signing + + + Gets the /Location entry value. + physical location of signing. + + + Sets the /Reason value. + reason for signing + + + + Sets the signature creator name in the + + dictionary. + + name of the signature creator + + + Sets the /ContactInfo value. + information to contact the person who signed this document + + + + Gets the + + instance if it exists, if + not it adds a new one and returns this. + + + + + + + + A dictionary that stores the name of the application that signs the PDF. + + + Creates a new PdfSignatureApp + + + Creates a new PdfSignatureApp. + PdfDictionary containing initial values + + + + Sets the signature created property in the Prop_Build dictionary's App + dictionary. + + String name of the application creating the signature + + + Provides convenient methods to make a signature appearance. + + Provides convenient methods to make a signature appearance. Use it in conjunction with + . + + + + Extra space at the top. + + + Margin for the content inside the signature rectangle. + + + The document to be signed. + + + The page where the signature will appear. + + + + The coordinates of the rectangle for a visible signature, + or a zero-width, zero-height rectangle for an invisible signature. + + + + Rectangle that represent the position and dimension of the signature in the page. + + + Zero level of the signature appearance. + + + Second level of the signature appearance. + + + Form containing all layers drawn on top of each other. + + + The rendering mode chosen for visible signatures. + + + The reason for signing. + + + The caption for the reason for signing. + + + Holds value of property location. + + + The caption for the location of signing. + + + Holds value of the application that creates the signature. + + + The contact name of the signer. + + + Holds value of property signDate. + + + The signing certificate. + + + The image that needs to be used for a visible signature. + + + A background image for the text in layer 2. + + + The scaling to be applied to the background image. + + + The text that goes in Layer 2 of the signature appearance. + + + Font for the text in Layer 2. + + + Font size for the font of Layer 2. + + + Font color for the font of Layer 2. + + + + Indicates the field to be signed if it is already presented in the document + (signing existing field). + + + Indicates the field to be signed if it is already presented in the document + (signing existing field). Required for + + option. + + + + Indicates if we need to reuse the existing appearance as layer 0. + + + Creates a PdfSignatureAppearance. + PdfDocument + Rectangle of the appearance + Number of the page the appearance should be on + + + + Provides the page number of the signature field which this signature + appearance is associated with. + + + The page number of the signature field which this signature + appearance is associated with. + + + + + Sets the page number of the signature field which this signature + appearance is associated with. + + + Sets the page number of the signature field which this signature + appearance is associated with. Implicitly calls + + which considers page number to process the rectangle correctly. + + + The page number of the signature field which + this signature appearance is associated with. + + this instance to support fluent interface + + + + Provides the rectangle that represent the position and dimension + of the signature field in the page. + + + the rectangle that represent the position and dimension + of the signature field in the page + + + + + Sets the rectangle that represent the position and dimension of + the signature field in the page. + + + The rectangle that represents the position and + dimension of the signature field in the page. + + this instance to support fluent interface + + + Get Layer 0 of the appearance. + + Get Layer 0 of the appearance. + + The size of the layer is determined by the rectangle set via + + + layer 0 + + + Get Layer 2 of the appearance. + + Get Layer 2 of the appearance. + + The size of the layer is determined by the rectangle set via + + + layer 2 + + + Gets the rendering mode for this signature. + the rendering mode for this signature + + + Sets the rendering mode for this signature. + the rendering mode + this instance to support fluent interface + + + Returns the signing reason. + reason for signing + + + Sets the signing reason. + signing reason. + this instance to support fluent interface + + + Sets the caption for the signing reason. + A new signing reason caption + this instance to support fluent interface + + + Returns the signing location. + signing location + + + Sets the signing location. + A new signing location + this instance to support fluent interface + + + Sets the caption for the signing location. + A new signing location caption + this instance to support fluent interface + + + Returns the signature creator. + The signature creator + + + Sets the name of the application used to create the signature. + A new name of the application signing a document + this instance to support fluent interface + + + Returns the signing contact. + The signing contact + + + Sets the signing contact. + A new signing contact + this instance to support fluent interface + + + Sets the certificate used to provide the text in the appearance. + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + + the certificate + this instance to support fluent interface + + + Get the signing certificate. + the signing certificate + + + Gets the Image object to render. + the image + + + Sets the Image object to render when Render is set to RenderingMode.GRAPHIC or RenderingMode.GRAPHIC_AND_DESCRIPTION. + + image rendered. If null the mode is defaulted to RenderingMode.DESCRIPTION + this instance to support fluent interface + + + Indicates that the existing appearances needs to be reused as layer 0. + is an appearances reusing flag value to set + this instance to support fluent interface + + + Gets the background image for the layer 2. + the background image for the layer 2 + + + Sets the background image for the layer 2. + the background image for the layer 2 + this instance to support fluent interface + + + Gets the scaling to be applied to the background image. + the scaling to be applied to the background image + + + Sets the scaling to be applied to the background image. + + Sets the scaling to be applied to the background image. If it's zero the image + will fully fill the rectangle. If it's less than zero the image will fill the rectangle but + will keep the proportions. If it's greater than zero that scaling will be applied. + In any of the cases the image will always be centered. It's zero by default. + + the scaling to be applied to the background image + this instance to support fluent interface + + + Sets the signature text identifying the signer. + + the signature text identifying the signer. If null or not set + a standard description will be used + + this instance to support fluent interface + + + Gets the signature text identifying the signer if set by setLayer2Text(). + the signature text identifying the signer + + + Gets the n2 and n4 layer font. + the n2 and n4 layer font + + + Sets the n2 and n4 layer font. + Sets the n2 and n4 layer font. If the font size is zero, auto-fit will be used. + the n2 and n4 font + this instance to support fluent interface + + + Sets the n2 and n4 layer font size. + font size + this instance to support fluent interface + + + Gets the n2 and n4 layer font size. + the n2 and n4 layer font size + + + Sets the n2 and n4 layer font color. + font color + this instance to support fluent interface + + + Gets the n2 and n4 layer font color. + the n2 and n4 layer font color + + + Gets the visibility status of the signature. + the visibility status of the signature + + + Constructs appearance (top-level) for a signature. + a top-level signature appearance + Adobe Pdf Digital + * Signature Appearances + + + Returns the signature date. + the signature date + + + Sets the signature date. + A new signature date + this instance to support fluent interface + + + Set the field name of the appearance. + name of the field + this instance to support fluent interface + + + Signature rendering modes. + + + The rendering mode is just the description. + + + The rendering mode is the name of the signer and the description. + + + The rendering mode is an image and the description. + + + The rendering mode is just an image. + + + Dictionary that stores signature build properties. + Kwinten Pisman + + + Creates new PdfSignatureBuildProperties. + + + Creates new PdfSignatureBuildProperties with preset values. + PdfDictionary containing preset values + + + + Sets the signatureCreator property in the underlying + + dictionary. + + the signature creator's name to be set + + + + Gets the + + from this dictionary. + + + Gets the + + from this dictionary. If it + does not exist, it adds a new + + and + returns this instance. + + + + + + + + Takes care of the cryptographic options and appearances that form a signature. + + + Enum containing the Cryptographic Standards. + Enum containing the Cryptographic Standards. Possible values are "CMS" and "CADES". + + + Cryptographic Message Syntax. + + + CMS Advanced Electronic Signatures. + + + Approval signature. + + + Author signature, no changes allowed. + + + Author signature, form filling allowed. + + + Author signature, form filling and annotations allowed. + + + The certification level. + + + The name of the field. + + + The file right before the signature is added (can be null). + + + The bytes of the file right before the signature is added (if raf is null). + + + Array containing the byte positions of the bytes that need to be hashed. + + + The PdfDocument. + + + The crypto dictionary. + + + Holds value of property signatureEvent. + + + OutputStream for the bytes of the document. + + + Outputstream that temporarily holds the output in memory. + + + Tempfile to hold the output temporarily. + + + Name and content of keys that can only be added in the close() method. + + + Indicates if the pdf document has already been pre-closed. + + + Signature field lock dictionary. + + + The signature appearance. + + + Holds value of property signDate. + + + Boolean to check if this PdfSigner instance has been closed already or not. + + + Creates a PdfSigner instance. + + Creates a PdfSigner instance. Uses a + + instead of a temporary file. + + PdfReader that reads the PDF file + OutputStream to write the signed PDF file + + + + for the signing document. Note that encryption will be + preserved regardless of what is set in properties. + + + + Creates a PdfSigner instance. + + Creates a PdfSigner instance. Uses a + + instead of a temporary file. + + PdfReader that reads the PDF file + OutputStream to write the signed PDF file + File to which the output is temporarily written + + + + for the signing document. Note that encryption will be + preserved regardless of what is set in properties. + + + + Gets the signature date. + Calendar set to the signature date + + + Sets the signature date. + the signature date + + + Provides access to a signature appearance object. + + Provides access to a signature appearance object. Use it to + customize the appearance of the signature. + + Be aware: + + If you create new signature field (either use + + with + the name that doesn't exist in the document or don't specify it at all) then + the signature is invisible by default. + + If you sign already existing field, then the signature appearance object + is modified to have all the properties (page num., rect etc.) consistent with + the state of the field (if you customized the appearance object + before the + + call you'll have to do it again) + + + + + + + + object. + + + + Returns the document's certification level. + + Returns the document's certification level. + For possible values see + . + + The certified status. + + + Sets the document's certification level. + + a new certification level for a document. + Possible values are: + + + + + + + + + + + + + + + + + Gets the field name. + the field name + + + Returns the user made signature dictionary. + + Returns the user made signature dictionary. This is the dictionary at the /V key + of the signature field. + + The user made signature dictionary. + + + Getter for property signatureEvent. + Value of property signatureEvent. + + + Sets the signature event to allow modification of the signature dictionary. + the signature event + + + Gets a new signature field name that doesn't clash with any existing name. + A new signature field name. + + + Sets the name indicating the field to be signed. + + Sets the name indicating the field to be signed. The field can already be presented in the + document but shall not be signed. If the field is not presented in the document, it will be created. + + The name indicating the field to be signed. + + + Gets the PdfDocument associated with this instance. + the PdfDocument associated with this instance + + + Sets the PdfDocument. + The PdfDocument + + + Setter for the OutputStream. + OutputStream for the bytes of the document + + + Getter for the field lock dictionary. + Field lock dictionary. + + + Setter for the field lock dictionary. + + Setter for the field lock dictionary. + + Be aware: if a signature is created on an existing signature field, + then its /Lock dictionary takes the precedence (if it exists). + + Field lock dictionary + + + Signs the document using the detached mode, CMS or CAdES equivalent. + + Signs the document using the detached mode, CMS or CAdES equivalent. +

    + NOTE: This method closes the underlying pdf document. This means, that current instance + of PdfSigner cannot be used after this method call. +
    + the interface providing the actual signing + the certificate chain + the CRL list + the OCSP client + the Timestamp client + the reserved size for the signature. It will be estimated if 0 + Either Signature.CMS or Signature.CADES +
    + + Signs the document using the detached mode, CMS or CAdES equivalent. + + Signs the document using the detached mode, CMS or CAdES equivalent. +

    + NOTE: This method closes the underlying pdf document. This means, that current instance + of PdfSigner cannot be used after this method call. +
    + the interface providing the actual signing + the certificate chain + the CRL list + the OCSP client + the Timestamp client + the reserved size for the signature. It will be estimated if 0 + Either Signature.CMS or Signature.CADES + the signature policy (for EPES signatures) +
    + + Signs the document using the detached mode, CMS or CAdES equivalent. + + Signs the document using the detached mode, CMS or CAdES equivalent. +

    + NOTE: This method closes the underlying pdf document. This means, that current instance + of PdfSigner cannot be used after this method call. +
    + the interface providing the actual signing + the certificate chain + the CRL list + the OCSP client + the Timestamp client + the reserved size for the signature. It will be estimated if 0 + Either Signature.CMS or Signature.CADES + the signature policy (for EPES signatures) +
    + + Sign the document using an external container, usually a PKCS7. + + Sign the document using an external container, usually a PKCS7. The signature is fully composed + externally, iText will just put the container inside the document. +

    + NOTE: This method closes the underlying pdf document. This means, that current instance + of PdfSigner cannot be used after this method call. +
    + the interface providing the actual signing + the reserved size for the signature +
    + + Signs a document with a PAdES-LTV Timestamp. + + Signs a document with a PAdES-LTV Timestamp. The document is closed at the end. +

    + NOTE: This method closes the underlying pdf document. This means, that current instance + of PdfSigner cannot be used after this method call. +
    + the timestamp generator + + the signature name or null to have a name generated + automatically + +
    + + Signs a PDF where space was already reserved. + the original PDF + the field to sign. It must be the last field + the output PDF + + the signature container doing the actual signing. Only the + method ExternalSignatureContainer.sign is used + + + + Processes a CRL list. + a Certificate if one of the CrlList implementations needs to retrieve the CRL URL from it. + + a list of CrlClient implementations + a collection of CRL bytes that can be embedded in a PDF + + + Checks if the document is in the process of closing. + true if the document is in the process of closing, false otherwise + + + This is the first method to be called when using external signatures. + + This is the first method to be called when using external signatures. The general sequence is: + preClose(), getDocumentBytes() and close(). + + exclusionSizes must contain at least + the PdfName.CONTENTS key with the size that it will take in the + document. Note that due to the hex string coding this size should be byte_size*2+2. + + + Map with names and sizes to be excluded in the signature + calculation. The key is a PdfName and the value an Integer. At least the /Contents must be present + + + + Populates already existing signature form field in the acroForm object. + + Populates already existing signature form field in the acroForm object. + This method is called during the + + method if the signature field already exists. + + + + + object in which the signature field will be populated + + signature field lock dictionary + + + Creates new signature form field and adds it to the acroForm object. + + Creates new signature form field and adds it to the acroForm object. + This method is called during the + + method if the signature field doesn't exist. + + + + + object in which new signature field will be added + + the name of the field + signature field lock dictionary + + + Gets the document bytes that are hashable when using external signatures. + + Gets the document bytes that are hashable when using external signatures. + The general sequence is: + + , + + and + . + + + The + + of bytes to be signed. + + + + This is the last method to be called when using external signatures. + + This is the last method to be called when using external signatures. The general sequence is: + preClose(), getDocumentBytes() and close(). + + update is a PdfDictionary that must have exactly the + same keys as the ones provided in + . + + + a PdfDictionary with the key/value that will fill the holes defined + in + + + + + Returns the underlying source. + the underlying source + + + Adds keys to the signature dictionary that define the certification level and the permissions. + + Adds keys to the signature dictionary that define the certification level and the permissions. + This method is only used for Certifying signatures. + + the signature dictionary + + + Adds keys to the signature dictionary that define the field permissions. + + Adds keys to the signature dictionary that define the field permissions. + This method is only used for signatures that lock fields. + + the signature dictionary + + the + + instance specified the field lock to be set + + + + Get the rectangle associated to the provided widget. + PdfWidgetAnnotation to extract the rectangle from + Rectangle + + + Get the page number associated to the provided widget. + PdfWidgetAnnotation from which to extract the page number + page number + + + An interface to retrieve the signature dictionary for modification. + + + Allows modification of the signature dictionary. + The signature dictionary + + + + Implementation of the + + interface that + can be used when you have a + + object. + + Paulo Soares + + + The private key object. + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + + Creates a + + instance. + + + A + + object. + + A hash algorithm (e.g. "SHA-1", "SHA-256",...). + A security provider (e.g. "BC"). + + + + + + + + + + + + + Verifies a certificate against a KeyStore + containing trusted anchors. + + + + A key store against which certificates can be verified. + + + Creates a RootStoreVerifier in a chain of verifiers. + the next verifier in the chain + + + Sets the Key Store against which a certificate can be checked. + a root store + + + Verifies a single certificate against a key store (if present). + the certificate to verify + the issuer certificate + the date the certificate needs to be valid + + a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + + A list of IDs that are used by the security classes + + + + A helper class that tells you more about the type of signature + (certification or approval) and the signature's DMP settings. + + + + + Class that contains a field lock action and + an array of the fields that are involved. + + + + Can be /All, /Exclude or /Include + + + An array of PdfString values with fieldnames + + + Creates a FieldLock instance. + indicates the set of fields that should be locked + an array of text strings containing field names + + + Getter for the field lock action. + the action of field lock dictionary + + + Getter for the fields involved in the lock action. + the fields of field lock dictionary + + + toString method + + + Is the signature a cerification signature (true) or an approval signature (false)? + + + Is form filling allowed by this signature? + + + Is adding annotations allowed by this signature? + + + Does this signature lock specific fields? + + + + Creates an object that can inform you about the type of signature + in a signature dictionary as well as some of the permissions + defined by the signature. + + the signature dictionary + the signature permissions + + + Getter to find out if the signature is a certification signature. + true if the signature is a certification signature, false for an approval signature. + + + Getter to find out if filling out fields is allowed after signing. + true if filling out fields is allowed + + + Getter to find out if adding annotations is allowed after signing. + true if adding annotations is allowed + + + Getter for the field lock actions, and fields that are impacted by the action + an Array with field names + + + + Class that encapsulates the signature policy information + Sample: + SignaturePolicyInfo spi = new SignaturePolicyInfo("2.16.724.1.3.1.1.2.1.9", + "G7roucf600+f03r/o0bAOQ6WAs0=", "SHA-1", "https://sede.060.gob.es/politica_de_firma_anexo_1.pdf"); + + + + + Constructs a new + + instance + + the id of the signature policy + the hash of the signature policy + the digestion algorithm of the signature policy + the uri of the full policy description + + + + Constructs a new + + instance + + the id of the signature policy + the Base64 presentation of the hash of the signature policy + the digestion algorithm of the signature policy + the uri of the full policy description + + + Utility class that provides several convenience methods concerning digital signatures. + + + Creates a SignatureUtil instance. + + Creates a SignatureUtil instance. Sets the acroForm field to the acroForm in the PdfDocument. + iText will create a new AcroForm if the PdfDocument doesn't contain one. + + PdfDocument to be inspected + + + + Prepares an + + instance for the given signature. + + + Prepares an + + instance for the given signature. + This method handles signature parsing and might throw an exception if + signature is malformed. + + The returned + + can be used to fetch additional info about the signature + and also to perform integrity check of data signed by the given signature field. + + Prepared + + instance calculates digest based on signature's /ByteRange entry. + In order to check that /ByteRange is properly defined and given signature indeed covers the current PDF document + revision please use + + method. + + the signature field name + + a + + instance which can be used to fetch additional info about the signature + and also to perform integrity check of data signed by the given signature field. + + + + Gets the signature dictionary, the one keyed by /V. + the field name + + the signature dictionary keyed by /V or null if the field is not + a signature + + + + Gets the field names that have signatures and are signed. + List containing the field names that have signatures and are signed + + + Gets the field names that have blank signatures. + List containing the field names that have blank signatures + + + Extracts a revision from the document. + the signature field name + an InputStream covering the revision. Returns null if it's not a signature field + + + Checks if the signature covers the entire document (except for signature's Contents) or just a part of it. + + + Checks if the signature covers the entire document (except for signature's Contents) or just a part of it. + + If this method does not return + + it means that signature in question does not cover the entire + contents of current + + . Such signatures cannot be considered as verifying the PDF document, + because content that is not covered by signature might have been modified since the signature creation. + + + the signature field name + true if the signature covers the entire document, false if it doesn't + + + Checks whether a name exists as a signature field or not. + Checks whether a name exists as a signature field or not. It checks both signed fields and blank signatures. + + name of the field + boolean does the signature field exist + + + + Parses a CRL from an input Stream. + + The input Stream holding the unparsed CRL. + The parsed CRL object. + + + + This behavior is different in Java and .NET, because in Java we use this two-step check: + first via #hasUnsupportedCriticalExtension method, and then additionally allowing standard critical extensions; + in .NET there's only second step. However, removing first step in Java can be a breaking change for some users + and moreover we don't have any means of providing customization for unsupported extensions check as of right now. + + During major release I'd suggest changing java unsupported extensions check logic to the same as in .NET, + but only if it is possible to customize this logic. + + + + TODO DEVSIX-2534 + + + The timestamp which is returned in case the signed document doesn't contain timestamp. + + The timestamp which is returned in case the signed document doesn't contain timestamp. + The constant's value is different in Java and .NET. + + + + + Time Stamp Authority Client interface implementation using Bouncy Castle + org.bouncycastle.tsp package. + + + Time Stamp Authority Client interface implementation using Bouncy Castle + org.bouncycastle.tsp package. + + Created by Aiken Sam, 2006-11-15, refactored by Martin Brunecky, 07/15/2007 + for ease of subclassing. + + + + The default value for the hash algorithm + + + The default value for the hash algorithm + + + The Logger instance. + + + URL of the Time Stamp Authority + + + TSA Username + + + TSA password + + + An interface that allows you to inspect the timestamp info. + + + Estimate of the received time stamp token + + + Hash algorithm + + + TSA request policy + + + Creates an instance of a TSAClient that will use BouncyCastle. + String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + + + Creates an instance of a TSAClient that will use BouncyCastle. + String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + String - user(account) name + String - password + + + Constructor. + + Constructor. + Note the token size estimate is updated by each call, as the token + size is not likely to change (as long as we call the same TSA using + the same imprint length). + + Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + user(account) name, optional + + password, optional if used in combination with username, the credentials will be used in + basic authentication. Use only in combination with a https url to ensure encryption + + estimated size of received time stamp token (DER encoded) + is a hash algorithm + + + the tsaInfo to set + + + Get the token size estimate. + + Get the token size estimate. + Returned value reflects the result of the last succesfull call, padded + + an estimate of the token size + + + Gets the TSA request policy that will be used when retrieving timestamp token. + policy id, or null if not set + + + Sets the TSA request policy that will be used when retrieving timestamp token. + policy id + + + Gets the MessageDigest to digest the data imprint + the digest algorithm name + + + Get RFC 3161 timeStampToken. + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + + data imprint to be time-stamped + encoded, TSA signed data of the timeStampToken + + + Get timestamp token - communications layer + is a byte representation of TSA request + - byte[] - TSA response, raw bytes (RFC 3161 encoded) + + + An exception that is thrown when something is wrong with a certificate. + + + Creates a VerificationException. + is a failed certificate + is a reason of failure + + + + Class that informs you that the verification of a Certificate + succeeded using a specific CertificateVerifier and for a specific + reason. + + + + The certificate that was verified successfully. + + + The CertificateVerifier that was used for verifying. + + + The reason why the certificate verified successfully. + + + Creates a VerificationOK object + the certificate that was successfully verified + the class that was used for verification + the reason why the certificate could be verified + + + Return a single String explaining which certificate was verified, how and why. + + +
    +
    diff --git a/Bin/itext.styledxmlparser.dll b/Bin/itext.styledxmlparser.dll new file mode 100644 index 000000000..6705d79c2 Binary files /dev/null and b/Bin/itext.styledxmlparser.dll differ diff --git a/Bin/itext.styledxmlparser.dll.refresh b/Bin/itext.styledxmlparser.dll.refresh new file mode 100644 index 000000000..ecb8d6814 --- /dev/null +++ b/Bin/itext.styledxmlparser.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.styledxmlparser.dll \ No newline at end of file diff --git a/Bin/itext.styledxmlparser.xml b/Bin/itext.styledxmlparser.xml new file mode 100644 index 000000000..4d9ba334b --- /dev/null +++ b/Bin/itext.styledxmlparser.xml @@ -0,0 +1,10253 @@ + + + + itext.styledxmlparser + + + + The Constant CLASS. + + + The Constant DISABLED. + + + The Constant ID. + + + The Constant LANG. + + + The Constant REL. + + + The Constant STYLESHEET. + + + Comparator class used to sort CSS rule set objects. + + + The selector comparator. + + + + Class containing possible CSS property keys and values, pseudo element keys, + units of measurement, and so on. + + + + The Constant ALIGN_CONTENT. + + + The Constant ALIGN_ITEMS. + + + The Constant ALIGN_SELF. + + + The constant ATTRIBUTE. + + + The Constant BACKGROUND. + + + The Constant BACKGROUND_ATTACHMENT. + + + The Constant BACKGROUND_BLEND_MODE. + + + The Constant BACKGROUND_CLIP. + + + The Constant BACKGROUND_COLOR. + + + The Constant BACKGROUND_IMAGE. + + + The Constant BACKGROUND_ORIGIN. + + + The Constant BACKGROUND_POSITION. + + + The Constant BACKGROUND_POSITION_X. + + + The Constant BACKGROUND_POSITION_Y. + + + The Constant BACKGROUND_REPEAT. + + + The Constant BACKGROUND_SIZE. + + + The Constant BORDER. + + + The Constant BORDER_BOTTOM. + + + The Constant BORDER_BOTTOM_COLOR. + + + The Constant BORDER_BOTTOM_LEFT_RADIUS. + + + The Constant BORDER_BOTTOM_RIGHT_RADIUS. + + + The Constant BORDER_BOTTOM_STYLE. + + + The Constant BORDER_BOTTOM_WIDTH. + + + The Constant BORDER_COLLAPSE. + + + The Constant BORDER_COLOR. + + + The Constant BORDER_IMAGE. + + + The Constant BORDER_LEFT. + + + The Constant BORDER_LEFT_COLOR. + + + The Constant BORDER_LEFT_STYLE. + + + The Constant BORDER_LEFT_WIDTH. + + + The Constant BORDER_RADIUS. + + + The Constant BORDER_RIGHT. + + + The Constant BORDER_RIGHT_COLOR. + + + The Constant BORDER_RIGHT_STYLE. + + + The Constant BORDER_RIGHT_WIDTH. + + + The Constant BORDER_SPACING. + + + The Constant BORDER_STYLE. + + + The Constant BORDER_TOP. + + + The Constant BORDER_TOP_COLOR. + + + The Constant BORDER_TOP_LEFT_RADIUS. + + + The Constant BORDER_TOP_RIGHT_RADIUS. + + + The Constant BORDER_TOP_STYLE. + + + The Constant BORDER_TOP_WIDTH. + + + The Constant BORDER_WIDTH. + + + The Constant BOX_SHADOW. + + + The Constant BREAK_ALL. + + + The Constant CAPTION_SIDE. + + + The Constant COLOR. + + + The Constant COLOR_DODGE. + + + The Constant COLOR_BURN. + + + The Constant COLUMN_GAP. + + + The Constant DARKEN. + + + The Constant DIFFERENCE. + + + The Constant DIRECTION. + + + The Constant DISPLAY. + + + The Constant EMPTY_CELLS. + + + The Constant EXCLUSION. + + + The Constant FLEX. + + + The Constant FLEX_BASIS. + + + The Constant FLEX_DIRECTION. + + + The Constant FLEX_GROW. + + + The Constant FLEX_FLOW. + + + The Constant FLEX_SHRINK. + + + The Constant FLEX_WRAP. + + + The Constant FLOAT. + + + The Constant FONT. + + + The Constant FONT_FAMILY. + + + The Constant FONT_FEATURE_SETTINGS. + + + The Constant FONT_KERNING. + + + The Constant FONT_LANGUAGE_OVERRIDE. + + + The Constant FONT_SIZE. + + + The Constant FONT_SIZE_ADJUST. + + + The Constant FONT_STRETCH. + + + The Constant FONT_STYLE. + + + The Constant FONT_SYNTHESIS. + + + The Constant FONT_VARIANT. + + + The Constant FONT_VARIANT_ALTERNATES. + + + The Constant FONT_VARIANT_CAPS. + + + The Constant FONT_VARIANT_EAST_ASIAN. + + + The Constant FONT_VARIANT_LIGATURES. + + + The Constant FONT_VARIANT_NUMERIC. + + + The Constant FONT_VARIANT_POSITION. + + + The Constant FONT_WEIGHT. + + + The Constant GAP. + + + The Constant HANGING_PUNCTUATION. + + + The Constant HARD_LIGHT. + + + The Constant HUE. + + + The Constant HYPHENS. + + + The Constant INLINE-BLOCK + + + The Constant JUSTIFY_CONTENT. + + + The Constant JUSTIFY_ITEMS. + + + The Constant KEEP_ALL. + + + The Constant LETTER_SPACING. + + + The Constant LINE_HEIGHT. + + + The Constant LIST_STYLE. + + + The Constant LIST_STYLE_IMAGE. + + + The Constant LIST_STYLE_POSITION. + + + The Constant LIST_STYLE_TYPE. + + + The Constant MARGIN. + + + The Constant MARGIN_BOTTOM. + + + The Constant MARGIN_LEFT. + + + The Constant MARGIN_RIGHT. + + + The Constant MARGIN_TOP. + + + The Constant MIN_HEIGHT. + + + The Constant MULTIPLY. + + + The Constant OPACITY. + + + The Constant ORDER. + + + The Constant OPRPHANS. + + + The Constant OUTLINE. + + + The Constant OUTLINE_COLOR. + + + The Constant OUTLINE_STYLE. + + + The Constant OUTLINE_WIDTH. + + + The Constant OVERFLOW_WRAP. + + + The Constant OVERFLOW. + + + The Constant PADDING. + + + The Constant PADDING_BOTTOM. + + + The Constant PADDING_LEFT. + + + The Constant PADDING_RIGHT. + + + The Constant PADDING_TOP. + + + The Constant PAGE_BREAK_AFTER. + + + The Constant PAGE_BREAK_BEFORE. + + + The Constant PAGE_BREAK_INSIDE. + + + The Constant PLACE_ITEMS. + + + The Constant POSITION. + + + The Constant QUOTES. + + + The Constant TAB_SIZE. + + + The Constant TEXT_ALIGN. + + + The Constant TEXT_ALIGN_LAST. + + + The Constant TEXT_COMBINE_UPRIGHT. + + + The Constant TEXT_DECORATION. + + + The Constant TEXT_DECORATION_LINE. + + + The Constant TEXT_DECORATION_STYLE. + + + The Constant TEXT_DECORATION_COLOR. + + + The Constant TEXT_INDENT. + + + The Constant TEXT_JUSTIFY. + + + The Constant TEXT_ORIENTATION. + + + The Constant TEXT_SHADOW. + + + The Constant TEXT_TRANSFORM. + + + The Constant TEXT_UNDERLINE_POSITION. + + + The Constant TRANSFORM. + + + The Constant UNICODE_BIDI. + + + The Constant VISIBILITY. + + + The Constant WHITE_SPACE. + + + The Constant WIDOWS. + + + The Constant WIDTH. + + + The Constant HEIGHT. + + + The Constant WORDWRAP. + + + The Constant WORD_BREAK. + + + The Constant WORD_SPACING. + + + The Constant WRITING_MODE. + + + The Constant ANYWHERE. + + + The Constant ALWAYS. + + + The Constant ARMENIAN. + + + The Constant AVOID. + + + The Constant AUTO. + + + The Constant BASELINE. + + + The Constant BLINK. + + + The Constant BOLD. + + + The Constant BOLDER. + + + The Constant BORDER_BOX. + + + The Constant BOTTOM. + + + The Constant BREAK_WORD. + + + The Constant CAPTION. + + + The Constant CENTER. + + + The Constant CIRCLE. + + + The Constant CJK_IDEOGRAPHIC. + + + The Constant CLOSE_QUOTE. + + + The Constant COLUMN. + + + The Constant COLUMN_REVERSE. + + + The Constant CONTAIN. + + + The Constant CONTENT. + + + The Constant CONTENT_BOX. + + + The Constant COVER. + + + The Constant CURRENTCOLOR. + + + The Constant DASHED. + + + The Constant DECIMAL. + + + The Constant DECIMAL_LEADING_ZERO. + + + The Constant DEG. + + + The Constant DISC. + + + The Constant DOTTED. + + + The Constant DOUBLE. + + + The Constant EACH_LINE. + + + The Constant END. + + + The Constant FIRST. + + + The Constant FIT_CONTENT. + + + The Constant FIXED. + + + The Constant FLEX_END. + + + The Constant FLEX_START. + + + The Constant GEORGIAN. + + + The Constant GRAD. + + + The Constant GROOVE. + + + The Constant HANGING. + + + The Constant HEBREW. + + + The Constant HIDDEN. + + + The Constant HIRAGANA. + + + The Constant HIRAGANA_IROHA. + + + The Constant ICON. + + + The Constant INHERIT. + + + The Constant INITIAL. + + + The Constant INSET. + + + The Constant INSIDE. + + + The Constant ITALIC. + + + The Constant LARGE. + + + The Constant LARGER. + + + The Constant LAST. + + + The Constant value LEGACY. + + + The Constant LEFT. + + + The Constant LIGHTEN. + + + The Constant LIGHTER. + + + The Constant value LINE_THROUGH. + + + The Constant LOCAL. + + + The Constant LOWER_ALPHA. + + + The Constant LOWER_GREEK. + + + The Constant LOWER_LATIN. + + + The Constant LOWER_ROMAN. + + + The Constant LUMINOSITY. + + + The Constant MANUAL. + + + The Constant MATRIX. + + + The Constant MEDIUM. + + + The Constant MENU. + + + The Constant MAX_CONTENT. + + + The Constant MIN_CONTENT. + + + The Constant MESSAGE_BOX. + + + The Constant NOWRAP. + + + The Constant NO_OPEN_QUOTE. + + + The Constant NO_CLOSE_QUOTE. + + + The Constant NO_REPEAT. + + + The Constant NONE. + + + The Constant NORMAL. + + + The Constant OBLIQUE. + + + The Constant OPEN_QUOTE. + + + The Constant OUTSIDE. + + + The Constant OUTSET. + + + The Constant value OVERLAY. + + + The Constant value OVERLINE. + + + The Constant PADDING_BOX. + + + The Constant RAD. + + + The Constant REPEAT. + + + The Constant REPEAT_X. + + + The Constant REPEAT_Y. + + + The Constant RIDGE. + + + The Constant RIGHT. + + + The Constant ROTATE. + + + The Constant ROUND. + + + The Constant ROW. + + + The Constant ROW_GAP. + + + The Constant ROW_REVERSE. + + + The Constant SAFE. + + + The Constant SATURATION. + + + The Constant SCALE. + + + The Constant SCALE_X. + + + The Constant SCALE_Y. + + + The Constant SCREEN. + + + The Constant SCROLL. + + + The Constant value SELF_END. + + + The Constant SELF_START. + + + The Constant SKEW. + + + The Constant SKEW_X. + + + The Constant SKEW_Y. + + + The Constant SMALL. + + + The Constant SMALL_CAPS. + + + The Constant SMALL_CAPTION. + + + The Constant SMALLER. + + + The Constant SOFT_LIGHT. + + + The Constant SOLID. + + + The Constant SPACE. + + + The Constant SPACE_AROUND. + + + The Constant SPACE_BETWEEN. + + + The Constant SPACE_EVENLY. + + + The Constant SQUARE. + + + The Constant START. + + + The Constant STATIC. + + + The Constant STATUS_BAR. + + + The Constant STRETCH. + + + The Constant STRING. + + + The Constant THICK. + + + The Constant THIN. + + + The Constant TOP. + + + The Constant TRANSLATE. + + + The Constant TRANSLATE_X. + + + The Constant TRANSLATE_Y. + + + The Constant TRANSPARENT. + + + The Constant UNDEFINED_NAME. + + + The Constant value UNDERLINE + + + The Constant UNSAFE. + + + The Constant value UNSET. + + + The Constant UPPER_ALPHA. + + + The Constant UPPER_LATIN. + + + The Constant UPPER_ROMAN. + + + The Constant value VISIBLE. + + + The Constant value WAVY. + + + The Constant WRAP. + + + The Constant WRAP_REVERSE. + + + The Constant X_LARGE. + + + The Constant X_SMALL. + + + The Constant XX_LARGE. + + + The Constant XX_SMALL. + + + The Constant BACKGROUND_SIZE_VALUES. + + + The Constant BACKGROUND_ORIGIN_OR_CLIP_VALUES. + + + The Constant BACKGROUND_REPEAT_VALUES. + + + The Constant BACKGROUND_ATTACHMENT_VALUES. + + + The Constant BACKGROUND_POSITION_VALUES. + + + The Constant BACKGROUND_POSITION_X_VALUES. + + + The Constant BACKGROUND_POSITION_Y_VALUES. + + + The Constant BORDER_WIDTH_VALUES. + + + The Constant BORDER_STYLE_VALUES. + + + The Constant BLEND_MODE_VALUES. + + + The Constant FONT_ABSOLUTE_SIZE_KEYWORDS. + + + The Constant METRIC_MEASUREMENTS. + + + The Constant ACTIVE. + + + The Constant CHECKED. + + + The Constant DISABLED. + + + The Constant EMPTY. + + + The Constant ENABLED. + + + The Constant FIRST_CHILD. + + + The Constant FIRST_OF_TYPE. + + + The Constant FOCUS. + + + The Constant HOVER. + + + The Constant IN_RANGE. + + + The Constant INVALID. + + + The Constant LANG. + + + The Constant LAST_CHILD. + + + The Constant LAST_OF_TYPE. + + + The Constant LINK. + + + The Constant NTH_CHILD. + + + The Constant NOT. + + + The Constant NTH_LAST_CHILD. + + + The Constant NTH_LAST_OF_TYPE. + + + The Constant NTH_OF_TYPE. + + + The Constant ONLY_OF_TYPE. + + + The Constant ONLY_CHILD. + + + The Constant OPTIONAL. + + + The Constant OUT_OF_RANGE. + + + The Constant READ_ONLY. + + + The Constant READ_WRITE. + + + The Constant REQUIRED. + + + The Constant ROOT. + + + The Constant TARGET. + + + The Constant URL. + + + The Constant VALID. + + + The Constant VISITED. + + + The Constant CM. + + + The Constant EM. + + + The Constant EX. + + + The Constant IN. + + + The Constant MM. + + + The Constant PC. + + + The Constant PERCENTAGE. + + + The Constant PT. + + + The Constant PX. + + + The Constant REM. + + + The Constant Q. + + + The Constant DPCM. + + + The Constant DPI. + + + The Constant DPPX. + + + Abstract superclass for all CSS at-rules (rules in CSS that start with an @ sign). + + + The rule name. + + + + Creates a new + + instance. + + the rule name + + + Gets the rule name. + the rule name + + + The CSS context node. + + + The child nodes. + + + The parent node. + + + The styles. + + + + Creates a new + + instance. + + the parent node + + + Class to store a CSS declaration. + + + The property. + + + The expression. + + + Instantiates a new CSS declaration. + the property + the expression + + + Gets the property. + the property + + + Gets the expression. + the expression + + + Sets the expression. + the new expression + + + Resolves css property aliases. + + Resolves css property aliases. + For example, word-wrap is an alias for overflow-wrap property. + + css property to be resolved as alias + resolved property if the provided property was an alias, otherwise original provided property. + + + Class to store a CSS font face At rule. + + + Properties in the form of a list of CSS declarations. + + + Instantiates a new CSS font face rule. + + + Gets the properties. + the properties + + + + Class to store a nested CSS at-rule + Nested at-rules are a subset of nested statements, which can be used + as a statement of a style sheet as well as inside of conditional group rules. + + + + The rule parameters. + + + The body. + + + + Creates a + + instance + with an empty body. + + the rule name + the rule parameters + + + Adds a CSS statement to body. + a CSS statement + + + Adds CSS statements to the body. + a list of CSS statements + + + Adds the body CSS declarations. + a list of CSS declarations + + + Gets the list of CSS statements. + the list of CSS statements + + + + A factory for creating + + objects. + + + + + Creates a new + + instance. + + + + + Creates a new + + object. + + the rule declaration + + a + + instance + + + + Extracts the rule name from the CSS rule declaration. + the rule declaration + the rule name + + + Class containing possible CSS rule names. + + + + Creates a new + + instance. + + + + The Constant BOTTOM_CENTER. + + + The Constant BOTTOM_LEFT. + + + The Constant BOTTOM_LEFT_CORNER. + + + The Constant BOTTOM_RIGHT. + + + The Constant BOTTOM_RIGHT_CORNER. + + + The Constant LEFT_BOTTOM. + + + The Constant LEFT_MIDDLE. + + + The Constant LEFT_TOP. + + + The Constant FONT_FACE. + + + The Constant MEDIA. + + + The Constant PAGE. + + + The Constant RIGHT_BOTTOM. + + + The Constant RIGHT_MIDDLE. + + + The Constant RIGHT_TOP. + + + The Constant TOP_CENTER. + + + The Constant TOP_LEFT. + + + The Constant TOP_LEFT_CORNER. + + + The Constant TOP_RIGHT. + + + The Constant TOP_RIGHT_CORNER. + + + Class to store a CSS rule set. + + + Pattern to match "important" in a rule declaration. + + + The CSS selector. + + + The normal CSS declarations. + + + The important CSS declarations. + + + + Creates a new + + from selector and raw list of declarations. + + + Creates a new + + from selector and raw list of declarations. + The declarations are split into normal and important under the hood. + To construct the + + instance from normal and important declarations, see + + + the CSS selector + the CSS declarations + + + Gets the CSS selector. + the CSS selector + + + Gets the normal CSS declarations. + the normal declarations + + + Gets the important CSS declarations. + the important declarations + + + Split CSS declarations into normal and important CSS declarations. + the declarations + + + Comparator class used to sort CSS rule set objects. + + + The selector comparator. + + + + A + + implementation. + + + + The rule parameters. + + + + Creates a new + + instance. + + the rule declaration + + + Abstract superclass for all kinds of CSS statements. + + + + Gets a list of + + objects. + + a node + a media device description + the css rule sets + + + Class that stores all the CSS statements, and thus acts as a CSS style sheet. + + + The list of CSS statements. + + + + Creates a new + + instance. + + + + Adds a CSS statement to the style sheet. + the CSS statement + + + Append another CSS style sheet to this one. + the other CSS style sheet + + + Gets the CSS statements of this style sheet. + the CSS statements + + + Gets the CSS declarations. + the node + the media device description + the CSS declarations + + + Gets the CSS declarations. + list of css rule sets + the CSS declarations + + + Populates the CSS declarations map. + the declarations + the map + + + Gets the CSS rule sets. + the node + the device description + the css rule sets + + + Puts a declaration in a styles map if the declaration is valid. + the styles map + the css declaration + + + + Class that will examine the font as described in the CSS, and store it + in a form that the font provider will understand. + + + + Name that will be used as the alias of the font. + + + A list of font face sources. + + + + Create a + + instance from a list of + CSS font attributes ("font-family" or "src"). + + the font properties + + the + + instance + + + + Processes and splits a string sequence containing a url/uri. + a string representing css src attribute + + an array of + + urls for font loading + + + + Checks whether in general we support requested font format. + + + + + true, if supported or unrecognized. + + + Gets the font-family. + + Gets the font-family. + Actually font-family is an alias. + + the font family (or alias) + + + Gets the font face sources. + the sources + + + Instantiates a new font face. + the font-family (or alias) + the sources + + + The Enum FontFormat. + + + "truetype" + + + "opentype" + + + "woff" + + + "woff2" + + + "embedded-opentype" + + + "svg" + + + Class that defines a font face source. + + + The UrlPattern used to compose a source path. + + + The Constant TypeGroup. + + + The Constant UrlGroup. + + + The Constant FormatGroup. + + + The font format. + + + The source path. + + + Indicates if the font is local. + + + + Creates a + + object by parsing a + + trying to match patterns that reveal the font name, whether that font is local, + and which format the font is in. + + a string containing information about a font + + the font in the form of a + + object + + + + + Parses a + + to a font format. + + a string + a font format + + + + Removes single and double quotes at the start and the end of a + . + + + a + + that might be between quotes + + + the + + without the quotes + + + + + Instantiates a new + + instance. + + a source path + indicates if the font is local + the font format (true type, open type, woff,...) + + + Interface for CSS resolvers. + + + Resolves the styles of a node given the passed context. + the node + the CSS context (RootFontSize, etc.) + the map containing the resolved styles + + + + The + + implementation for media rules. + + + + The media queries. + + + + Creates a + . + + the rule parameters + + + Tries to match a media device. + the device description + true, if successful + + + Class that bundles all the values of a media device description. + + + The type. + + + The bits per component. + + + The color index. + + + The width in points. + + + The height in points. + + + Indicates if the media device is a grid. + + + The scan value. + + + The orientation. + + + The the number of bits per pixel on a monochrome (greyscale) device. + + + The resolution in DPI. + + + + See + + class constants for possible values. + + a type of the media to use. + + + + Creates a new + + instance. + + the type + the width + the height + + + + Creates the default + . + + the media device description + + + + Gets default + + instance. + + + Gets default + + instance. + Do not modify any fields of the returned media device description because it may lead + to unpredictable results. Use + + if you want to modify device description. + + the default media device description + + + Gets the type. + the type + + + Gets the bits per component. + the bits per component + + + Sets the bits per component. + the bits per component + the media device description + + + Gets the color index. + the color index + + + Sets the color index. + the color index + the media device description + + + Gets the width in points. + the width + + + Sets the width in points. + the width + the media device description + + + Gets the height in points. + the height + + + Sets the height in points. + the height + the media device description + + + Checks if the media device is a grid. + true, if is grid + + + Sets the grid value. + the grid value + the media device description + + + Gets the scan value. + the scan value + + + Sets the scan value. + the scan value + the media device description + + + Gets the orientation. + the orientation + + + Sets the orientation. + the orientation + the media device description + + + Gets the number of bits per pixel on a monochrome (greyscale) device. + the number of bits per pixel on a monochrome (greyscale) device + + + Sets the number of bits per pixel on a monochrome (greyscale) device. + the number of bits per pixel on a monochrome (greyscale) device + the media device description + + + Gets the resolution in DPI. + the resolution + + + Sets the resolution in DPI. + the resolution + the media device description + + + Class that bundles all the media expression properties. + + + The default font size. + + + Indicates if there's a "min-" prefix. + + + Indicates if there's a "max-" prefix. + + + The feature. + + + The value. + + + + Creates a new + + instance. + + the feature + the value + + + + Tries to match a + . + + the device description + true, if successful + + + Parses an absolute length. + + the absolute length as a + + value + + + the absolute length as a + float + value + + + + Class that bundles all the media feature values. + + + + Creates a new + + instance. + + + + + Value: <integer>
    + Media: visual
    + Accepts min/max prefixes: yes
    + Indicates the number of bits per color component of the output device. +
    + + Value: <integer>
    + Media: visual
    + Accepts min/max prefixes: yes
    + Indicates the number of bits per color component of the output device. If the device is not a color device, this value is zero. +
    +
    + + + Value: <integer>
    + Media: visual
    + Accepts min/max prefixes: yes
    + Indicates the number of entries in the color look-up table for the output device. +
    +
    + + + Value: <ratio>
    + Media: visual, tactile
    + Accepts min/max prefixes: yes
    + Describes the aspect ratio of the targeted display area of the output device. +
    + + Value: <ratio>
    + Media: visual, tactile
    + Accepts min/max prefixes: yes
    + Describes the aspect ratio of the targeted display area of the output device. + This value consists of two positive integers separated by a slash ("/") character. + This represents the ratio of horizontal pixels (first term) to vertical pixels (second term). +
    +
    + + + Value: <mq-boolean> which is an <integer> that can only have the 0 and 1 value.
    + Media: all
    + Accepts min/max prefixes: no
    + Determines whether the output device is a grid device or a bitmap device. +
    + + Value: <mq-boolean> which is an <integer> that can only have the 0 and 1 value.
    + Media: all
    + Accepts min/max prefixes: no
    + Determines whether the output device is a grid device or a bitmap device. + If the device is grid-based (such as a TTY terminal or a phone display with only one font), + the value is 1. Otherwise it is zero. +
    +
    + + + Value: progressive | interlace
    + Media: tv
    + Accepts min/max prefixes: no
    + Describes the scanning process of television output devices. +
    +
    + + + Value: landscape | portrait
    + Media: visual
    + Accepts min/max prefixes: no
    + Indicates whether the viewport is in landscape (the display is wider than it is tall) or + portrait (the display is taller than it is wide) mode. +
    +
    + + + Value: <integer>
    + Media: visual
    + Accepts min/max prefixes: yes
    + Indicates the number of bits per pixel on a monochrome (greyscale) device. +
    + + Value: <integer>
    + Media: visual
    + Accepts min/max prefixes: yes
    + Indicates the number of bits per pixel on a monochrome (greyscale) device. + If the device isn't monochrome, the device's value is 0. +
    +
    + + + Value: <length>
    + Media: visual, tactile
    + Accepts min/max prefixes: yes
    + The height media feature describes the height of the output device's rendering surface + (such as the height of the viewport or of the page box on a printer). +
    +
    + + + Value: <resolution>
    + Media: bitmap
    + Accepts min/max prefixes: yes
    + Indicates the resolution (pixel density) of the output device. +
    + + Value: <resolution>
    + Media: bitmap
    + Accepts min/max prefixes: yes
    + Indicates the resolution (pixel density) of the output device. The resolution may be specified in + either dots per inch (dpi) or dots per centimeter (dpcm). +
    +
    + + + Value: <length>
    + Media: visual, tactile
    + Accepts min/max prefixes: yes
    + The width media feature describes the width of the rendering surface of the output device + (such as the width of the document window, or the width of the page box on a printer). +
    +
    + + Class that bundles all the media query properties. + + + The logical "only" value. + + + The logical "not" value. + + + The type. + + + The expressions. + + + + Creates a new + + instance. + + the type + the expressions + logical "only" value + logical "not" value + + + Tries to match a device description with the media query. + the device description + true, if successful + + + + Utilities class that parses + + values into + + or + + values. + + + + + Creates a + + instance. + + + + + Parses a + + into a + + of + + values. + + + the media queries in the form of a + + + + the resulting + + of + + values + + + + + Parses a + + into a + + value. + + + the media query in the form of a + + + + the resulting + + value + + + + + Parses a + + into a list of + + values. + + + the media expressions in the form of a + + + indicates if the media expression shall start with "and" + + the resulting list of + + values + + + + + Parses a + + into a + + value. + + + the media expression in the form of a + + + + the resulting + + value + + + + Class that bundles a series of media rule constants. + + + + Creates a new + + instance. + + + + The Constant AND. + + + The Constant MIN. + + + The Constant MAX. + + + The Constant NOT. + + + The Constant ONLY. + + + + Class that bundles all the media types and allows you to registered valid media types in a + . + + + + The Constant registeredMediaTypes. + + + The Constant ALL. + + + The Constant AURAL. + + + The Constant BRAILLE. + + + The Constant EMBOSSED. + + + The Constant HANDHELD. + + + The Constant PRINT. + + + The Constant PROJECTION. + + + The Constant SCREEN. + + + The Constant SPEECH. + + + The Constant TTY. + + + The Constant TV. + + + + Creates a new + + instance. + + + + Checks if a media type is registered as a valid media type. + the media type + true, if it's a valid media type + + + Registers a media type. + the media type + the string + + + + + implementation for margins. + + + + The page selectors. + + + + Creates a new + + instance. + + the rule name + + + Sets the page selectors. + the new page selectors + + + + Class for a non standard + . + + + + + Creates a new + + instance. + + the selector + the declarations + + + + + implementation for page rules. + + + + The page selectors. + + + + Creates a new + + instance. + + the rule parameters + + + Class that bundles a series of page context constants. + + + The Constant BLANK. + + + The Constant FIRST. + + + The Constant LEFT. + + + The Constant RIGHT. + + + + + implementation for page contexts. + + + + The page type name. + + + The page classes. + + + + Creates a new + + instance. + + + + + Creates a new + + instance. + + the parent node + + + Adds a page class. + the page class + the page context node + + + Gets the page type name. + the page type name + + + Sets the page type name. + the page type name + the page context node + + + Gets the list of page classes. + the page classes + + + + + implementation for page margin box contexts. + + + + The Constant PAGE_MARGIN_BOX_TAG. + + + The margin box name. + + + + Creates a new + + instance. + + the parent node + the margin box name + + + Gets the margin box name. + the margin box name + + + Sets the rectangle in which page margin box contents are shown. + + the + + defining position and dimensions of the margin box content + area + + + + Gets the rectangle in which page margin box contents should be shown. + + the + + defining position and dimensions of the margin box content area + + + + + Sets the containing block rectangle for the margin box, which is used for calculating + some of the margin box properties relative values. + + + the + + which is used as a reference for some + margin box relative properties calculations. + + + + + the + + which is used as a reference for some + margin box relative properties calculations. + + + + + A simple + + implementation. + + + + + + + + + + + + + + + + + + + Tokenizer for CSS declaration values. + + + The source string. + + + The current index. + + + The quote string, either "'" or "\"". + + + Indicates if we're inside a string. + + + The depth. + + + + Creates a new + + instance. + + the property value + + + Gets the next valid token. + the next valid token + + + Gets the next token. + the next token + + + Checks if a character is a hexadecimal digit. + the character + true, if it's a hexadecimal digit + + + Processes a function token. + the token + the function buffer + + + The Token class. + + + The value. + + + The type. + + + + Creates a new + + instance. + + the value + the type + + + Gets the value. + the value + + + Gets the type. + the type + + + Checks if the token is a string. + true, if is string + + + Enumeration of the different token types. + + + The string type. + + + The function type. + + + The comma type. + + + Unknown type. + + + Utilities class to parse CSS page selectors. + + + The pattern string for page selectors. + + + The pattern for page selectors. + + + + Parses the selector items into a list of + + instances. + + + the selector items in the form of a + + + + the resulting list of + + instances + + + + Utilities class to parse CSS rule sets. + + + The logger. + + + + Creates a new + + instance. + + + + Parses property declarations. + + the property declarations in the form of a + + + + the list of + + instances + + + + + Parses a rule set into a list of + + instances. + + + Parses a rule set into a list of + + instances. + This method returns a + + because a selector can + be compound, like "p, div, #navbar". + + the selector + the properties + + the resulting list of + + instances + + + + + Splits CSS properties into an array of + + values. + + the properties + the array of property values + + + Gets the semicolon position. + the properties + the from index + the semicolon position + + + Utilities class to parse a CSS selector. + + + Set of legacy pseudo elements (first-line, first-letter, before, after). + + + The pattern string for selectors. + + + The pattern for selectors. + + + + Creates a new + + instance. + + + + Parses the selector items. + + the selectors in the form of a + + + + the resulting list of + + + + + Resolves a pseudo selector and appends it to list. + list of items to which new selector will be added to + the pseudo selector + + the corresponding + . + + is the original source + + + Resolves a pseudo selector if it contains brackets. + + Resolves a pseudo selector if it contains brackets. Updates internal state of + + if necessary. + + the pseudo selector + + the corresponding + . + + is the original source + + + Internal class not for public use. + Internal class not for public use. Its API may change. + + + Construct a new CssSelectorParserMatch + the text being matched + the pattern against which the text is being matched + + + Get the index at which the last match started + + + Get the text of the last match + + + Get the source text being matched + + + Return whether or not the match was successful + + + Attempt to match the pattern against the next piece of the source text + + + Get the index at which the next match of the pattern takes place + the index at which to start matching the pattern + + + Utilities class to parse a CSS style sheet. + + + + Creates a new + . + + + + + Parses a stream into a + . + + the stream + the base url + + the resulting + + + + + + Parses a stream into a + . + + the stream + + the resulting + + + + + + Parses a string into a + . + + the style sheet data + the base url + + the resulting + + + + + + Parses a string into a + . + + the data + + the resulting + + + + + + + implementation for the At-rule state. + + + + The state machine that parses the CSS. + + + + Creates a new + + instance. + + the state machine that parses the CSS + + + + + implementation for the block state. + + + + The state machine that parses the CSS. + + + + Creates a new + + instance. + + the state machine that parses the CSS + + + + + implementation for the end comment state. + + + + The state machine that parses the CSS. + + + + Creates a new + + instance. + + the state machine that parses the CSS + + + + + implementation for the inner comment state. + + + + The state machine that parses the CSS. + + + + Creates a new + + instance. + + the state machine that parses the CSS + + + + + implementation for the start comment state. + + + + The state machine that parses the CSS. + + + + Creates a new + + instance. + + the state machine that parses the CSS + + + + + implementation for the conditional group At-rule state. + + + + The state machine that parses the CSS. + + + + Creates a new + + instance. + + the state machine that parses the CSS + + + State machine that will parse content into a style sheet. + + + The current state. + + + Indicates if the current rule is supported. + + + The previous active state (excluding comments). + + + A buffer to store temporary results. + + + The current selector. + + + The style sheet. + + + The nested At-rules. + + + The stored properties without selector. + + + Set of the supported rules. + + + Set of conditional group rules. + + + The comment start state. + + + The commend end state. + + + The commend inner state. + + + The unknown state. + + + The rule state. + + + The properties state. + + + The conditional group at rule block state. + + + The At-rule block state. + + + The URI resolver. + + + + Creates a new + + instance. + + + + + Creates a new + + instance. + + the base URL + + + Process a character using the current state. + the character + + + Gets the resulting style sheet. + the resulting style sheet + + + Appends a character to the buffer. + the character + + + Gets the contents of the buffer. + the buffer contents + + + Resets the buffer. + + + Enter the previous active state. + + + Enter the comment start state. + + + Enter the comment end state. + + + Enter the comment inner state. + + + Enter the rule state. + + + Enter the unknown state if nested blocks are finished. + + + Enter the rule state, based on whether the current state is unsupported or conditional. + + + Enter the unknown state. + + + Enter the At-rule block state. + + + Enter the conditional group At-rule block state. + + + Enter the properties state. + + + Store the current selector. + + + Store the current properties. + + + Store the current properties without selector. + + + Store the semicolon At-rule. + + + Finish the At-rule block. + + + Push the block preceding At-rule. + + + Save the active state. + + + Sets the current state. + the new state + + + Processes the properties. + the selector + the properties + + + Processes the properties. + the properties + + + Normalizes the declaration URIs. + the declarations + + + Processes the semicolon At-rule. + the rule str + + + Processes the finished At-rule block. + the at rule + + + Checks if is current rule is supported. + true, if the current rule is supported + + + Checks if the current At-rule is a conditional group rule (or if it's unsupported). + true, if the current At-rule is unsupported or conditional + + + Interface for all parser state implementations. + + + Process a character. + the character + + + + + implementation for the rule state. + + + + The state machine that parses the CSS. + + + + Creates a new + + instance. + + the state machine that parses the CSS + + + + + implementation for the unknown state. + + + + The state machine that parses the CSS. + + + + Creates a new + + instance. + + the state machine that parses the CSS + + + + + implementation for pseudo elements. + + + + The pseudo element name. + + + The pseudo element tag name. + + + + Creates a new + + instance. + + the parent node + the pseudo element name + + + Gets the pseudo element name. + the pseudo element name + + + + + + + + + + + + + + + + + + + + + + A simple + + implementation. + + + + + + + + + + + + + + + + + + + Utilities class for pseudo elements. + + + The prefix for pseudo elements. + + + Creates the pseudo element tag name. + the pseudo element name + the tag name + + + Checks for before or after elements. + the node + true, if successful + + + Container for CSS context properties that influence CSS resolution. + + Container for CSS context properties that influence CSS resolution. + This class only contains properties relevant for any generic XML+CSS combo: + specific properties must be implemented in a project-specific subclass. + Used by + . + + + + The quotes depth. + + + Gets the quotes depth. + the quotes depth + + + Sets the quotes depth. + the new quotes depth + + + implementation for content nodes. + + + The attributes + + + The tag name + + + Creates a new instance. + the parent node + the pseudo element name + the attributes + + + + + + + + + + + + + + + + + + + + + Simple implementation. + + + The attributes. + + + Creates a new instance. + the attributes + + + + + + + + + + + + + + + + + + Simple implementation. + + + The entry. + + + Creates a new instance. + the entry + + + + + + + + + iterator. + + + The iterator. + + + Creates a new instance. + the iterator + + + + + + + + + + + + + + + + + + Helper class that allows you to get the default values of CSS properties. + + + A map with properties and their default values. + + + Gets the default value of a property. + the property + the default value + + + Helper class that allows you to check if a property is inheritable. + + + + Set of inheritable properties + in accordance with "http://www.w3schools.com/cssref/" + and "https://developer.mozilla.org/en-US/docs/Web/CSS/Reference" + + + + Checks if a property is inheritable. + the CSS property + true, if the property is inheritable + + + Utilities class to merge CSS properties. + + + + Creates a new + + class. + + + + Merges text decoration. + the first value + the second value + the merged value + + + Normalizes text decoration values. + the text decoration value + a set of normalized decoration values + + + Helper class to deal with quoted values in strings. + + + The empty quote value. + + + The open quotes. + + + The close quotes. + + + + Creates a new + + instance. + + the open quotes + the close quotes + + + + Creates a + + instance. + + the quotes string + indicates whether it's OK to fall back to the default + + the resulting + + instance + + + + + Creates the default + + instance. + + + the + + instance + + + + Resolves quotes. + the value + the CSS context + the quote string + + + Increases the quote depth. + the context + + + Decreases the quote depth. + the context + + + Gets the quote. + the depth + the quotes + the requested quote string + + + Interface for attribute and style-inheritance logic + + + Checks if a property or attribute is inheritable is inheritable. + the identifier for property + true, if the property is inheritable, false otherwise + + + + Abstract + + implementation for borders. + + + + The template for -width properties. + + + The template for -style properties. + + + The template for -color properties. + + + Gets the prefix of a property. + the prefix + + + + Abstract + + implementation for box definitions. + + + + The template for -left properties. + + + The template for -right properties. + + + The template for -bottom properties. + + + The template for -top properties. + + + Gets the prefix of a property. + the prefix + + + Gets the postfix of a property. + the postfix + + + + Abstract + + implementation for corners definitions. + + + + The template for -bottom-left properties. + + + The template for -bottom-right properties. + + + The template for -top-left properties. + + + The template for -top-right properties. + + + Gets the prefix of a property. + the prefix + + + Gets the postfix of a property. + the postfix + + + + + implementation for background-position. + + + + + + + + + implementation for backgrounds. + + + + Registers a property based on its type. + the property type + the property value + the resolved properties + already used types + false if the property is invalid. True in all other cases + + + + + implementation for bottom borders. + + + + + + implementation for border colors. + + + + + + implementation for left borders. + + + + + + implementation for border radius. + + + + + + implementation for right borders. + + + + + + implementation for borders. + + + + + + implementation for border styles. + + + + + + implementation for top borders. + + + + + + implementation for border widths. + + + + + + + + + + + + implementation for fonts. + + + + Unsupported shorthand values. + + + Font weight values. + + + Font size values. + + + Gets the font properties. + the shorthand expression + the font properties + + + + + + + + implementation for list styles. + + + + The list style types (disc, decimal,...). + + + The list style positions (inside, outside). + + + + + implementation for margins. + + + + + + implementation for outlines. + + + + + + implementation for paddings. + + + + + + + Interface for shorthand resolvers. + + + Resolves a shorthand expression. + the shorthand expression + a list of CSS declaration + + + A factory for creating ShorthandResolver objects. + + + The map of shorthand resolvers. + + + Gets a shorthand resolver. + the property + the shorthand resolver + + + Abstract superclass for CSS Selectors. + + + The selector items. + + + + Creates a new + + instance. + + the selector items + + + + + implementation for CSS page margin box selectors. + + + + The page margin box name. + + + The page selector. + + + + Creates a new + + instance. + + the page margin box name + the page selector + + + + + implementation for CSS page selectors. + + + + + Creates a new + + instance. + + the page selector + + + + + implementation for CSS selectors. + + + + + Creates a new + + instance. + + the selector items + + + + Creates a new + + instance. + + the selector + + + Checks if a node matches the selector. + the node + the index of the last selector + true, if there's a match + + + Comparator class for CSS Selectors. + + + Interface for CSS Selector classes. + + + Calculates the specificity. + the specificity + + + Checks if a node matches the selector. + the node + true, if the selector is a match for the node + + + + + implementation for attribute selectors. + + + + The property. + + + The match symbol. + + + The value. + + + + Creates a new + + instance. + + the attribute + + + + + implementation for class selectors. + + + + The class name. + + + + Creates a new + + instance. + + the class name + + + + + implementation for id selectors. + + + + The id. + + + + Creates a new + + instance. + + the id + + + + + implementation for page pseudo classes selectors. + + + + Indicates if the page pseudo class is a spread pseudo class (left or right). + + + The page pseudo class. + + + + Creates a new + + instance. + + the page pseudo class name + + + + + implementation for page type selectors. + + + + The page type name. + + + + Creates a new + + instance. + + the page type name + + + + Creates a new + + instance. + + the pseudo class name + + + Gets the all the siblings of a child node. + the child node + the sibling nodes + + + Gets all siblings of a child node with the type of a child node. + the child node + the sibling nodes with the type of a child node + + + The nth A. + + + The nth B. + + + Gets the nth arguments. + + + Resolves the nth. + a node + the children + true, if successful + + + + + implementation for pseudo class selectors. + + + + The arguments. + + + The pseudo class. + + + + Creates a new + + instance. + + the pseudo class name + + + + + implementation for pseudo element selectors. + + + + The pseudo element name. + + + + Creates a new + + instance. + + the pseudo element name + + + + + implementation for separator selectors. + + + + The separator character. + + + + Creates a new + + instance. + + the separator character + + + Gets the separator character. + the separator character + + + Class that bundles some CSS specificity constants. + + + + Creates a new + + instance. + + + + The Constant ID_SPECIFICITY. + + + The Constant CLASS_SPECIFICITY. + + + The Constant ELEMENT_SPECIFICITY. + + + + + implementation for tag selectors. + + + + The tag name. + + + Indicates if the selector is universally valid. + + + + Creates a new + + instance. + + the tag name + + + Interface for CSS selector items. + + + Gets the specificity. + the specificity + + + Checks if the selector matches an element. + the element + true, if there's a match + + + Utilities class for CSS background parsing. + + + + Creates a new + + instance. + + + + Parses the background repeat string value. + the string which stores the background repeat value + + the background repeat as a + + instance + + + + Gets background property name corresponding to its type. + background property type + background property name + + + Resolves the background property type using it's value. + the value + the background property type value + + + Utilities class for CSS dimension parsing operations. + + + + Creates a new + + instance. + + + + Parses an integer without throwing an exception if something goes wrong. + a string that might be an integer value + the integer value, or null if something went wrong + + + Parses a float without throwing an exception if something goes wrong. + a string that might be a float value + the float value, or null if something went wrong + + + Parses a double without throwing an exception if something goes wrong. + a string that might be a double value + the double value, or null if something went wrong + + + + Parses an angle with an allowed metric unit (deg, grad, rad) or numeric value (e.g. 123, 1.23, + .123) to rad. + + String containing the angle to parse + default metric to use in case the input string does not specify a metric + the angle in radians + + + + Parses a angle with an allowed metric unit (deg, grad, rad) or numeric value (e.g. 123, 1.23, + .123) to rad. + + + Parses a angle with an allowed metric unit (deg, grad, rad) or numeric value (e.g. 123, 1.23, + .123) to rad. Default metric is degrees + + String containing the angle to parse + the angle in radians + + + Parses an aspect ratio into an array with two integers. + a string that might contain two integer values + the aspect ratio as an array of two integer values + + + + Parses a length with an allowed metric unit (px, pt, in, cm, mm, pc, q) or numeric value (e.g. 123, 1.23, + .123) to pt.
    + A numeric value (without px, pt, etc in the given length string) is considered to be in the default metric that + was given. +
    + the string containing the length + + the string containing the metric if it is possible that the length string does not contain + one. If null the length is considered to be in px as is default in HTML/CSS + + parsed value +
    + + Parses the absolute length. + the length as a string + the length as a float + + + + Parses an relative value based on the base value that was given, in the metric unit of the base value.
    + (e.g. margin=10% should be based on the page width, so if an A4 is used, the margin = 0.10*595.0 = 59.5f) +
    + in %, em or ex + the value the returned float is based on + the parsed float in the metric unit of the base value +
    + + Convenience method for parsing a value to pt. + + Convenience method for parsing a value to pt. Possible values are: + a numeric value in pixels (e.g. 123, 1.23, .123), + + a value with a metric unit (px, in, cm, mm, pc or pt) attached to it, + + or a value with a relative value (%, em, ex). + + + + the value + the em value + the root em value + the unit value + + + Parses the absolute font size. + + Parses the absolute font size. + + A numeric value (without px, pt, etc in the given length string) is considered to be in the default metric that + was given. + + + the font size value as a + + + + the string containing the metric if it is possible that the length string does not contain + one. If null the length is considered to be in px as is default in HTML/CSS. + + + the font size value as a + float + + + + Parses the absolute font size. + + Parses the absolute font size. + + A numeric value (without px, pt, etc in the given length string) is considered to be in the px. + + + the font size value as a + + + + the font size value as a + float + + + + Parses the relative font size. + + the relative font size value as a + + + the base value + + the relative font size value as a + float + + + + Parses the border radius of specific corner. + string that defines the border radius of specific corner + the em value + the root em value + + an array of + UnitValues + that define horizontal and vertical border radius values + + + + Parses the resolution. + the resolution as a string + a value in dpi + + + Parses either RGBA or CMYK color. + the color value + an RGBA or CMYK value expressed as an array with four float values + + + Parses the RGBA color. + the color value + an RGBA value expressed as an array with four float values + + + + Method used in preparation of splitting a string containing a numeric value with a metric unit (e.g. 18px, 9pt, + 6cm, etc).

    + Determines the position between digits and affiliated characters ('+','-','0-9' and '.') and all other + characters.
    + e.g. string "16px" will return 2, string "0.5em" will return 3 and string '-8.5mm' will return 4. +
    + containing a numeric value with a metric unit + + int position between the numeric value and unit or 0 if string is null or string started with a + non-numeric value. + +
    + + Utilities class for CSS gradient functions parsing. + + + Checks whether the provided value is a linear gradient or repeating linear gradient function. + + Checks whether the provided value is a linear gradient or repeating linear gradient function. + This method does not check the validity of arguments list. + + the value to check + + + + if the provided argument is the linear gradient + or repeating linear gradient function (even if the arguments list is invalid) + + + + Parses the provided linear gradient or repeating linear gradient function + the value to parse + the current element's em value + the current element's rem value + + the + + constructed from the parsed linear gradient + or + + if the argument value is not a linear gradient or repeating linear gradient + function + + + + Utilities class with functionality to normalize CSS properties. + + + Normalize a property. + the property + the normalized property + + + Appends quoted string. + the current buffer + a source + where to start in the source. Should point at quote symbol. + the new position in the source + + + Appends url content and end parenthesis if url is correct. + the current buffer + a source + where to start in the source. Should point at first symbol after "url(". + the new position in the source + + + Checks if spaces can be trimmed after a specific character. + the character + true, if spaces can be trimmed after the character + + + Checks if spaces can be trimmed before a specific character. + the character + true, if spaces can be trimmed before the character + + + Utilities class for CSS types validating operations. + + + + Creates a new + + instance. + + + + Checks whether a string contains an allowed metric unit in HTML/CSS; rad, deg and grad. + the string that needs to be checked + boolean true if value contains an allowed angle value + + + Checks if a data is base 64 encoded. + the data + true, if the data is base 64 encoded + + + Checks if a value is a color property. + the value + true, if the value contains a color property + + + Checks whether a string contains an allowed value relative to parent value. + the string that needs to be checked + boolean true if value contains a em value + + + Checks whether a string contains an allowed value relative to element font height. + the string that needs to be checked + boolean true if value contains a ex value + + + Checks whether a string contains an allowed metric unit in HTML/CSS; px, in, cm, mm, pc, Q or pt. + + the string that needs to be checked + boolean true if value contains an allowed metric value + + + Checks whether a string matches a negative value (e.g. -123, -2em, -0.123). + + Checks whether a string matches a negative value (e.g. -123, -2em, -0.123). + All these metric values are allowed in HTML/CSS. + + the string that needs to be checked + true if value is negative + + + Checks whether a string matches a numeric value (e.g. 123, 1.23, .123). + + Checks whether a string matches a numeric value (e.g. 123, 1.23, .123). All these metric values are allowed in + HTML/CSS. + + the string that needs to be checked + boolean true if value contains an allowed metric value + + + Checks whether a string contains a percentage value + the string that needs to be checked + boolean true if value contains an allowed percentage value + + + Checks whether a string contains an allowed value relative to previously set value. + the string that needs to be checked + boolean true if value contains an allowed metric value + + + Checks whether a string contains an allowed value relative to previously set root value. + the string that needs to be checked + boolean true if value contains a rem value + + + Checks if a string is in a valid format. + the string that needs to be checked + boolean true if value is in a valid format + + + Checks if value is initial, inherit or unset. + value to check + true if value is initial, inherit or unset. false otherwise + + + Checks if value contains initial, inherit or unset. + value to check + true if value contains initial, inherit or unset. False otherwise + + + Checks whether a string contains a zero. + the string that needs to be checked + boolean true if value contains a zero + + + Utilities class for CSS operations. + + + + Creates a new + + instance. + + + + + Splits the provided + + by comma with respect of brackets. + + to split + + the + + of split result + + + + + Splits the provided + + by split character with respect of escape characters. + + value to split + character to split the String + escape characters + + the + + of split result + + + + Parses the given css blend mode value. + + Parses the given css blend mode value. If the argument is + + or an unknown blend + mode, then the default css + + value would be returned. + + the value to parse + + the + + instance representing the parsed value + + + + + Extracts shorthand properties as list of string lists from a string, where the top level + list is shorthand property and the lower level list is properties included in shorthand property. + + the source string with shorthand properties + the list of string lists + + + Normalizes a CSS property. + the property + the normalized property + + + Removes double spaces and trims a string. + the string + the string without the unnecessary spaces + + + + Parses + url("file.jpg") + to + file.jpg. + + the url attribute to parse + the parsed url. Or original url if not wrappend in url() + + + Parses string and return attribute value. + the string contains attr() to extract attribute value + the parentNode from which we extract information + the value of attribute + + + Find the next unescaped character. + a source + the character to look for + where to start looking + the position of the next unescaped character + + + Helper method for comparing floating point numbers + first float to compare + second float to compare + True if both floats are equal within a Epsilon defined in this class, false otherwise + + + Helper method for comparing floating point numbers + first float to compare + second float to compare + True if both floats are equal within a Epsilon defined in this class, false otherwise + + + Parses the unicode range. + the string which stores the unicode range + + the unicode range as a + + object + + + + Convert given point value to a pixel value. + Convert given point value to a pixel value. 1 px is 0.75 pts. + float value to be converted to pixels + float converted value pts/0.75f + + + Convert given point value to a pixel value. + Convert given point value to a pixel value. 1 px is 0.75 pts. + double value to be converted to pixels + double converted value pts/0.75 + + + Convert given point value to a point value. + Convert given point value to a point value. 1 px is 0.75 pts. + float value to be converted to pixels + float converted value px*0.75 + + + Convert given point value to a point value. + Convert given point value to a point value. 1 px is 0.75 pts. + double value to be converted to pixels + double converted value px*0.75 + + + + Checks if an + + represents a style sheet link. + + the head child element + true, if the element node represents a style sheet link + + + Class to store escape characters and their processing logic. + + Class to store escape characters and their processing logic. + This class is used in + + method. + + + + + Creates instance of + . + + opening escape character + closing escape character + + + + Creates instance of + + when opening and closing characters are the same. + + opening and closing escape character + + + + Is currently processed character in + + escaped. + + true if escaped, false otherwise + + + Processes given character. + next character to process + + + Class that holds CSS declaration validator. + + + A validator containing all the CSS declaration validators. + + + + Creates a new + CssDeclarationValidationMaster + instance. + + + + Checks a CSS declaration. + the CSS declaration + true, if the validation was successful + + + Sets new validator for CSS declarations. + + validator for CSS declarations: + use + + instance to + use default validation, + use + + instance to support device-cmyk feature + + + + Interface for CSS data type validators. + + + Checks if a value is a valid data type (e.g. a color, an identifier,...). + the value + true, if the value is a valid data type + + + Interface for CSS declaration validators. + + + Checks if a value is a valid CSS declaration. + the CSS declaration + true, if the value is a valid CSS declaration + + + Class that bundles all the CSS declaration validators. + + Class that bundles all the CSS declaration validators. + It validates CSS declarations against the accepted html/css standard. + + + + A map containing all the CSS declaration validators. + + + Validates a CSS declaration. + the CSS declaration + true, if the validation was successful + + + Class that bundles all the CSS declaration validators. + + Class that bundles all the CSS declaration validators. + It extends the default + + to also support device-cmyk color structure. + + + + + + implementation to validate an array of specified element types. + + + + The data type validator. + + + + Creates a new + + instance. + + the data type validator for each array element + + + + + implementation for background properties. + + + + implementation for background properties. + This validator should not be used with non-background properties. + + + + + Creates a new + + instance. + + is background property corresponding to current validator + + + + + + + + implementation for colors. + + + + + + implementation for colors. + + + + + + implementation for elements in an enumeration. + + + + The allowed values. + + + + Creates a new + + instance. + + the allowed values + + + + Creates a new + + instance. + + the allowed values + + + + Creates a new + + instance. + + + Creates a new + + instance. + + Each allowed value will be added with all the modificators. + Each allowed value will be added as well. + + the allowed values + the allowed prefixes + + + Adds new allowed values to the allowedValues. + the allowed values + + + + + implementation for identifiers. + + + + implementation for identifiers. + In CSS, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [a-zA-Z0-9] + and ISO 10646 characters U+00A0 and higher, plus the hyphen (-) and the underscore (_); + they cannot start with a digit, two hyphens, or a hyphen followed by a digit. + Identifiers can also contain escaped characters and any ISO 10646 character as a numeric code (see next item). + For instance, the identifier "B&W?" may be written as "B\&W\?" or "B\26 W\3F". + + + + + + implementation for numeric elements. + + + + + Creates a new + + instance. + + is negative value allowed + + + + + + + + implementation for numeric elements. + + + + + Creates a new + + instance. + + is negative value allowed + + + + + + + + implementation for numeric elements. + + + + + Creates a new + + instance. + + is negative value allowed + + + + + + + + implementation for values for the CSS quotes key. + + + + + + implementation for css transform property . + + + + + + implementation in case multiple types have to be checked. + + + + The allowed data types. + + + + Creates a new + + instance. + + the allowed types + + + + + implementation to validate a single type. + + + + The data type validator. + + + + Creates a new + + instance. + + the data type validator + + + Thrown when the limit on the number of bytes read was violated. + + + Runtime exception that gets thrown if something goes wrong in the HTML to PDF conversion. + + + The Constant INVALID_GRADIENT_VALUE. + + + The Constant INVALID_GRADIENT_TO_SIDE_OR_CORNER_STRING. + + + The Constant INVALID_GRADIENT_COLOR_STOP_VALUE. + + + The Constant NAN. + + + Message in case the font provider doesn't know about any fonts. + + + The Constant UnsupportedEncodingException. + + + + Creates a new + + instance. + + the message + + + Class containing constants to be used in exceptions in the SXP module. + + + Interface for the XML parsing operations that accept XML and return a document node. + + + + Parses XML provided as an + InputStream + and an encoding. + + the Xml stream + + the character set. If + + then parser should detect encoding from stream. + + a document node + + + + Parses XML provided as a + String. + + the Xml string + a document node + + + Implementation of ArrayList that watches out for changes to the contents. + + + Internal static utilities for handling data. + + + Loads and parses a file to a Document. + + Loads and parses a file to a Document. Files that are compressed with gzip (and end in + .gz + or + .z + ) + are supported in addition to uncompressed files. + + file to load + + (optional) character set of input; specify + + to attempt to autodetect. A BOM in + the file will always override this setting. + + base URI of document, to resolve relative links against + Document + + + Parses a Document from an input steam. + input stream to parse. You will need to close it. + character set of input + base URI of document, to resolve relative links against + Document + + + Parses a Document from an input steam, using the provided Parser. + input stream to parse. You will need to close it. + character set of input + base URI of document, to resolve relative links against + + alternate + parser + to use. + + Document + + + Writes the input stream to the output stream. + Writes the input stream to the output stream. Doesn't close them. + input stream to read from + output stream to write to + + + Read the input stream into a byte buffer. + + Read the input stream into a byte buffer. To deal with slow input streams, you may interrupt the thread this + method is executing on. The data read until being interrupted will be available. + + the input stream to read from + the maximum size in bytes to read from the stream. Set to 0 to be unlimited. + the filled byte buffer + + + Parse out a charset from a content type header. + + Parse out a charset from a content type header. If the charset is not supported, returns null (so the default + will kick in.) + + e.g. "text/html; charset=EUC-JP" + "EUC-JP", or null if not found. Charset is trimmed and uppercased. + + + Creates a random string, suitable for use as a mime boundary + + + Simple validation methods. + Simple validation methods. Designed for jsoup internal use + + + Validates that the object is not null + object to test + + + Validates that the object is not null + object to test + message to output if validation fails + + + Validates that the value is true + object to test + + + Validates that the value is true + object to test + message to output if validation fails + + + Validates that the value is false + object to test + + + Validates that the value is false + object to test + message to output if validation fails + + + Validates that the array contains no null elements + the array to test + + + Validates that the array contains no null elements + the array to test + message to output if validation fails + + + Validates that the string is not null and is not empty + the string to test + + + Validates that the string is not null and is not empty + the string to test + message to output if validation fails + + + Cause a failure. + message to output. + + + + A jsoup internal class (so don't use it as there is no contract API) that enables constraints on an Input Stream, + namely a maximum read size, and the ability to Thread.interrupt() the read. + + + + If this InputStream is not already a ConstrainableInputStream, let it be one. + the input stream to (maybe) wrap + the buffer size to use when reading + the maximum size to allow to be read. 0 == infinite. + a constrainable input stream + + + Reads this inputstream to a ByteBuffer. + + Reads this inputstream to a ByteBuffer. The supplied max may be less than the inputstream's max, to support + reading just the first bytes. + + + + Util methods for normalizing strings. + Util methods for normalizing strings. Jsoup internal use only, please don't depend on this API. + + + A minimal String utility class. + + A minimal String utility class. Designed for internal jsoup use only - the API and outcome may change without + notice. + + + + Join a collection of strings by a separator + collection of string objects + string to place between strings + joined string + + + Join a collection of strings by a separator + iterator of string objects + string to place between strings + joined string + + + Join an array of strings by a separator + collection of string objects + string to place between strings + joined string + + + A StringJoiner allows incremental / filtered joining of a set of stringable objects. + 1.14.1 + + + Create a new joiner, that uses the specified separator. + + Create a new joiner, that uses the specified separator. MUST call + + or will leak a thread + local string builder. + + the token to insert between strings + + + Add another item to the joiner, will be separated + + + Append content to the current item; not separated + + + Return the joined string, and release the builder back to the pool. + Return the joined string, and release the builder back to the pool. This joiner cannot be reused. + + + + Returns space padding (up to a max of 30). + amount of padding desired + string of spaces * width + + + Tests if a string is blank: null, empty, or only whitespace (" ", \r\n, \t, etc) + string to test + if string is blank + + + Tests if a string is numeric, i.e. contains only digit characters + string to test + true if only digit chars, false if empty or null or contains non-digit chars + + + Tests if a code point is "whitespace" as defined in the HTML spec. + Tests if a code point is "whitespace" as defined in the HTML spec. Used for output HTML. + code point to test + true if code point is whitespace, false otherwise + + + + Tests if a code point is "whitespace" as defined by what it looks like. + Tests if a code point is "whitespace" as defined by what it looks like. Used for Element.text etc. + + code point to test + true if code point is whitespace, false otherwise + + + + Normalise the whitespace within this string; multiple spaces collapse to a single, and all whitespace characters + (e.g. newline, tab) convert to a simple space + + content to normalise + normalised string + + + After normalizing the whitespace within a string, appends it to a string builder. + builder to append to + string to normalize whitespace within + set to true if you wish to remove any leading whitespace + + + Tests that a String contains only ASCII characters. + scanned string + true if all characters are in range 0 - 127 + + + Create a new absolute URL, from a provided existing absolute URL and a relative URL component. + the existing absolute base URL + the relative URL to resolve. (If it's already absolute, it will be returned) + the resolved absolute URL + + + Create a new absolute URL, from a provided existing absolute URL and a relative URL component. + the existing absolute base URL + the relative URL to resolve. (If it's already absolute, it will be returned) + an absolute URL if one was able to be generated, or the empty string if not + + + Maintains cached StringBuilders in a flyweight pattern, to minimize new StringBuilder GCs. + + Maintains cached StringBuilders in a flyweight pattern, to minimize new StringBuilder GCs. The StringBuilder is + prevented from growing too large. + + Care must be taken to release the builder once its work has been completed, with + + + an empty StringBuilder + + + Release a borrowed builder. + + Release a borrowed builder. Care must be taken not to use the builder after it has been returned, as its + contents may be changed by this method, or by a concurrent thread. + + the StringBuilder to release. + the string value of the released String Builder (as an incentive to release it!). + + + The core public access point to the jsoup functionality. + Jonathan Hedley + + + Parse HTML into a Document. + Parse HTML into a Document. The parser will make a sensible, balanced document tree out of any HTML. + + HTML to parse + + The URL where the HTML was retrieved from. Used to resolve relative URLs to absolute URLs, that occur + before the HTML declares a + <base href> + tag. + + sane HTML + + + Parse HTML into a Document, using the provided Parser. + + Parse HTML into a Document, using the provided Parser. You can provide an alternate parser, such as a simple XML + (non-HTML) parser. + + HTML to parse + + The URL where the HTML was retrieved from. Used to resolve relative URLs to absolute URLs, that occur + before the HTML declares a + <base href> + tag. + + + alternate + parser + to use. + + sane HTML + + + Parse HTML into a Document. + + Parse HTML into a Document. As no base URI is specified, absolute URL detection relies on the HTML including a + <base href> + tag. + + HTML to parse + sane HTML + + + + Parse the contents of a file as HTML. + file to load HTML from + + (optional) character set of file contents. Set to + + to determine from + http-equiv + meta tag, if + present, or fall back to + UTF-8 + (which is often safe to do). + + The URL where the HTML was retrieved from, to resolve relative links against. + sane HTML + + + Parse the contents of a file as HTML. + Parse the contents of a file as HTML. The location of the file is used as the base URI to qualify relative URLs. + + file to load HTML from + + (optional) character set of file contents. Set to + + to determine from + http-equiv + meta tag, if + present, or fall back to + UTF-8 + (which is often safe to do). + + sane HTML + + + + Read an input stream, and parse it to a Document. + input stream to read. Make sure to close it after parsing. + + (optional) character set of file contents. Set to + + to determine from + http-equiv + meta tag, if + present, or fall back to + UTF-8 + (which is often safe to do). + + The URL where the HTML was retrieved from, to resolve relative links against. + sane HTML + + + Read an input stream, and parse it to a Document. + + Read an input stream, and parse it to a Document. You can provide an alternate parser, such as a simple XML + (non-HTML) parser. + + input stream to read. Make sure to close it after parsing. + + (optional) character set of file contents. Set to + + to determine from + http-equiv + meta tag, if + present, or fall back to + UTF-8 + (which is often safe to do). + + The URL where the HTML was retrieved from, to resolve relative links against. + + alternate + parser + to use. + + sane HTML + + + + Parse a fragment of HTML, with the assumption that it forms the + body + of the HTML. + + body HTML fragment + URL to resolve relative URLs against. + sane HTML document + + + + + Parse a fragment of HTML, with the assumption that it forms the + body + of the HTML. + + body HTML fragment + sane HTML document + + + + + Get safe HTML from untrusted input HTML, by parsing input HTML and filtering it through an allow-list of safe + tags and attributes. + + input untrusted HTML (body fragment) + URL to resolve relative URLs against + list of permitted HTML elements + safe HTML (body fragment) + + + + + Use + + instead. + + + + + Get safe HTML from untrusted input HTML, by parsing input HTML and filtering it through a safe-list of permitted + tags and attributes. + + + Get safe HTML from untrusted input HTML, by parsing input HTML and filtering it through a safe-list of permitted + tags and attributes. + + Note that as this method does not take a base href URL to resolve attributes with relative URLs against, those + URLs will be removed, unless the input HTML contains a + <base href> tag + . If you wish to preserve those, use + the + Jsoup#clean(String html, String baseHref, Safelist) + method instead, and enable + Safelist#preserveRelativeLinks(boolean true). + + input untrusted HTML (body fragment) + list of permitted HTML elements + safe HTML (body fragment) + + + + + Use + + instead. + + + + + Get safe HTML from untrusted input HTML, by parsing input HTML and filtering it through a safe-list of + permitted tags and attributes. + + + Get safe HTML from untrusted input HTML, by parsing input HTML and filtering it through a safe-list of + permitted tags and attributes. + The HTML is treated as a body fragment; it's expected the cleaned HTML will be used within the body of an + existing document. If you want to clean full documents, use + + instead, and add + structural tags (html, head, body etc) to the safelist. + + input untrusted HTML (body fragment) + URL to resolve relative URLs against + list of permitted HTML elements + document output settings; use to control pretty-printing and entity escape modes + + safe HTML (body fragment) + + + + + Use + + instead. + + + + Test if the input body HTML has only tags and attributes allowed by the Safelist. + + Test if the input body HTML has only tags and attributes allowed by the Safelist. Useful for form validation. + The input HTML should still be run through the cleaner to set up enforced attributes, and to tidy the output. + Assumes the HTML is a body fragment (i.e. will be used in an existing HTML document body.) + + HTML to test + safelist to test against + true if no tags or attributes were removed; false otherwise + + + + + Use + + instead. + + + + A single key + value attribute. + A single key + value attribute. (Only used for presentation.) + + + Create a new attribute from unencoded (raw) key and value. + attribute key; case is preserved. + attribute value (may be null) + + + + Create a new attribute from unencoded (raw) key and value. + attribute key; case is preserved. + attribute value (may be null) + the containing Attributes (this Attribute is not automatically added to said Attributes) + + + + + Get the attribute key. + the attribute key + + + Set the attribute key; case is preserved. + the new key; must not be null + + + Get the attribute value. + Get the attribute value. Will return an empty string if the value is not set. + the attribute value + + + Check if this Attribute has a value. + Check if this Attribute has a value. Set boolean attributes have no value. + if this is a boolean attribute / attribute without a value + + + Set the attribute value. + the new attribute value; must not be null + + + + Get the HTML representation of this attribute; e.g. + href="index.html". + + HTML + + + + Get the string representation of this attribute, implemented as + . + + string + + + Create a new Attribute from an unencoded key and a HTML attribute encoded value. + assumes the key is not encoded, as can be only run of simple \w chars. + HTML attribute encoded value + attribute + + + Collapsible if it's a boolean attribute and value is empty or same as name + output settings + Returns whether collapsible or not + + + Checks if this attribute name is defined as a boolean attribute in HTML5 + + + The attributes of an Element. + + The attributes of an Element. + + Attributes are treated as a map: there can be only one value associated with an attribute key/name. + + Attribute name and value comparisons are generally case sensitive. By default for HTML, attribute names are + normalized to lower-case on parsing. That means you should use lower-case strings when referring to attributes by + name. + + Jonathan Hedley, jonathan@hedley.net + + + Get an attribute value by key. + the (case-sensitive) attribute key + the attribute value if set; or empty string if not set (or a boolean attribute). + + + + Get an attribute's value by case-insensitive key + the attribute name + the first matching attribute value if set; or empty string if not set (ora boolean attribute). + + + Adds a new attribute. + Adds a new attribute. Will produce duplicates if the key already exists. + + + + Set a new attribute, or replace an existing one by key. + case sensitive attribute key (not null) + attribute value (may be null, to set a boolean attribute) + these attributes, for chaining + + + Set a new boolean attribute, remove attribute if value is false. + case insensitive attribute key + attribute value + these attributes, for chaining + + + Set a new attribute, or replace an existing one by key. + attribute with case sensitive key + these attributes, for chaining + + + Remove an attribute by key. + Remove an attribute by key. Case sensitive. + attribute key to remove + + + Remove an attribute by key. + Remove an attribute by key. Case insensitive. + attribute key to remove + + + Tests if these attributes contain an attribute with this key. + case-sensitive key to check for + true if key exists, false otherwise + + + Tests if these attributes contain an attribute with this key. + key to check for + true if key exists, false otherwise + + + Check if these attributes contain an attribute with a value for this key. + key to check for + true if key exists, and it has a value + + + Check if these attributes contain an attribute with a value for this key. + case-insensitive key to check for + true if key exists, and it has a value + + + Get the number of attributes in this set. + size + + + Test if this Attributes list is empty (size==0). + + + Add all the attributes from the incoming set to this set. + attributes to add to these attributes. + + + Get the attributes as a List, for iteration. + an view of the attributes as an unmodifiable List. + + + + Retrieves a filtered view of attributes that are HTML5 custom data attributes; that is, attributes with keys + starting with + data-. + + map of custom data attributes. + + + Get the HTML representation of these attributes. + HTML + + + Checks if these attributes are equal to another set of attributes, by comparing the two sets + attributes to compare with + if both sets of attributes have the same content + + + Calculates the hashcode of these attributes, by iterating all attributes and summing their hashcodes. + + calculated hashcode + + + Internal method. + Internal method. Lowercases all keys. + + + Internal method. + Internal method. Removes duplicate attribute by name. Settings for case sensitivity of key names. + + case sensitivity + number of removed dupes + + + A Character Data node, to support CDATA sections. + + + Get the unencoded, non-normalized text content of this CDataNode. + unencoded, non-normalized text + + + A comment node. + Jonathan Hedley, jonathan@hedley.net + + + Create a new comment node. + The contents of the comment + + + Get the contents of the comment. + comment content + + + Check if this comment looks like an XML Declaration. + true if it looks like, maybe, it's an XML Declaration. + + + Attempt to cast this comment to an XML Declaration node. + an XML declaration if it could be parsed as one, null otherwise. + + + A data node, for contents of style, script tags etc, where contents should not show in text(). + Jonathan Hedley, jonathan@hedley.net + + + Create a new DataNode. + data contents + + + Get the data contents of this node. + Get the data contents of this node. Will be unescaped and with original new lines, space etc. + data + + + Set the data contents of this node. + unencoded data + this node, for chaining + + + Create a new DataNode from HTML encoded data. + encoded data + base URI + new DataNode + + + A HTML Document. + Jonathan Hedley, jonathan@hedley.net + + + Create a new, empty Document. + base URI of document + + + + + Create a valid, empty shell of a document, suitable for adding more elements to. + baseUri of document + document with html, head, and body elements. + + + Get the URL this Document was parsed from. + + Get the URL this Document was parsed from. If the starting URL is a redirect, + this will return the final URL from which the document was served from. + Will return an empty string if the location is unknown (e.g. if parsed from a String). + + location + + + Returns this Document's doctype. + document type, or null if not set + + + Find the root HTML element, or create it if it doesn't exist. + the root HTML element. + + + + Get this document's + head + element. + + + Get this document's + head + element. + + As a side-effect, if this Document does not already have a HTML structure, it will be created. If you do not want + that, use + #selectFirst("head") + instead. + + + + head + element. + + + + + Get this document's + <body> + or + <frameset> + element. + + + Get this document's + <body> + or + <frameset> + element. + + As a side-effect, if this Document does not already have a HTML structure, it will be created with a + <body> + element. If you do not want that, use + #selectFirst("body") + instead. + + + + body + element for documents with a + <body> + , a new + <body> + element if the document + had no contents, or the outermost + <frameset> element + for frameset documents. + + + + + Get the string contents of the document's + title + element. + + Trimmed title, or empty string if none set. + + + + Set the document's + + element. + + + Set the document's + + element. Updates the existing element, or adds + + to + head + if + not present + + string to set as title + + + Create a new Element, with this document's base uri. + Create a new Element, with this document's base uri. Does not make the new element a child of this document. + + + element tag name (e.g. + a + ) + + new element + + + Normalise the document. + + Normalise the document. This happens after the parse phase so generally does not need to be called. + Moves any text content that is not in the body element into the body. + + this document after normalisation + + + + Set the text of the + body + of this document. + + + Set the text of the + body + of this document. Any existing nodes within the body will be cleared. + + unencoded text + this document + + + Sets the charset used in this document. + + Sets the charset used in this document. This method is equivalent + to + OutputSettings.charset(Charset) + but in addition it updates the + charset / encoding element within the document. + + This enables + meta charset update. + + If there's no element with charset / encoding information yet it will be created. + Obsolete charset / encoding definitions are removed! + Elements used: + + Html: <meta charset="CHARSET"> + + Xml: <?xml version="1.0" encoding="CHARSET"> + + + + Charset + + + + + Returns the charset used in this document. + + Returns the charset used in this document. This method is equivalent + to + . + + Current Charset + + + + + Sets whether the element with charset information in this document is + updated on changes through + Document.charset(Charset) + or not. + + + Sets whether the element with charset information in this document is + updated on changes through + Document.charset(Charset) + or not. + + If set to false (default) there are no elements modified. + + + If true the element updated on charset + changes, false if not + + + + + + Returns whether the element with charset information in this document is + updated on changes through + Document.charset(Charset) + or not. + + + Returns true if the element is updated on charset + changes, false if not + + + + + Ensures a meta charset (html) or xml declaration (xml) with the current + encoding used. + + + Ensures a meta charset (html) or xml declaration (xml) with the current + encoding used. This only applies with + updateMetaCharset + set to + true, otherwise this method does nothing. + + An existing element gets updated with the current charset + + If there's no element yet it will be inserted + + Obsolete elements are removed + + + Elements used: + + Html: <meta charset="CHARSET"> + + Xml: <?xml version="1.0" encoding="CHARSET"> + + + + + + Get the document's current output settings. + the document's current output settings. + + + Set the document's output settings. + new output settings. + this document, for chaining. + + + Get the parser that was used to parse this document. + the parser + + + Set the parser used to create this document. + + Set the parser used to create this document. This parser is then used when further parsing within this document + is required. + + the configured parser to use when further parsing is required for this document. + this document, for chaining. + + + A Document's output settings control the form of the text() and html() methods. + + + + Get the document's current HTML escape mode: base, which provides a limited set of named HTML + entities and escapes other characters as numbered entities for maximum compatibility; or extended, + which uses the complete set of HTML named entities. + + + Get the document's current HTML escape mode: base, which provides a limited set of named HTML + entities and escapes other characters as numbered entities for maximum compatibility; or extended, + which uses the complete set of HTML named entities. + + The default escape mode is base. + + the document's current escape mode + + + + Set the document's escape mode, which determines how characters are escaped when the output character set + does not support a given character:- using either a named or a numbered escape. + + the new escape mode to use + the document's output settings, for chaining + + + + Get the document's current output charset, which is used to control which characters are escaped when + generating HTML (via the html() methods), and which are kept intact. + + + Get the document's current output charset, which is used to control which characters are escaped when + generating HTML (via the html() methods), and which are kept intact. + + Where possible (when parsing from a URL or File), the document's output charset is automatically set to the + input charset. Otherwise, it defaults to UTF-8. + + the document's current charset. + + + Update the document's output charset. + the new charset to use. + the document's output settings, for chaining + + + Update the document's output charset. + the new charset (by name) to use. + the document's output settings, for chaining + + + Get the document's current output syntax. + current syntax + + + Set the document's output syntax. + + Set the document's output syntax. Either + html + , with empty tags and boolean attributes (etc), or + xml + , with self-closing tags. + + serialization syntax + the document's output settings, for chaining + + + Get if pretty printing is enabled. + + Get if pretty printing is enabled. Default is true. If disabled, the HTML output methods will not re-format + the output, and the output will generally look like the input. + + if pretty printing is enabled. + + + Enable or disable pretty printing. + new pretty print setting + this, for chaining + + + Get if outline mode is enabled. + + Get if outline mode is enabled. Default is false. If enabled, the HTML output methods will consider + all tags as block. + + if outline mode is enabled. + + + Enable or disable HTML outline mode. + new outline setting + this, for chaining + + + Get the current tag indent amount, used when pretty printing. + the current indent amount + + + Set the indent amount for pretty printing + + number of spaces to use for indenting each level. Must be + >= + 0. + + this, for chaining + + + The output serialization syntax. + + + + A + <!DOCTYPE> + node. + + + + Create a new doctype element. + the doctype's name + the doctype's public ID + the doctype's system ID + + + Get this doctype's name (when set, or empty string) + doctype name + + + Get this doctype's Public ID (when set, or empty string) + doctype Public ID + + + Get this doctype's System ID (when set, or empty string) + doctype System ID + + + + A HTML element consists of a tag name, attributes, and child nodes (including text nodes and + other elements). + + + A HTML element consists of a tag name, attributes, and child nodes (including text nodes and + other elements). + From an Element, you can extract data, traverse the node graph, and manipulate the HTML. + + Jonathan Hedley, jonathan@hedley.net + + + Create a new, standalone element. + tag name + + + Create a new, standalone Element. + Create a new, standalone Element. (Standalone in that is has no parent.) + tag of this element + the base URI (optional, may be null to inherit from parent, or "" to clear parent's) + + initial attributes (optional, may be null) + + + + + Create a new Element from a Tag and a base URI. + element tag + the base URI of this element. Optional, and will inherit from its parent, if any. + + + + Internal test to check if a nodelist object has been created. + + + Get the name of the tag for this element. + + Get the name of the tag for this element. E.g. + div + . If you are using + case preserving parsing + , this will return the source's original case. + + the tag name + + + Get the normalized name of this Element's tag. + + Get the normalized name of this Element's tag. This will always be the lowercased version of the tag, regardless + of the tag case preserving setting of the parser. For e.g., + <DIV> + and + <div> + both have a + normal name of + div. + + normal name + + + Change (rename) the tag of this element. + + Change (rename) the tag of this element. For example, convert a + <span> + to a + <div> + with + el.tagName("div");. + + new tag name for this element + this element, for chaining + + + + Get the Tag for this element. + the tag object + + + Test if this element is a block-level element. + + Test if this element is a block-level element. (E.g. + <div> == true + or an inline element + <span> == false + ). + + true if block, false if not (and thus inline) + + + + Get the + id + attribute of this element. + + The id attribute, if present, or an empty string if not. + + + + Set the + + attribute of this element. + + the ID value to use + this Element, for chaining + + + Set an attribute value on this element. + + Set an attribute value on this element. If this element already has an attribute with the + key, its value is updated; otherwise, a new attribute is added. + + this element + + + Set a boolean attribute value on this element. + + Set a boolean attribute value on this element. Setting to true sets the attribute value to "" and + marks the attribute as boolean so no value is written out. Setting to false removes the attribute + with the same key if it exists. + + the attribute key + the attribute value + this element + + + Get this element's HTML5 custom data attributes. + + Get this element's HTML5 custom data attributes. Each attribute in the element that has a key + starting with "data-" is included the dataset. + + E.g., the element + <div data-package="jsoup" data-language="Java" class="group">... + has the dataset + package=jsoup, language=java. + + This map is a filtered view of the element's attribute map. Changes to one map (add, remove, update) are reflected + in the other map. + + You can find elements that have data attributes using the + [^data-] + attribute key prefix selector. + + + a map of + key=value + custom data attributes. + + + + Get this element's parent and ancestors, up to the document root. + this element's stack of parents, closest first. + + + Get a child element of this element, by its 0-based index number. + + Get a child element of this element, by its 0-based index number. + + Note that an element can have both mixed Nodes and Elements as children. This method inspects + a filtered list of children that are elements, and the index is based on that filtered list. + + the index number of the element to retrieve + + the child element, if it exists, otherwise throws an + IndexOutOfBoundsException + + + + + Get the number of child nodes of this element that are elements. + + Get the number of child nodes of this element that are elements. + + This method works on the same filtered list like + + . Use + + and + + to get the unfiltered Nodes (e.g. includes TextNodes etc.) + + the number of child nodes that are elements + + + + + Get this element's child elements. + + Get this element's child elements. + + This is effectively a filter on + + to get Element nodes. + + child elements. If this element has no children, returns an empty list. + + + + Maintains a shadow copy of this element's child elements. + Maintains a shadow copy of this element's child elements. If the nodelist is changed, this cache is invalidated. + + a list of child elements + + + Clears the cached shadow child elements. + + + Get this element's child text nodes. + + Get this element's child text nodes. The list is unmodifiable but the text nodes may be manipulated. + + This is effectively a filter on + + to get Text nodes. + + + child text nodes. If this element has no text nodes, returns an + empty list. + + For example, with the input HTML: + <p>One <span>Two</span> Three <br> Four</p> + with the + p + element selected: + + + p.text() + = + "One Two Three Four" + + + p.ownText() + = + "One Three Four" + + + p.children() + = + Elements[<span>, <br>] + + + p.childNodes() + = + List<Node>["One ", <span>, " Three ", <br>, " Four"] + + + p.textNodes() + = + List<TextNode>["One ", " Three ", " Four"] + + + + + + Get this element's child data nodes. + + Get this element's child data nodes. The list is unmodifiable but the data nodes may be manipulated. + + This is effectively a filter on + + to get Data nodes. + + + child data nodes. If this element has no data nodes, returns an + empty list. + + + + + + Find elements that match the + + CSS query, with this element as the starting context. + + + Find elements that match the + + CSS query, with this element as the starting context. + Matched elements may include this element, or any of its children. + This method is generally more powerful to use than the DOM-type + getElementBy* + methods, because + multiple filters can be combined, e.g.: + + + el.select("a[href]") + - finds links ( + a + tags with + href + attributes) + + + el.select("a[href*=example.com]") + - finds links pointing to example.com (loosely) + + + + See the query syntax documentation in + . + + Also known as + querySelectorAll() + in the Web DOM. + + + a + + CSS-like query + + + an + + list containing elements that match the query (empty if none match) + + selector query syntax + + + + Find elements that match the supplied Evaluator. + + Find elements that match the supplied Evaluator. This has the same functionality as + + , but + may be useful if you are running the same query many times (on many documents) and want to save the overhead of + repeatedly parsing the CSS query. + + an element evaluator + + an + + list containing elements that match the query (empty if none match) + + + + + Find the first Element that matches the + + CSS query, with this element as the starting context. + + + Find the first Element that matches the + + CSS query, with this element as the starting context. + + This is effectively the same as calling + element.select(query).first() + , but is more efficient as query + execution stops on the first hit. + + Also known as + querySelector() + in the Web DOM. + + + cssQuery a + + CSS-like query + + + the first matching element, or + + if there is no match. + + + + + Finds the first Element that matches the supplied Evaluator, with this element as the starting context, or + + if none match. + + an element evaluator + + the first matching element (walking down the tree, starting from this element), or + + if none + matchn. + + + + + Checks if this element matches the given + + CSS query. + + + Checks if this element matches the given + + CSS query. Also knows as + matches() + in the Web + DOM. + + + a + + CSS query + + if this element matches the query + + + Check if this element matches the given evaluator. + an element evaluator + if this element matches + + + Find the closest element up the tree of parents that matches the specified CSS query. + + Find the closest element up the tree of parents that matches the specified CSS query. Will return itself, an + ancestor, or + + if there is no such matching element. + + + a + + CSS query + + + the closest ancestor element (possibly itself) that matches the provided evaluator. + + if not + found. + + + + Find the closest element up the tree of parents that matches the specified evaluator. + + Find the closest element up the tree of parents that matches the specified evaluator. Will return itself, an + ancestor, or + + if there is no such matching element. + + a query evaluator + + the closest ancestor element (possibly itself) that matches the provided evaluator. + + if not + found. + + + + Insert a node to the end of this Element's children. + Insert a node to the end of this Element's children. The incoming node will be re-parented. + node to add. + this Element, for chaining + + + + + Insert the given nodes to the end of this Element's children. + nodes to add + this Element, for chaining + + + + Add this element to the supplied parent element, as its next child. + element to which this element will be appended + this element, so that you can continue modifying the element + + + Add a node to the start of this element's children. + node to add. + this element, so that you can add more child nodes or elements. + + + Insert the given nodes to the start of this Element's children. + nodes to add + this Element, for chaining + + + + Inserts the given child nodes into this element at the specified index. + + Inserts the given child nodes into this element at the specified index. Current nodes will be shifted to the + right. The inserted nodes will be moved from their current parent. To prevent moving, copy the nodes first. + + + 0-based index to insert children at. Specify + 0 + to insert at the start, + -1 + at the + end + + child nodes to insert + this element, for chaining. + + + Inserts the given child nodes into this element at the specified index. + + Inserts the given child nodes into this element at the specified index. Current nodes will be shifted to the + right. The inserted nodes will be moved from their current parent. To prevent moving, copy the nodes first. + + + 0-based index to insert children at. Specify + 0 + to insert at the start, + -1 + at the + end + + child nodes to insert + this element, for chaining. + + + Inserts the given child node into this element at the specified index. + + Inserts the given child node into this element at the specified index. Current node will be shifted to the + right. The inserted nodes will be moved from their current parent. To prevent moving, copy the node first. + + + 0-based index to insert children at. Specify + 0 + to insert at the start, + -1 + at the + end + + child node to insert + this element, for chaining. + + + Create a new element by tag name, and add it as the last child. + + the name of the tag (e.g. + div + ). + + + the new element, to allow you to add content to it, e.g.: + parent.appendElement("h1").attr("id", "header").text("Welcome"); + + + + Create a new element by tag name, and add it as the first child. + + the name of the tag (e.g. + div + ). + + + the new element, to allow you to add content to it, e.g.: + parent.prependElement("h1").attr("id", "header").text("Welcome"); + + + + Create and append a new TextNode to this element. + the unencoded text to add + this element + + + Create and prepend a new TextNode to this element. + the unencoded text to add + this element + + + Add inner HTML to this element. + Add inner HTML to this element. The supplied HTML will be parsed, and each node appended to the end of the children. + + HTML to add inside this element, after the existing HTML + this element + + + + Add inner HTML into this element. + Add inner HTML into this element. The supplied HTML will be parsed, and each node prepended to the start of the element's children. + + HTML to add inside this element, before the existing HTML + this element + + + + Insert the specified HTML into the DOM before this element (as a preceding sibling). + HTML to add before this element + this element, for chaining + + + + Insert the specified node into the DOM before this node (as a preceding sibling). + to add before this element + this Element, for chaining + + + + Insert the specified HTML into the DOM after this element (as a following sibling). + HTML to add after this element + this element, for chaining + + + + Insert the specified node into the DOM after this node (as a following sibling). + to add after this element + this element, for chaining + + + + Remove all of the element's child nodes. + Remove all of the element's child nodes. Any attributes are left as-is. + this element + + + Wrap the supplied HTML around this element. + + HTML to wrap around this element, e.g. + <div class="head"></div> + . Can be arbitrarily deep. + + this element, for chaining. + + + Get a CSS selector that will uniquely select this element. + + Get a CSS selector that will uniquely select this element. + + If the element has an ID, returns #id; + otherwise returns the parent (if any) CSS selector, followed by + '>' + , + followed by a unique selector for the element (tag.class.class:nth-child(n)). + + the CSS Path that can be used to retrieve the element in a selector. + + + Get sibling elements. + + Get sibling elements. If the element has no sibling elements, returns an empty list. An element is not a sibling + of itself, so will not be included in the returned list. + + sibling elements + + + Gets the next sibling element of this element. + + Gets the next sibling element of this element. E.g., if a + div + contains two + p + s, + the + nextElementSibling + of the first + p + is the second + p. + + This is similar to + + , but specifically finds only Elements + + the next element, or null if there is no next element + + + + Get each of the sibling elements that come after this element. + each of the element siblings after this element, or an empty list if there are no next sibling elements + + + + Gets the previous element sibling of this element. + the previous element, or null if there is no previous element + + + + Get each of the element siblings before this element. + the previous element siblings, or an empty list if there are none. + + + Gets the first Element sibling of this element. + Gets the first Element sibling of this element. That may be this element. + the first sibling that is an element (aka the parent's first element child) + + + Get the list index of this element in its element sibling list. + + Get the list index of this element in its element sibling list. I.e. if this is the first element + sibling, returns 0. + + position in element sibling list + + + Gets the last element sibling of this element. + Gets the last element sibling of this element. That may be this element. + the last sibling that is an element (aka the parent's last element child) + + + Finds elements, including and recursively under this element, with the specified tag name. + The tag name to search for (case insensitively). + a matching unmodifiable list of elements. Will be empty if this element and none of its children match. + + + + Find an element by ID, including or under this element. + + Find an element by ID, including or under this element. + + Note that this finds the first matching ID, starting with this element. If you search down from a different + starting point, it is possible to find a different element by ID. For unique element by ID within a Document, + use + + + The ID to search for. + The first matching element by ID, starting with this element, or null if none found. + + + Find elements that have this class, including or under this element. + + Find elements that have this class, including or under this element. Case insensitive. + + Elements can have multiple classes (e.g. + <div class="header round first"> + . This method + checks each class, so you can find the above with + el.getElementsByClass("header");. + + the name of the class to search for. + elements with the supplied class name, empty if none + + + + + Find elements that have a named attribute set. + Find elements that have a named attribute set. Case insensitive. + + name of the attribute, e.g. + href + + elements that have this attribute, empty if none + + + Find elements that have an attribute name starting with the supplied prefix. + + Find elements that have an attribute name starting with the supplied prefix. Use + data- + to find elements + that have HTML5 datasets. + + + name prefix of the attribute e.g. + data- + + elements that have attribute names that start with with the prefix, empty if none. + + + Find elements that have an attribute with the specific value. + Find elements that have an attribute with the specific value. Case insensitive. + name of the attribute + value of the attribute + elements that have this attribute with this value, empty if none + + + Find elements that either do not have this attribute, or have it with a different value. + Find elements that either do not have this attribute, or have it with a different value. Case insensitive. + + name of the attribute + value of the attribute + elements that do not have a matching attribute + + + Find elements that have attributes that start with the value prefix. + Find elements that have attributes that start with the value prefix. Case insensitive. + name of the attribute + start of attribute value + elements that have attributes that start with the value prefix + + + Find elements that have attributes that end with the value suffix. + Find elements that have attributes that end with the value suffix. Case insensitive. + name of the attribute + end of the attribute value + elements that have attributes that end with the value suffix + + + Find elements that have attributes whose value contains the match string. + Find elements that have attributes whose value contains the match string. Case insensitive. + name of the attribute + substring of value to search for + elements that have attributes containing this text + + + Find elements that have attributes whose values match the supplied regular expression. + name of the attribute + compiled regular expression to match against attribute values + elements that have attributes matching this regular expression + + + Find elements that have attributes whose values match the supplied regular expression. + name of the attribute + + regular expression to match against attribute values. + You can use embedded flags + (such as (?i) and (?m) to control regex options. + + elements that have attributes matching this regular expression + + + Find elements whose sibling index is less than the supplied index. + 0-based index + elements less than index + + + Find elements whose sibling index is greater than the supplied index. + 0-based index + elements greater than index + + + Find elements whose sibling index is equal to the supplied index. + 0-based index + elements equal to index + + + Find elements that contain the specified string. + + Find elements that contain the specified string. The search is case insensitive. The text may appear directly + in the element, or in any of its descendants. + + to look for in the element's text + elements that contain the string, case insensitive. + + + + Find elements that directly contain the specified string. + + Find elements that directly contain the specified string. The search is case insensitive. The text must appear directly + in the element, not in any of its descendants. + + to look for in the element's own text + elements that contain the string, case insensitive. + + + + Find elements whose text matches the supplied regular expression. + regular expression to match text against + elements matching the supplied regular expression. + + + + Find elements whose text matches the supplied regular expression. + + regular expression to match text against. + You can use embedded flags + (such as (?i) and (?m) to control regex options. + + elements matching the supplied regular expression. + + + + Find elements whose own text matches the supplied regular expression. + regular expression to match text against + elements matching the supplied regular expression. + + + + Find elements whose own text matches the supplied regular expression. + + regular expression to match text against. + You can use embedded flags + (such as (?i) and (?m) to control regex options. + + elements matching the supplied regular expression. + + + + Find all elements under this element (including self, and children of children). + all elements + + + Gets the normalized, combined text of this element and all its children. + + Gets the normalized, combined text of this element and all its children. Whitespace is normalized and + trimmed. + For example, given HTML + <p>Hello <b>there</b> now! </p> + , + p.text() + returns + + "Hello there + now!" + + If you do not want normalized text, use + + . If you want just the text of this node (and not + children), use + + Note that this method returns the textual content that would be presented to a reader. The contents of data + nodes (such as + <script> + tags are not considered text. Use + + or + + to retrieve + that content. + + unencoded, normalized text, or empty string if none. + + + + + + + Get the (unencoded) text of all children of this element, including any newlines and spaces present in the + original. + + unencoded, un-normalized text + + + + Gets the (normalized) text owned by this element only; does not get the combined text of all children. + + + Gets the (normalized) text owned by this element only; does not get the combined text of all children. + + For example, given HTML + <p>Hello <b>there</b> now!</p> + , + p.ownText() + returns + "Hello now!" + , + whereas + p.text() + returns + "Hello there now!". + Note that the text within the + b + element is not returned, as it is not a direct child of the + p + element. + + unencoded text, or empty string if none. + + + + + Set the text of this element. + + Set the text of this element. Any existing contents (text or elements) will be cleared. + + As a special case, for + <script> + and + <style> + tags, the input text will be treated as data, + not visible text. + + unencoded text + this element + + + Test if this element has any text content (that is not just whitespace). + true if element has non-blank text content. + + + Get the combined data of this element. + + Get the combined data of this element. Data is e.g. the inside of a + <script> + tag. Note that data is NOT the + text of the element. Use + + to get the text that would be visible to a user, and + data() + for the contents of scripts, comments, CSS styles, etc. + + the data, or empty string if none + + + + + Gets the literal value of this element's "class" attribute, which may include multiple class names, space + separated. + + + Gets the literal value of this element's "class" attribute, which may include multiple class names, space + separated. (E.g. on <div class="header gray"> returns, "header gray") + + The literal class attribute, or empty string if no class attribute set. + + + Get all of the element's class names. + + Get all of the element's class names. E.g. on element + <div class="header gray"> + , + returns a set of two elements + "header", "gray" + . Note that modifications to this set are not pushed to + the backing + class + attribute; use the + + method to persist them. + + set of classnames, empty if no class attribute + + + + Set the element's + class + attribute to the supplied class names. + + set of classes + this element, for chaining + + + Tests if this element has a class. + Tests if this element has a class. Case insensitive. + name of class to check for + true if it does, false if not + + + + Add a class name to this element's + class + attribute. + + class name to add + this element + + + + Remove a class name from this element's + class + attribute. + + class name to remove + this element + + + + Toggle a class name on this element's + class + attribute: if present, remove it; otherwise add it. + + class name to toggle + this element + + + Get the value of a form element (input, textarea, etc). + the value of the form element, or empty string if not set. + + + Set the value of a form element (input, textarea, etc). + value to set + this element (for chaining) + + + Retrieves the element's inner HTML. + + Retrieves the element's inner HTML. E.g. on a + <div> + with one empty + <p> + , would return + <p></p> + . (Whereas + + would return + <div><p></p></div> + .) + + String of HTML. + + + + Set this element's inner HTML. + Set this element's inner HTML. Clears the existing HTML first. + HTML to parse and set into this element + this element + + + + HTML entities, and escape routines. + + HTML entities, and escape routines. Source: W3C + HTML named character references. + + + + Restricted entities suitable for XHTML output: lt, gt, amp, and quot only. + + + Default HTML output entities. + + + Complete HTML entities. + + + Check if the input is a known named entity + the possible entity name (e.g. "lt" or "amp") + true if a known named entity + + + Check if the input is a known named entity in the base entity set. + the possible entity name (e.g. "lt" or "amp") + true if a known named entity in the base set + + + + Get the character(s) represented by the named entity + entity (e.g. "lt" or "amp") + the string value of the character(s) represented by this entity, or "" if not defined + + + HTML escape an input string. + + HTML escape an input string. That is, + < + is returned as + &lt; + + the un-escaped string to escape + the output settings to use + the escaped string + + + HTML escape an input string, using the default settings (UTF-8, base entities). + + HTML escape an input string, using the default settings (UTF-8, base entities). That is, + < + is returned as + &lt; + + the un-escaped string to escape + the escaped string + + + Un-escape an HTML escaped string. + + Un-escape an HTML escaped string. That is, + &lt; + is returned as + <. + + the HTML string to un-escape + the unescaped string + + + Unescape the input string. + to un-HTML-escape + if "strict" (that is, requires trailing ';' char, otherwise that's optional) + unescaped string + + + Holds packed data that represents Entity name=value pairs. + Holds packed data that represents Entity name=value pairs. Parsed by Entities, created by BuildEntities. + + + + A HTML Form Element provides ready access to the form fields/controls that are associated with it. + + + A HTML Form Element provides ready access to the form fields/controls that are associated with it. It also allows a + form to easily be submitted. + + + + Create a new, standalone form element. + tag of this element + the base URI + initial attributes + + + Get the list of form control elements associated with this form. + form controls associated with this element. + + + Add a form control element to this form. + form control to add + this form element, for chaining + + + Get the data that this form submits. + + Get the data that this form submits. The returned list is a copy of the data, and changes to the contents of the + list will not be reflected in the DOM. + + a list of key vals + + + The base, abstract Node model. + The base, abstract Node model. Elements, Documents, Comments etc are all Node instances. + Jonathan Hedley, jonathan@hedley.net + + + Default constructor. + Default constructor. Doesn't setup base uri, children, or attributes; use with caution. + + + Get the node name of this node. + Get the node name of this node. Use for debugging purposes and not logic switching (for that, use instanceof). + + node name + + + Check if this Node has an actual Attributes object. + + + Checks if this node has a parent. + + Checks if this node has a parent. Nodes won't have parents if (e.g.) they are newly created and not added as a child + to an existing node, or if they are a + + . In such cases, + + will return + . + + if this node has a parent. + + + Get an attribute's value by its key. + + Get an attribute's value by its key. Case insensitive + + To get an absolute URL from an attribute that may be a relative URL, prefix the key with abs, + which is a shortcut to the + + method. + + E.g.: +
    String url = a.attr("abs:href");
    +
    + The attribute key. + The attribute, or empty string if not present (to avoid nulls). + + + +
    + + Get all of the element's attributes. + attributes (which implements iterable, in same order as presented in original HTML). + + + Set an attribute (key=value). + + Set an attribute (key=value). If the attribute already exists, it is replaced. The attribute key comparison is + case insensitive. The key will be set with case sensitivity as set in the parser settings. + + The attribute key. + The attribute value. + this (for chaining) + + + Test if this element has an attribute. + Test if this element has an attribute. Case insensitive + The attribute key to check. + true if the attribute exists, false if not. + + + Remove an attribute from this node. + The attribute to remove. + this (for chaining) + + + Clear (remove) all of the attributes in this node. + this, for chaining + + + Get the base URI that applies to this node. + + Get the base URI that applies to this node. Will return an empty string if not defined. Used to make relative links + absolute. + + base URI + + + + Set the baseUri for just this node (not its descendants), if this Node tracks base URIs. + new URI + + + Update the base URI of this node and all of its descendants. + base URI to set + + + + Get an absolute URL from a URL attribute that may be relative (such as an <a href> or + <img src>). + + + Get an absolute URL from a URL attribute that may be relative (such as an <a href> or + <img src>). + + E.g.: String absUrl = linkEl.absUrl("href"); + + If the attribute value is already absolute (i.e. it starts with a protocol, like + http:// or https:// etc), and it successfully parses as a URL, the attribute is + returned directly. Otherwise, it is treated as a URL relative to the element's + + , and made + absolute using that. + + As an alternate, you can use the + + method with the abs: prefix, e.g.: + String absUrl = linkEl.attr("abs:href"); + + The attribute key + + An absolute URL if one could be made, or an empty string (not null) if the attribute was missing or + could not be made successfully into a URL. + + + + + + Get a child node by its 0-based index. + index of child node + + the child node at this index. Throws a + IndexOutOfBoundsException + if the index is out of bounds. + + + + Get this node's children. + + Get this node's children. Presented as an unmodifiable list: new children can not be added, but the child nodes + themselves can be manipulated. + + list of children. If no children, returns an empty list. + + + Returns a deep copy of this node's children. + + Returns a deep copy of this node's children. Changes made to these nodes will not be reflected in the original + nodes + + a deep copy of this node's children + + + Get the number of child nodes that this node holds. + the number of child nodes that this node holds. + + + Delete all this node's children. + this node, for chaining + + + Gets this node's parent node. + parent node; or null if no parent. + + + + Gets this node's parent node. + Gets this node's parent node. Not overridable by extending classes, so useful if you really just need the Node type. + + parent node; or null if no parent. + + + Get this node's root node; that is, its topmost ancestor. + + Get this node's root node; that is, its topmost ancestor. If this node is the top ancestor, returns + this. + + topmost ancestor. + + + Gets the Document associated with this Node. + the Document associated with this Node, or null if there is no such Document. + + + Remove (delete) this node from the DOM tree. + Remove (delete) this node from the DOM tree. If this node has children, they are also removed. + + + Insert the specified HTML into the DOM before this node (as a preceding sibling). + HTML to add before this node + this node, for chaining + + + + Insert the specified node into the DOM before this node (as a preceding sibling). + to add before this node + this node, for chaining + + + + Insert the specified HTML into the DOM after this node (as a following sibling). + HTML to add after this node + this node, for chaining + + + + Insert the specified node into the DOM after this node (as a following sibling). + to add after this node + this node, for chaining + + + + Wrap the supplied HTML around this node. + + HTML to wrap around this node, e.g. + <div class="head"></div> + . Can be arbitrarily deep. If + the input HTML does not parse to a result starting with an Element, this will be a no-op. + + this node, for chaining. + + + Removes this node from the DOM, and moves its children up into the node's parent. + + Removes this node from the DOM, and moves its children up into the node's parent. This has the effect of dropping + the node but keeping its children. + + For example, with the input html: + + <div>One <span>Two <b>Three</b></span></div> + Calling + element.unwrap() + on the + span + element will result in the html: + + <div>One Two <b>Three</b></div> + and the + "Two " + + + being returned. + + the first child of this node, after the node has been unwrapped. @{code Null} if the node had no children. + + + + + + Replace this node in the DOM with the supplied node. + the node that will will replace the existing node. + + + Retrieves this node's sibling nodes. + + Retrieves this node's sibling nodes. Similar to + node.parent.childNodes() + , but does not + include this node (a node is not a sibling of itself). + + node siblings. If the node has no parent, returns an empty list. + + + Get this node's next sibling. + next sibling, or @{code null} if this is the last sibling + + + Get this node's previous sibling. + the previous sibling, or @{code null} if this is the first sibling + + + Get the list index of this node in its node sibling list. + + Get the list index of this node in its node sibling list. E.g. if this is the first node + sibling, returns 0. + + position in node sibling list + + + + Perform a depth-first traversal through this node and its descendants. + the visitor callbacks to perform on each node + this node, for chaining + + + Perform a depth-first filtering through this node and its descendants. + the filter callbacks to perform on each node + this node, for chaining + + + Get the outer HTML of this node. + + Get the outer HTML of this node. For example, on a + p + element, may return + <p>Para</p>. + + outer HTML + + + + + Get the outer HTML of this node. + accumulator to place HTML into + + + + Write this node and its children to the given + . + + + the + + to write to. + + + the supplied + + , for chaining. + + + + Gets this node's outer HTML. + outer HTML. + + + + Check if this node is the same instance of another (object identity test). + + Check if this node is the same instance of another (object identity test). + + For an node value equality check, see + + + other object to compare to + true if the content of this node is the same as the other + + + + Check if this node is has the same content as another node. + + Check if this node is has the same content as another node. A node is considered the same if its name, attributes and content match the + other node; particularly its position in the tree does not influence its similarity. + + other object to compare to + true if the content of this node is the same as the other + + + Create a stand-alone, deep copy of this node, and all of its children. + + Create a stand-alone, deep copy of this node, and all of its children. The cloned node will have no siblings or + parent node. As a stand-alone object, any changes made to the clone or any of its children will not impact the + original node. + + The cloned node may be adopted into another Document or node structure using + . + + a stand-alone cloned node, including clones of any children + + + + Create a stand-alone, shallow copy of this node. + + Create a stand-alone, shallow copy of this node. None of its children (if any) will be cloned, and it will have + no parent or sibling nodes. + + a single independent copy of this node + + + + Internal helpers for Nodes, to keep the actual node APIs relatively clean. + + Internal helpers for Nodes, to keep the actual node APIs relatively clean. A jsoup internal class, so don't use it as + there is no contract API). + + + + + Get the output setting for this node, or if this node has no document (or parent), retrieve the default output + settings + + + + Get the parser that was used to make this node, or the default HTML parser if it has no parent. + + + + Represents a + + as an + + , to enable text nodes to be selected with + the + + + :matchText + syntax. + + + + A text node. + Jonathan Hedley, jonathan@hedley.net + + + Create a new TextNode representing the supplied (unencoded) text). + raw text + + + + Get the text content of this text node. + Unencoded, normalised text. + + + + Set the text content of this text node. + unencoded text + this, for chaining + + + Get the (unencoded) text of this text node, including any newlines and spaces present in the original. + + text + + + Test if this text node is blank -- that is, empty or only whitespace (including newlines). + true if this document is empty or only whitespace, false if it contains any text content. + + + Split this text node into two nodes at the specified string offset. + + Split this text node into two nodes at the specified string offset. After splitting, this node will contain the + original text up to the offset, and will have a new text node sibling containing the text after the offset. + + string offset point to split node at. + the newly created text node containing the text after the offset. + + + Create a new TextNode from HTML encoded (aka escaped) data. + Text containing encoded HTML (e.g. &lt;) + TextNode containing unencoded data (e.g. <) + + + An XML Declaration. + + + Create a new XML declaration + of declaration + is processing instruction + + + Get the name of this declaration. + name of this declaration. + + + Get the unencoded XML declaration. + XML declaration + + + CharacterReader consumes tokens off a string. + CharacterReader consumes tokens off a string. Used internally by jsoup. API subject to changes. + + + Gets the current cursor position in the content. + current position + + + Tests if all the content has been read. + true if nothing left to read. + + + Get the char at the current position. + char + + + Unconsume one character (bufPos--). + Unconsume one character (bufPos--). MUST only be called directly after a consume(), and no chance of a bufferUp. + + + + Moves the current position by one. + + + Returns the number of characters between the current position and the next instance of the input char + + scan target + offset between current position and next instance of target. -1 if not found. + + + Returns the number of characters between the current position and the next instance of the input sequence + + scan target + offset between current position and next instance of target. -1 if not found. + + + Reads characters up to the specific char. + the delimiter + the chars read + + + Read characters until the first of any delimiters is found. + delimiters to scan for + characters read up to the matched delimiter. + + + Caches short strings, as a flywheel pattern, to reduce GC load. + + Caches short strings, as a flywheel pattern, to reduce GC load. Just for this doc, to prevent leaks. +

    + Simplistic, and on hash collisions just falls back to creating a new string, vs a full HashMap with Entry list. + That saves both having to create objects as hash keys, and running through the entry list, at the expense of + some more duplicates. + + + +

    Check if the value of the provided range equals the string. +
    + + HTML Tree Builder; creates a DOM from Tokens. + + + 11.2.5.2 Closing elements that have implied end tags + + 11.2.5.2 Closing elements that have implied end tags + + When the steps below require the UA to generate implied end tags, then, while the current node is a dd element, a + dt element, an li element, an option element, an optgroup element, a p element, an rp element, or an rt element, + the UA must pop the current node off the stack of open elements. + + + If a step requires the UA to generate implied end tags but lists an element to exclude from the + process, then the UA must perform the above steps as if that element was not in the above list. + + + + The Tree Builder's current state. + The Tree Builder's current state. Each state embodies the processing for the state, and transitions to other states. + + + + A Parse Error records an error in the input HTML that occurs in either the tokenisation or the tree building phase. + + + + Retrieve the error message. + the error message. + + + Retrieves the offset of the error. + error offset within input + + + A container for ParseErrors. + Jonathan Hedley + + + Create a new ParseErrorList with the same settings, but no errors in the list + initial and max size details to copy + + + + Parses HTML into a + . + + + Parses HTML into a + + . Generally best to use one of the more convenient parse methods + in + . + + + + Create a new Parser, using the specified TreeBuilder + TreeBuilder to use to parse input into Documents. + + + Creates a new Parser as a deep copy of this; including initializing a new TreeBuilder. + Creates a new Parser as a deep copy of this; including initializing a new TreeBuilder. Allows independent (multi-threaded) use. + + a copied parser + + + Get the TreeBuilder currently in use. + current TreeBuilder. + + + Update the TreeBuilder used when parsing content. + current TreeBuilder + this, for chaining + + + Check if parse error tracking is enabled. + current track error state. + + + Enable or disable parse error tracking for the next parse. + the maximum number of errors to track. Set to 0 to disable. + this, for chaining + + + Retrieve the parse errors, if any, from the last parse. + list of parse errors, up to the size of the maximum errors tracked. + + + (An internal method, visible for Element. + + (An internal method, visible for Element. For HTML parse, signals that script and style text should be treated as + Data Nodes). + + + + Parse HTML into a Document. + HTML to parse + base URI of document (i.e. original fetch location), for resolving relative URLs. + parsed Document + + + Parse a fragment of HTML into a list of nodes. + Parse a fragment of HTML into a list of nodes. The context element, if supplied, supplies parsing context. + + the fragment of HTML to parse + + (optional) the element that this HTML fragment is being parsed for (i.e. for inner HTML). This + provides stack context (for implicit element creation). + + base URI of document (i.e. original fetch location), for resolving relative URLs. + list of nodes parsed from the input HTML. Note that the context element, if supplied, is not modified. + + + + Parse a fragment of HTML into a list of nodes. + Parse a fragment of HTML into a list of nodes. The context element, if supplied, supplies parsing context. + + the fragment of HTML to parse + + (optional) the element that this HTML fragment is being parsed for (i.e. for inner HTML). This + provides stack context (for implicit element creation). + + base URI of document (i.e. original fetch location), for resolving relative URLs. + list to add errors to + list of nodes parsed from the input HTML. Note that the context element, if supplied, is not modified. + + + + Parse a fragment of XML into a list of nodes. + the fragment of XML to parse + base URI of document (i.e. original fetch location), for resolving relative URLs. + list of nodes parsed from the input XML. + + + + Parse a fragment of HTML into the + body + of a Document. + + fragment of HTML + base URI of document (i.e. original fetch location), for resolving relative URLs. + Document, with empty head, and HTML parsed into body + + + Utility method to unescape HTML entities from a string + HTML escaped string + if the string is to be escaped in strict mode (as attributes are) + an unescaped string + + + Create a new HTML parser. + + Create a new HTML parser. This parser treats input as HTML5, and enforces the creation of a normalised document, + based on a knowledge of the semantics of the incoming tags. + + a new HTML parser. + + + Create a new XML parser. + + Create a new XML parser. This parser assumes no knowledge of the incoming tags and does not treat it as HTML, + rather creates a simple tree directly from the input. + + a new simple XML parser. + + + Controls parser settings, to optionally preserve tag and/or attribute name case. + + + HTML default settings: both tag and attribute names are lower-cased during parsing. + + + Preserve both tag and attribute case. + + + Returns true if preserving tag name case. + + + Returns true if preserving attribute case. + + + Define parse settings. + preserve tag case? + preserve attribute name case? + + + Normalizes a tag name according to the case preservation setting. + + + Normalizes an attribute according to the case preservation setting. + + + HTML Tag capabilities. + Jonathan Hedley, jonathan@hedley.net + + + Get this tag's name. + the tag's name + + + Get this tag's normalized (lowercased) name. + the tag's normal name. + + + Get a Tag by name. + + Get a Tag by name. If not previously defined (unknown), returns a new generic tag, that can do anything. + + Pre-defined tags (P, DIV etc) will be ==, but unknown tags are not registered and will only .equals(). + + Name of tag, e.g. "p". Case insensitive. + used to control tag name sensitivity + The tag, either defined or new generic. + + + Get a Tag by name. + + Get a Tag by name. If not previously defined (unknown), returns a new generic tag, that can do anything. + + Pre-defined tags (P, DIV etc) will be ==, but unknown tags are not registered and will only .equals(). + + Name of tag, e.g. "p". Case sensitive. + The tag, either defined or new generic. + + + Gets if this is a block tag. + if block tag + + + Gets if this tag should be formatted as a block (or as inline) + if should be formatted as block or inline + + + Gets if this tag is an inline tag. + if this tag is an inline tag. + + + Get if this is an empty tag + if this is an empty tag + + + Get if this tag is self closing. + if this tag should be output as self closing. + + + Get if this is a pre-defined tag, or was auto created on parsing. + if a known tag + + + Check if this tagname is a known tag. + name of tag + if known HTML tag + + + Get if this tag should preserve whitespace within child text nodes. + if preserve whitespace + + + Get if this tag represents a control associated with a form. + Get if this tag represents a control associated with a form. E.g. input, textarea, output + if associated with a form + + + Get if this tag represents an element that should be submitted with a form. + Get if this tag represents an element that should be submitted with a form. E.g. input, option + if submittable with a form + + + Parse tokens for the Tokeniser. + + + Reset the data represent by this token, for reuse. + + Reset the data represent by this token, for reuse. Prevents the need to create transfer objects for every + piece of data, which immediately get GCed. + + + + Preserves case + + + Lower case + + + Readers the input stream into tokens. + + + Utility method to consume reader and unescape entities found within. + if the text to be unescaped is in an attribute + unescaped string from reader + + + States and transition activations for the Tokeniser. + + + Handles RawtextEndTagName, ScriptDataEndTagName, and ScriptDataEscapedEndTagName. + + Handles RawtextEndTagName, ScriptDataEndTagName, and ScriptDataEscapedEndTagName. Same body impl, just + different else exit transitions. + + + + handles data in title, textarea etc + + + A character queue with parsing helpers. + Jonathan Hedley + + + Create a new TokenQueue. + string of data to back queue. + + + Is the queue empty? + true if no data left in queue. + + + Retrieves but does not remove the first character from the queue. + First character, or 0 if empty. + + + Add a character to the start of the queue (will be the next character retrieved). + character to add + + + Add a string to the start of the queue. + string to add. + + + Tests if the next characters on the queue match the sequence. + Tests if the next characters on the queue match the sequence. Case insensitive. + String to check queue for. + true if the next characters match. + + + Case sensitive match test. + string to case sensitively check for + true if matched, false if not + + + Tests if the next characters match any of the sequences. + Tests if the next characters match any of the sequences. Case insensitive. + list of strings to case insensitively check for + true of any matched, false if none did + + + + Tests if the queue matches the sequence (as with match), and if they do, removes the matched string from the + queue. + + String to search for, and if found, remove from queue. + true if found and removed, false if not found. + + + Tests if queue starts with a whitespace character. + if starts with whitespace + + + Test if the queue matches a word character (letter or digit). + if matches a word character + + + Drops the next character off the queue. + + + Consume one character off queue. + first character on queue. + + + Consumes the supplied sequence of the queue. + + Consumes the supplied sequence of the queue. If the queue does not start with the supplied sequence, will + throw an illegal state exception -- but you should be running match() against that condition. + + Case insensitive. + + sequence to remove from head of queue. + + + Pulls a string off the queue, up to but exclusive of the match sequence, or to the queue running out. + + String to end on (and not include in return, but leave on queue). Case sensitive. + + The matched data consumed from queue. + + + Consumes to the first sequence provided, or to the end of the queue. + Consumes to the first sequence provided, or to the end of the queue. Leaves the terminator on the queue. + + any number of terminators to consume to. Case insensitive. + consumed string + + + Pulls a string off the queue (like consumeTo), and then pulls off the matched string (but does not return it). + + + Pulls a string off the queue (like consumeTo), and then pulls off the matched string (but does not return it). + + If the queue runs out of characters before finding the seq, will return as much as it can (and queue will go + isEmpty() == true). + + String to match up to, and not include in return, and to pull off queue. Case sensitive. + + Data matched from queue. + + + Pulls a balanced string off the queue. + + Pulls a balanced string off the queue. E.g. if queue is "(one (two) three) four", (,) will return "one (two) three", + and leave " four" on the queue. Unbalanced openers and closers can be quoted (with ' or ") or escaped (with \). Those escapes will be left + in the returned string, which is suitable for regexes (where we need to preserve the escape), but unsuitable for + contains text strings; use unescape for that. + + opener + closer + data matched from the queue + + + Unescape a \ escaped string. + backslash escaped string + unescaped string + + + Pulls the next run of whitespace characters of the queue. + Whether consuming whitespace or not + + + Retrieves the next run of word type (letter or digit) off the queue. + String of word characters from queue, or empty string if none. + + + Consume an tag name off the queue (word or :, _, -) + tag name + + + Consume a CSS element selector (tag name, but | instead of : for namespaces (or *| for wildcard namespace), to not conflict with :pseudo selects). + + tag name + + + + Consume a CSS identifier (ID or class) off the queue (letter, digit, -, _) + http://www.w3.org/TR/CSS2/syndata.html#value-def-identifier + + identifier + + + Consume an attribute key off the queue (letter, digit, -, _, :") + attribute key + + + Consume and return whatever is left on the queue. + remained of queue. + + + Jonathan Hedley + + + Create a new copy of this TreeBuilder + copy, ready for a new parse + + + If the parser is tracking errors, add an error at the current position. + error message + + + (An internal method, visible for Element. + + (An internal method, visible for Element. For HTML parse, signals that script and style text should be treated as + Data Nodes). + + + + + Use the + XmlTreeBuilder + when you want to parse XML without any of the HTML DOM rules being applied to the + document. + + + Use the + XmlTreeBuilder + when you want to parse XML without any of the HTML DOM rules being applied to the + document. + + Usage example: + Document xmlDoc = Jsoup.parse(html, baseUrl, Parser.xmlParser()); + + Jonathan Hedley + + + If the stack contains an element with this tag's name, pop up the stack to remove the first occurrence. + + + If the stack contains an element with this tag's name, pop up the stack to remove the first occurrence. If not + found, skips. + + tag to close + + + The safelist based HTML cleaner. + + The safelist based HTML cleaner. Use to ensure that end-user provided HTML contains only the elements and attributes + that you are expecting; no junk, and no cross-site scripting attacks! + + The HTML cleaner parses the input as HTML and then runs it through a safe-list, so the output HTML can only contain + HTML that is allowed by the safelist. + + It is assumed that the input HTML is a body fragment; the clean methods only pull from the source's body, and the + canned safe-lists only allow body contained tags. + + Rather than interacting directly with a Cleaner object, generally see the + clean + methods in + . + + + + Create a new cleaner, that sanitizes documents using the supplied safelist. + safe-list to clean with + + + + Use + + instead. + + + + Creates a new, clean document, from the original dirty document, containing only elements allowed by the safelist. + + + Creates a new, clean document, from the original dirty document, containing only elements allowed by the safelist. + The original document is not modified. Only elements from the dirty document's body are used. The + OutputSettings of the original document are cloned into the clean document. + + Untrusted base document to clean. + cleaned document. + + + Determines if the input document bodyis valid, against the safelist. + + Determines if the input document bodyis valid, against the safelist. It is considered valid if all the tags and attributes + in the input HTML are allowed by the safelist, and that there is no content in the head. + + This method can be used as a validator for user input. An invalid document will still be cleaned successfully + using the + + document. If using as a validator, it is recommended to still clean the document + to ensure enforced attributes are set correctly, and that the output is tidied. + + document to test + true if no tags or attributes need to be removed; false if they do + + + Iterates the input and copies trusted nodes (tags, attributes, text) into the destination. + + + Safe-lists define what HTML (elements and attributes) to allow through the cleaner. + + Safe-lists define what HTML (elements and attributes) to allow through the cleaner. Everything else is removed. + + Start with one of the defaults: + + + + + + + + + + + + + + + + + + + If you need to allow more through (please be careful!), tweak a base safelist with: + + + + + + + + + + + + + + + + You can remove any setting from an existing safelist with: + + + + + + + + + + + + + + + + The cleaner and these safelists assume that you want to clean a body fragment of HTML (to add user + supplied HTML into a templated page), and not to clean a full HTML document. If the latter is the case, either wrap the + document HTML around the cleaned body HTML, or create a safelist that allows html and head + elements as appropriate. + + If you are going to extend a safelist, please be very careful. Make sure you understand what attributes may lead to + XSS attack vectors. URL attributes are particularly vulnerable and require careful validation. See + the XSS Filter Evasion Cheat Sheet for some + XSS attack examples (that jsoup will safegaurd against the default Cleaner and Safelist configuration). + + + + This safelist allows only text nodes: all HTML will be stripped. + safelist + + + This safelist allows only simple text formatting: b, em, i, strong, u. + + This safelist allows only simple text formatting: b, em, i, strong, u. All other HTML (tags and + attributes) will be removed. + + safelist + + + + + This safelist allows a fuller range of text nodes: a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, + ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul, and appropriate attributes. + + + + This safelist allows a fuller range of text nodes: a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, + ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul, and appropriate attributes. + + Links (a elements) can point to http, https, ftp, mailto, and have an enforced + rel=nofollow attribute. + + Does not allow images. + + safelist + + + + This safelist allows the same text tags as + + , and also allows img tags, with appropriate + attributes, with src pointing to http or https. + + safelist + + + + This safelist allows a full range of text and structural body HTML: a, b, blockquote, br, caption, cite, + code, col, colgroup, dd, div, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, span, strike, strong, sub, + sup, table, tbody, td, tfoot, th, thead, tr, u, ul + + + This safelist allows a full range of text and structural body HTML: a, b, blockquote, br, caption, cite, + code, col, colgroup, dd, div, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, span, strike, strong, sub, + sup, table, tbody, td, tfoot, th, thead, tr, u, ul + + Links do not have an enforced rel=nofollow attribute, but you can add that if desired. + + safelist + + + Create a new, empty safelist. + Create a new, empty safelist. Generally it will be better to start with a default prepared safelist instead. + + + + + + + + Deep copy an existing Safelist to a new Safelist. + the Safelist to copy + + + Add a list of allowed elements to a safelist. + Add a list of allowed elements to a safelist. (If a tag is not allowed, it will be removed from the HTML.) + + tag names to allow + this (for chaining) + + + Remove a list of allowed elements from a safelist. + Remove a list of allowed elements from a safelist. (If a tag is not allowed, it will be removed from the HTML.) + + tag names to disallow + this (for chaining) + + + Add a list of allowed attributes to a tag. + + Add a list of allowed attributes to a tag. (If an attribute is not allowed on an element, it will be removed.) + + E.g.: addAttributes("a", "href", "class") allows href and class attributes + on a tags. + + To make an attribute valid for all tags, use the pseudo tag :all, e.g. + addAttributes(":all", "class"). + + The tag the attributes are for. The tag will be added to the allowed tag list if necessary. + + List of valid attributes for the tag + this (for chaining) + + + Remove a list of allowed attributes from a tag. + + Remove a list of allowed attributes from a tag. (If an attribute is not allowed on an element, it will be removed.) + + E.g.: removeAttributes("a", "href", "class") disallows href and class + attributes on a tags. + + To make an attribute invalid for all tags, use the pseudo tag :all, e.g. + removeAttributes(":all", "class"). + + The tag the attributes are for. + List of invalid attributes for the tag + this (for chaining) + + + Add an enforced attribute to a tag. + + Add an enforced attribute to a tag. An enforced attribute will always be added to the element. If the element + already has the attribute set, it will be overridden with this value. + + E.g.: addEnforcedAttribute("a", "rel", "nofollow") will make all a tags output as + <a href="..." rel="nofollow"> + + The tag the enforced attribute is for. The tag will be added to the allowed tag list if necessary. + + The attribute name + The enforced attribute value + this (for chaining) + + + Remove a previously configured enforced attribute from a tag. + The tag the enforced attribute is for. + The attribute name + this (for chaining) + + + + Configure this Safelist to preserve relative links in an element's URL attribute, or convert them to absolute + links. + + + Configure this Safelist to preserve relative links in an element's URL attribute, or convert them to absolute + links. By default, this is false: URLs will be made absolute (e.g. start with an allowed protocol, like + e.g. + http://. + + Note that when handling relative links, the input document must have an appropriate + base URI + set when + parsing, so that the link's protocol can be confirmed. Regardless of the setting of the + + preserve relative + links + + option, the link must be resolvable against the base URI to an allowed protocol; otherwise the attribute + will be removed. + + + + + to allow relative links, + + (default) to deny + + this Safelist, for chaining. + + + + Add allowed URL protocols for an element's URL attribute. + + Add allowed URL protocols for an element's URL attribute. This restricts the possible values of the attribute to + URLs with the defined protocol. + + E.g.: addProtocols("a", "href", "ftp", "http", "https") + + To allow a link to an in-page URL anchor (i.e. <a href="#anchor">, add a #:
    + E.g.: addProtocols("a", "href", "#") +
    + Tag the URL protocol is for + Attribute name + List of valid protocols + this, for chaining +
    + + Remove allowed URL protocols for an element's URL attribute. + + Remove allowed URL protocols for an element's URL attribute. If you remove all protocols for an attribute, that + attribute will allow any protocol. + + E.g.: removeProtocols("a", "href", "ftp") + + Tag the URL protocol is for + Attribute name + List of invalid protocols + this, for chaining + + + Test if the supplied tag is allowed by this safelist + test tag + true if allowed + + + Test if the supplied attribute is allowed by this safelist for this tag + tag to consider allowing the attribute in + element under test, to confirm protocol + attribute under test + true if allowed + + + Collects a list of elements that match the supplied criteria. + Jonathan Hedley + + + Build a list of elements, by visiting root and every descendant of root, and testing it against the evaluator. + + Evaluator to test elements against + root of tree to descend + list of matches; empty if none + + + + Finds the first Element that matches the Evaluator that descends from the root, and stops the query once that first + match is found. + + Evaluator to test elements against + root of tree to descend + + the first match; + + if none + + + + Base combining (and, or) evaluator. + + + Create a new Or evaluator. + Create a new Or evaluator. The initial evaluators are ANDed together and used as the first clause of the OR. + + initial OR clause (these are wrapped into an AND evaluator). + + + + A list of + + s, with methods that act on every element in the list. + + + A list of + + s, with methods that act on every element in the list. + + To get an + Elements + object, use the + + method. + + Jonathan Hedley, jonathan@hedley.net + + + Creates a deep copy of these elements. + a deep copy + + + Get an attribute value from the first matched element that has the attribute. + The attribute key. + + The attribute value from the first matched element that has the attribute.. If no elements were matched (isEmpty() == true), + or if the no elements have the attribute, returns empty string. + + + + + Checks if any of the matched elements have this attribute defined. + attribute key + true if any of the elements have the attribute; false if none do. + + + Get the attribute value for each of the matched elements. + + Get the attribute value for each of the matched elements. If an element does not have this attribute, no value is + included in the result set for that element. + + + the attribute name to return values for. You can add the + abs: + prefix to the key to + get absolute URLs from relative URLs, e.g.: + doc.select("a").eachAttr("abs:href") + . + + a list of each element's attribute value for the attribute + + + Set an attribute on all matched elements. + attribute key + attribute value + this + + + Remove an attribute from every matched element. + The attribute to remove. + this (for chaining) + + + + Add the class name to every matched element's + class + attribute. + + class name to add + this + + + + Remove the class name from every matched element's + class + attribute, if present. + + class name to remove + this + + + + Toggle the class name on every matched element's + class + attribute. + + class name to add if missing, or remove if present, from every element. + this + + + + Determine if any of the matched elements have this class name set in their + class + attribute. + + class name to check for + true if any do, false if none do + + + Get the form element's value of the first matched element. + The form element's value, or empty if not set. + + + + Set the form element's value in each of the matched elements. + The value to set into each matched element + this (for chaining) + + + Get the combined text of all the matched elements. + + Get the combined text of all the matched elements. + + Note that it is possible to get repeats if the matched elements contain both parent elements and their own + children, as the Element.text() method returns the combined text of a parent and all its children. + + string of all text: unescaped and no HTML. + + + + + Test if any matched Element has any text content, that is not just whitespace. + true if any element has non-blank text content. + + + + Get the text content of each of the matched elements. + + Get the text content of each of the matched elements. If an element has no text, then it is not included in the + result. + + A list of each matched element's text content. + + + + + + Get the combined inner HTML of all matched elements. + string of all element's inner HTML. + + + + + Get the combined outer HTML of all matched elements. + string of all element's outer HTML. + + + + + Get the combined outer HTML of all matched elements. + + Get the combined outer HTML of all matched elements. Alias of + . + + string of all element's outer HTML. + + + + + Update (rename) the tag name of each matched element. + + Update (rename) the tag name of each matched element. For example, to change each + <i> + to a + <em> + , do + doc.select("i").tagName("em"); + + the new tag name + this, for chaining + + + + Set the inner HTML of each matched element. + HTML to parse and set into each matched element. + this, for chaining + + + + Add the supplied HTML to the start of each matched element's inner HTML. + HTML to add inside each element, before the existing HTML + this, for chaining + + + + Add the supplied HTML to the end of each matched element's inner HTML. + HTML to add inside each element, after the existing HTML + this, for chaining + + + + Insert the supplied HTML before each matched element's outer HTML. + HTML to insert before each element + this, for chaining + + + + Insert the supplied HTML after each matched element's outer HTML. + HTML to insert after each element + this, for chaining + + + + Wrap the supplied HTML around each matched elements. + + Wrap the supplied HTML around each matched elements. For example, with HTML + <p><b>This</b> is <b>Jsoup</b></p> + , + doc.select("b").wrap("<i></i>"); + becomes + <p><i><b>This</b></i> is <i><b>jsoup</b></i></p> + + + + HTML to wrap around each element, e.g. + <div class="head"></div> + . Can be arbitrarily deep. + + this (for chaining) + + + + Removes the matched elements from the DOM, and moves their children up into their parents. + + Removes the matched elements from the DOM, and moves their children up into their parents. This has the effect of + dropping the elements but keeping their children. + + This is useful for e.g removing unwanted formatting elements but keeping their contents. + E.g. with HTML: + <div><font>One</font> <font><a href="/">Two</a></font></div> + + + doc.select("font").unwrap(); + + HTML = + <div>One <a href="/">Two</a></div> + + this (for chaining) + + + + Empty (remove all child nodes from) each matched element. + + Empty (remove all child nodes from) each matched element. This is similar to setting the inner HTML of each + element to nothing. + + E.g. HTML: + <div><p>Hello <b>there</b></p> <p>now</p></div> +
    + doc.select("p").empty();
    + HTML = + <div><p></p> <p></p></div> +
    + this, for chaining + + +
    + + Remove each matched element from the DOM. + + Remove each matched element from the DOM. This is similar to setting the outer HTML of each element to nothing. + + E.g. HTML: + <div><p>Hello</p> <p>there</p> <img /></div> +
    + doc.select("p").remove();
    + HTML = + <div> <img /></div> + + Note that this method should not be used to clean user-submitted HTML; rather, use + + to clean HTML. +
    + this, for chaining + + +
    + + Find matching elements within this element list. + + A + + query + + the filtered list of elements, or an empty list if none match. + + + + Remove elements from this list that match the + + query. + + + Remove elements from this list that match the + + query. + + E.g. HTML: + <div class=logo>One</div> <div>Two</div> +
    + Elements divs = doc.select("div").not(".logo");
    + Result: + divs: [<div>Two</div>] + +
    + the selector query whose results should be removed from these elements + a new elements list that contains only the filtered results +
    + + Get the nth matched element as an Elements object. + + Get the nth matched element as an Elements object. + + See also + + to retrieve an Element. + + the (zero-based) index of the element in the list to retain + Elements containing only the specified element, or, if that element did not exist, an empty list. + + + + Test if any of the matched elements match the supplied query. + A selector + true if at least one element in the list matches the query. + + + Get the immediate next element sibling of each element in this list. + next element siblings. + + + Get the immediate next element sibling of each element in this list, filtered by the query. + CSS query to match siblings against + next element siblings. + + + Get each of the following element siblings of each element in this list. + all following element siblings. + + + Get each of the following element siblings of each element in this list, that match the query. + CSS query to match siblings against + all following element siblings. + + + Get the immediate previous element sibling of each element in this list. + previous element siblings. + + + Get the immediate previous element sibling of each element in this list, filtered by the query. + CSS query to match siblings against + previous element siblings. + + + Get each of the previous element siblings of each element in this list. + all previous element siblings. + + + Get each of the previous element siblings of each element in this list, that match the query. + CSS query to match siblings against + all previous element siblings. + + + Get all of the parents and ancestor elements of the matched elements. + all of the parents and ancestor elements of the matched elements + + + Get the first matched element. + The first matched element, or null if contents is empty. + + + Get the last matched element. + The last matched element, or null if contents is empty. + + + Perform a depth-first traversal on each of the selected elements. + the visitor callbacks to perform on each node + this, for chaining + + + Perform a depth-first filtering on each of the selected elements. + the filter callbacks to perform on each node + this, for chaining + + + + Get the + + forms from the selected elements, if any. + + + a list of + + s pulled from the matched elements. The list will be empty if the elements contain + no forms. + + + + + Get + + nodes that are direct child nodes of the selected elements. + + Comment nodes, or an empty list if none. + + + + Get + + nodes that are direct child nodes of the selected elements. + + TextNode nodes, or an empty list if none. + + + + Get + + nodes that are direct child nodes of the selected elements. + + + Get + + nodes that are direct child nodes of the selected elements. DataNode nodes contain the + content of tags such as + script + , + style + etc and are distinct from + + s. + + Comment nodes, or an empty list if none. + + + Evaluates that an element matches the selector. + + + Test if the element meets the evaluator's requirements. + Root of the matching subtree + tested element + + Returns true if the requirements are met or + false otherwise + + + + Evaluator for tag name + + + Evaluator for tag name that ends with + + + Evaluator for element id + + + Evaluator for element class + + + Evaluator for attribute name matching + + + Evaluator for attribute name prefix matching + + + Evaluator for attribute name/value matching + + + Evaluator for attribute name != value matching + + + Evaluator for attribute name/value matching (value prefix) + + + Evaluator for attribute name/value matching (value ending) + + + Evaluator for attribute name/value matching (value containing) + + + Evaluator for attribute name/value matching (value regex matching) + + + Abstract evaluator for attribute name/value matching + + + Evaluator for any / all element matching + + + + Evaluator for matching by sibling index number (e + < + idx) + + + + + Evaluator for matching by sibling index number (e + > + idx) + + + + Evaluator for matching by sibling index number (e = idx) + + + Evaluator for matching the last sibling (css :last-child) + + + css-compatible Evaluator for :eq (css :nth-child) + + + + css pseudo class :nth-last-child) + + + + css pseudo class nth-of-type + + + Evaluator for matching the first sibling (css :first-child) + + + css3 pseudo-class :root + :root selector + + + Abstract evaluator for sibling index matching + ant + + + Evaluator for matching Element (and its descendants) text + + + Evaluator for matching Element (and its descendants) data + + + Evaluator for matching Element's own text + + + Evaluator for matching Element's own text with regex + + + Evaluator for matching Element (and its descendants) text with regex + + + Node filter interface. + + Node filter interface. Provide an implementing class to + + to iterate through nodes. + + This interface provides two methods, + head + and + tail + . The head method is called when the node is first + seen, and the tail method when all of the node's children have been visited. As an example, head can be used to + create a start tag for a node, and tail to create the end tag. + + For every node, the filter has to decide whether to + + continue ( + + ), + + skip all children ( + + ), + + skip node entirely ( + + ), + + remove the subtree ( + + ), + + interrupt the iteration and return ( + + ). + + + The difference between + + and + + is that the first + will invoke + + on the node, while the latter will not. + Within + + , both are equivalent to + . + + + + Filter decision. + + + Continue processing the tree + + + + Skip the child nodes, but do call + + next. + + + + + Skip the subtree, and do not call + . + + + + Remove the node and its children + + + Stop processing + + + Callback for when a node is first visited. + the node being visited. + the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node of that will have depth 1. + + Filter decision + + + Callback for when a node is last visited, after all of its descendants have been visited. + the node being visited. + the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node of that will have depth 1. + + Filter decision + + + Depth-first node traversor. + + Depth-first node traversor. Use to iterate through all nodes under and including the specified root node. + + This implementation does not use recursion, so a deep DOM does not risk blowing the stack. + + + + Start a depth-first traverse of the root and all of its descendants. + Node visitor. + the root node point to traverse. + + + Start a depth-first traverse of all elements. + Node visitor. + Elements to filter. + + + Start a depth-first filtering of the root and all of its descendants. + Node visitor. + the root node point to traverse. + + The filter result of the root node, or + . + + + + Start a depth-first filtering of all elements. + Node filter. + Elements to filter. + + + Node visitor interface. + + Node visitor interface. Provide an implementing class to + + to iterate through nodes. + + This interface provides two methods, + head + and + tail + . The head method is called when the node is first + seen, and the tail method when all of the node's children have been visited. As an example, + head + can be used to + emit a start tag for a node, and + tail + to create the end tag. + + + + Callback for when a node is first visited. + + Callback for when a node is first visited. + + The node may be modified (e.g. + + or replaced + + ). If it's + instanceOf Element + , you may cast it to an + + and access those methods. + + Note that nodes may not be removed during traversal using this method; use + + with a + + return instead. + + the node being visited. + + the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node + of that will have depth 1. + + + + Callback for when a node is last visited, after all of its descendants have been visited. + + Callback for when a node is last visited, after all of its descendants have been visited. + + Note that replacement with + + is not supported in + tail. + + the node being visited. + + the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node + of that will have depth 1. + + + + Parses a CSS selector into an Evaluator tree. + + + Create a new QueryParser. + CSS query + + + Parse a CSS query into an Evaluator. + CSS query + Evaluator + selector query syntax + + + Parse the query + Evaluator + + + + Find elements matching selector. + CSS selector + root element to descend into + matching elements, empty if none + + + Find elements matching selector. + CSS selector + root element to descend into + matching elements, empty if none + + + Find elements matching selector. + CSS selector + root elements to descend into + matching elements, empty if none + + + Find the first element that matches the query. + CSS selector + root element to descend into + the matching element, or null if none. + + + Base structural evaluator. + + + A SerializationException is raised whenever serialization of a DOM element fails. + + A SerializationException is raised whenever serialization of a DOM element fails. This exception usually wraps an + + that may be thrown due to an inaccessible output stream. + + + + Creates and initializes a new serialization exception with no error message and cause. + + + Creates and initializes a new serialization exception with the given error message and no cause. + the error message of the new serialization exception (may be null). + + + + Creates and initializes a new serialization exception with the specified cause and an error message of + (cause==null ? null : cause.toString()) (which typically contains the class and error message of + cause). + + the cause of the new serialization exception (may be null). + + + Creates and initializes a new serialization exception with the given error message and cause. + the error message of the new serialization exception. + the cause of the new serialization exception. + + + Class that bundles all the error message templates as constants. + + + The Constant SHORTHAND_PROPERTY_CANNOT_BE_EMPTY. + + + The Constant DEFAULT_VALUE_OF_CSS_PROPERTY_UNKNOWN. + + + The Constant ERROR_ADDING_CHILD_NODE. + + + The Constant ERROR_PARSING_COULD_NOT_MAP_NODE. + + + The Constant ERROR_PARSING_CSS_SELECTOR. + + + The Constant ONLY_THE_LAST_BACKGROUND_CAN_INCLUDE_BACKGROUND_COLOR. + + + The Constant UNKNOWN_ABSOLUTE_METRIC_LENGTH_PARSED. + + + The Constant UNKNOWN__PROPERTY. + + + The Constant QUOTES_PROPERTY_INVALID. + + + The Constant QUOTE_IS_NOT_CLOSED_IN_CSS_EXPRESSION. + + + The Constant INVALID_CSS_PROPERTY_DECLARATION. + + + The Constant INCORRECT_CHARACTER_SEQUENCE. + + + The Constant RULE_IS_NOT_SUPPORTED. + + + The Constant RESOURCE_WITH_GIVEN_URL_WAS_FILTERED_OUT. + + + The Constant UNABLE_TO_RETRIEVE_IMAGE_WITH_GIVEN_DATA_URI. + + + The Constant UNABLE_TO_RETRIEVE_RESOURCE_WITH_GIVEN_RESOURCE_SIZE_BYTE_LIMIT. + + + The Constant UNABLE_TO_RETRIEVE_IMAGE_WITH_GIVEN_BASE_URI. + + + The Constant UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI. + + + The Constant WAS_NOT_ABLE_TO_DEFINE_BACKGROUND_CSS_SHORTHAND_PROPERTIES. + + + The Constant ERROR_RESOLVING_PARENT_STYLES. + + + Instantiates a new log message constant. + + + Interface for HTML attributes. + + + Gets the key. + the key + + + Gets the value. + the value + + + Interface for a series of HTML attributes. + + + Gets the value of an attribute, given a key. + the key + the attribute + + + Adds a key and a value of an attributes. + the key + the value + + + Returns the number of attributes. + the number of attributes + + + + Interface that serves as a marker indicating that this particular + + is something non-standard. + + + + Interface for data nodes. + + + Gets all the data. + the data + + + + Interface implemented by classes that are a top node, + and as such represent a Document. + + + + Interface for the document type node. + + + + Interface for node classes that have a parent and children, and for which + styles can be defined; each of these nodes can also have a name and attributes. + + + + Gets the name of the element node. + the string + + + Gets the attributes. + the attributes + + + Gets an attribute. + the key of the attribute we want to get + the value of the attribute + + + + Gets additional styles, more specifically styles that affect an element + based on its position in the HTML DOM, e.g. cell borders that are set + due to the parent table "border" attribute, or styles from "col" tags + that affect table elements, or blocks horizontal alignment that is + the result of parent's "align" attribute. + + the additional html styles + + + Adds additional HTML styles. + the styles + + + Gets the language. + the language value + + + Class that uses JSoup to parse HTML. + + + The logger. + + + + Wraps JSoup nodes into pdfHTML + + classes. + + the JSoup node instance + + the + + instance + + + + Class that uses JSoup to parse HTML. + + + The logger. + + + + Wraps JSoup nodes into pdfHTML + + classes. + + the JSoup node instance + + the + + instance + + + + + Implementation of the + + interface; wrapper for the JSoup + + class. + + + + + The JSoup + + instance. + + + + + Creates a new + + instance. + + the attribute + + + + Implementation of the interface; wrapper for the JSoup class. + + + + + Implementation of the + + interface; wrapper for the JSoup + + class. + + + + The JSoup data node instance. + + + + Creates a new + + instance. + + the data node + + + + Implementation of the + + interface; wrapper for the JSoup + + class. + + + + The JSoup document instance. + + + + Creates a new + + instance. + + the document + + + Gets the JSoup document. + the document + + + + Implementation of the + + interface; wrapper for the JSoup + + class. + + + + + Creates a new + + instance. + + the node + + + + Implementation of the + + interface; wrapper for the JSoup + + class. + + + + The JSoup element. + + + The attributes. + + + The resolved styles. + + + The custom default styles. + + + The language. + + + + Creates a new + + instance. + + the element + + + Returns the element text. + the text + + + + Implementation of the + + interface; wrapper for the JSoup + + class. + + + + The JSoup node instance. + + + The child nodes. + + + The parent node. + + + + Creates a new + + instance. + + the node + + + + Implementation of the + + interface; wrapper for the JSoup + + class. + + + + The text node. + + + + Creates a new + + instance. + + the text node + + + Interface for classes that describe a Node with a parent and children. + + + Gets the child nodes. + + a list of + + instances. + + + + Adds a child node. + a child node that will be added to the current node + + + Gets the parent node. + the parent node + + + Interface for classes that can get and set styles. + + + Sets the styles. + + a + + with style keys and values. + + + + Gets the styles. + the styles + + + Interface for text nodes. + + + Returns all the text. + the text + + + + This file is a helper class for internal usage only. + Be aware that its API and functionality may be changed in future. + + + + + By default "." symbol in regular expressions does not match line terminators. + The issue is more complicated by the fact that "." does not match only "\n" in C#, while it does not + match several other characters as well in Java. + This utility method creates a pattern in which dots match any character, including line terminators + + regular expression string + pattern in which dot characters match any Unicode char, including line terminators + + + + A basic + + that allows configuring in the constructor which fonts are loaded by default. + + + + + Creates a new + + instance. + + + + + Creates a new + + instance. + + use true if you want to register the standard Type 1 fonts (can't be embedded) + + use true if you want to register the system fonts (can require quite some resources) + + + + + Creates a new + + instance. + + use true if you want to register the standard Type 1 fonts (can't be embedded) + + use true if you want to register the system fonts (can require quite some resources) + + default font family + + + + Creates a new + + instance. + + predefined set of fonts, could be null. + default font family. + + + + Default implementation of the + + interface, which can set a limit + on the size of retrieved resources using input stream with a limit on the number of bytes read. + + + + + Creates a new + + instance. + + + Creates a new + + instance. + The limit on the size of retrieved resources is by default equal to + + bytes. + + + + Gets the resource size byte limit. + + Gets the resource size byte limit. + The resourceSizeByteLimit is used to create input stream with a limit on the number of bytes read. + + the resource size byte limit + + + Sets the resource size byte limit. + + Sets the resource size byte limit. + The resourceSizeByteLimit is used to create input stream with a limit on the number of bytes read. + + the resource size byte limit + + the + + instance + + + + + Gets the input stream with current limit on the number of bytes read, + that connect with source URL for retrieving data from that connection. + + the source URL + the limited input stream or null if the URL was filtered + + + Gets the byte array that are retrieved from the source URL. + the source URL + + the byte array or null if the retrieving failed or the + URL was filtered or the resourceSizeByteLimit was violated + + + + Method for filtering resources by URL. + + Method for filtering resources by URL. + The default implementation allows for all URLs. Override this method if want to set filtering. + + the source URL + true if the resource can be retrieved and false otherwise + + + Interface for classes that can retrieve data from resources by URL. + + + + Gets the + + that connect with source URL for retrieving data from that connection. + + the source URL + the input stream or null if the retrieving failed + + + Gets the byte array that are retrieved from the source URL. + the source URL + the byte array or null if the retrieving failed + + + + Implementation of the + + abstract class, which is used to restrict + reading bytes from input stream i.e. if more bytes are read than the readingByteLimit, + an + + exception will be thrown. + + Note that the readingByteLimit is not taken into account in the , + methods. + + + + + Creates a new + + instance. + + the input stream, the reading of bytes from which will be limited + the reading byte limit, must not be less than zero + + + Utilities class to resolve resources. + + + Identifier string used when loading in base64 images. + + + Identifier string used to detect that the source is under data URI scheme. + + + + The + + instance. + + + + + The + + instance. + + + + + Creates a new + + instance. + + + Creates a new + + instance. + If + + is a string that represents an absolute URI with any schema except "file" - resources + url values will be resolved exactly as "new URL(baseUrl, uriString)". Otherwise base URI will be handled + as path in local file system. + + If empty string or relative URI string is passed as base URI, then it will be resolved against current + working directory of this application instance. + + base URI against which all relative resource URIs will be resolved + + + + Creates a new + + instance. + + + Creates a new + + instance. + If + + is a string that represents an absolute URI with any schema except "file" - resources + url values will be resolved exactly as "new URL(baseUrl, uriString)". Otherwise base URI will be handled + as path in local file system. + + If empty string or relative URI string is passed as base URI, then it will be resolved against current + working directory of this application instance. + + base URI against which all relative resource URIs will be resolved + the resource retriever with the help of which data from resources will be retrieved + + + + Gets the resource retriever. + + Gets the resource retriever. + The retriever is used to retrieve data from resources by URL. + + the resource retriever + + + Sets the resource retriever. + + Sets the resource retriever. + The retriever is used to retrieve data from resources by URL. + + the resource retriever + + the + + instance + + + + + Retrieve image as either + + , or + . + + either link to file or base64 encoded stream + PdfXObject on success, otherwise null + + + + Retrieve a resource as a byte array from a source that + can either be a link to a file, or a base64 encoded + . + + either link to file or base64 encoded stream + byte[] on success, otherwise null + + + Retrieve the resource found in src as an InputStream + path to the resource + InputStream for the resource on success, otherwise null + + + Checks if source is under data URI scheme. + Checks if source is under data URI scheme. (eg data:[<media type>][;base64],<data>). + string to test + true if source is under data URI scheme + + + Resolves a given URI against the base URI. + the uri + the url + + + Resets the simple image cache. + + + Create a iText XObject based on the image stored at the passed location. + location of the Image file. + + + + containing the Image loaded in. + + + + Checks if string contains base64 mark. + + Checks if string contains base64 mark. + It does not guarantee that src is a correct base64 data-string. + + string to test + true if string contains base64 mark + + + Simple implementation of an image cache. + + + The cache mapping a source path to an Image XObject. + + + Stores how many times each image is used. + + + The capacity of the cache. + + + + Creates a new + + instance. + + + + + Creates a new + + instance. + + the capacity + + + Adds an image to the cache. + the source path + the image XObject to be cached + + + Gets an image from the cache. + the source path + the image XObject + + + Gets the size of the cache. + the cache size + + + Resets the cache. + + + + Ensures the capacity of the cache by removing the least important images + (based on the number of times an image is used). + + + + + Set of 256 characters with the bits that don't need encoding set to on. + + + + + The difference between the value a character in lower cases and the upper case character value. + + + + + The default encoding ("UTF-8"). + + + + + Encodes a in the default encoding and default uri scheme to an HTML-encoded . + + the original string + the encoded string + + + + Encodes a in a specific encoding and specific uri scheme to an HTML-encoded . + + the original string + the encoding + the encoded string + + + + Utilities class to resolve URIs. + + + + + The base url. + + + + + Indicates if the Uri refers to a local resource. + + + + + Creates a new instance. + + the base URI + + + + Gets the base URI. + + the base uri + + + + Resolve a given URI against the base URI. + + the given URI + the resolved URI + + + + Resolves the base URI to an URL or path. + + the base URI + + + + Resolves a base URI as an URL. + + the base URI + the URL, or null if not successful + + + + Resolves a base URI as a file URL. + + the base URI + the file URL + + + + Check if baseURI is local + + true if baseURI is local, otherwise false + + + Split CSS 'font-family' string into list of font-families or generic-families + + + Utility class for resolving parent-inheritance of style and attribute declarations. + + + List to store the properties whose value can depend on parent or element font-size + + + Merge parent CSS declarations. + the styles map + the CSS property + the parent properties value + is a font size of parent element + set of inheritance rules + a map of updated styles after merging parent and child style declarations + + + Check all inheritance rule-sets to see if the passed property is inheritable + property identifier to check + a set of inheritance rules + + True if the property is inheritable by one of the rule-sets, + false if it is not marked as inheritable in all rule-sets + + + + Check to see if the passed value is a measurement of the type based on the passed measurement symbol string + + string containing value to check + measurement symbol (e.g. % for relative, px for pixels) + True if the value is numerical and ends with the measurement symbol, false otherwise + + + Utility class for white-space handling methods that are used both in pdfHTML and the iText-core SVG module + + + + Collapse all consecutive spaces of the passed String into single spaces + String to collapse + a String containing the contents of the input, with consecutive spaces collapsed + + + Checks if a character is white space value that is not em, en or similar special whitespace character. + + the character + true, if the character is a white space character, but no em, en or similar + +
    +
    diff --git a/Bin/itext.svg.dll b/Bin/itext.svg.dll new file mode 100644 index 000000000..95c7c53d1 Binary files /dev/null and b/Bin/itext.svg.dll differ diff --git a/Bin/itext.svg.dll.refresh b/Bin/itext.svg.dll.refresh new file mode 100644 index 000000000..e6189ba7f --- /dev/null +++ b/Bin/itext.svg.dll.refresh @@ -0,0 +1 @@ +..\packages\itext7.7.2.4\lib\net461\itext.svg.dll \ No newline at end of file diff --git a/Bin/itext.svg.xml b/Bin/itext.svg.xml new file mode 100644 index 000000000..1fd752eaf --- /dev/null +++ b/Bin/itext.svg.xml @@ -0,0 +1,4041 @@ + + + + itext.svg + + + + + This is the main container class for static methods that do high-level + conversion operations from input to PDF, either by drawing on a canvas or by + returning an XObject, which can then be used by the calling class for further + processing and drawing operations. + + + + + Draws a String containing valid SVG to a document, on a given page + number at the origin of the page. + + the String value containing valid SVG content + + the + + instance to draw on + + the page to draw on + + + + Draws a String containing valid SVG to a document, on a given page + number on the provided x and y coordinate. + + the String value containing valid SVG content + + the + + instance to draw on + + the page to draw on + x-coordinate of the location to draw at + y-coordinate of the location to draw at + + + + Draws a String containing valid SVG to a document, on a given page + number on the provided x and y coordinate. + + the String value containing valid SVG content + + the + + instance to draw on + + the page to draw on + a container for extra properties that customize the behavior + + + + Draws a String containing valid SVG to a document, on a given page + number on the provided x and y coordinate. + + the String value containing valid SVG content + + the + + instance to draw on + + the page to draw on + x-coordinate of the location to draw at + y-coordinate of the location to draw at + a container for extra properties that customize the behavior + + + + Draws a Stream containing valid SVG to a document, on a given page + number ate the origni of the page. + + + the + Stream + containing valid SVG content + + + the + + instance to draw on + + the page to draw on + + + + Draws a Stream containing valid SVG to a document, on a given page + number on the provided x and y coordinate. + + + the + Stream + containing valid SVG content + + + the + + instance to draw on + + the page to draw on + x-coordinate of the location to draw at + y-coordinate of the location to draw at + + + + Draws a Stream containing valid SVG to a document, on a given page + number on the provided x and y coordinate. + + + the + Stream + containing valid SVG content + + + the + + instance to draw on + + the page to draw on + a container for extra properties that customize the behavior + + + + Draws a Stream containing valid SVG to a document, on a given page + number on the provided x and y coordinate. + + + the + Stream + containing valid SVG content + + + the + + instance to draw on + + the page to draw on + x-coordinate of the location to draw at + y-coordinate of the location to draw at + a container for extra properties that customize the behavior + + + Draws a String containing valid SVG to a given page at the origin of the page. + the String value containing valid SVG content + + the + + instance to draw on + + + + Draws a String containing valid SVG to a given page on the provided x and y coordinate. + the String value containing valid SVG content + + the + + instance to draw on + + x-coordinate of the location to draw at + y-coordinate of the location to draw at + + + Draws a String containing valid SVG to a given page on the provided x and y coordinate. + the String value containing valid SVG content + + the + + instance to draw on + + a container for extra properties that customize the behavior + + + Draws a String containing valid SVG to a given page on the provided x and y coordinate. + the String value containing valid SVG content + + the + + instance to draw on + + x-coordinate of the location to draw at + y-coordinate of the location to draw at + a container for extra properties that customize the behavior + + + Draws a Stream containing valid SVG to a given page at coordinate 0,0. + + the + Stream + object containing valid SVG content + + + the + + instance to draw on + + + + Draws a Stream containing valid SVG to a given page, at a given location. + + the + Stream + object containing valid SVG content + + + the + + instance to draw on + + x-coordinate of the location to draw at + y-coordinate of the location to draw at + + + Draws a Stream containing valid SVG to a given page at a given location. + + the + Stream + object containing valid SVG content + + + the + + instance to draw on + + a container for extra properties that customize the behavior + + + Draws a Stream containing valid SVG to a given page at a given location. + + the + Stream + object containing valid SVG content + + + the + + instance to draw on + + x-coordinate of the location to draw at + y-coordinate of the location to draw at + a container for extra properties that customize the behavior + + + Draws a String containing valid SVG to a pre-made canvas object. + the String value containing valid SVG content + + the + + instance to draw on + + + + Draws a String containing valid SVG to a pre-made canvas object. + the String value containing valid SVG content + + the + + instance to draw on + + x-coordinate of the location to draw at + y-coordinate of the location to draw at + + + Draws a String containing valid SVG to a pre-made canvas object. + the String value containing valid SVG content + + the + + instance to draw on + + a container for extra properties that customize the behavior + + + draws a String containing valid SVG to a pre-made canvas object, at a specified location. + the String value containing valid SVG content + + the + + instance to draw on + + x-coordinate of the location to draw at + y-coordinate of the location to draw at + a container for extra properties that customize the behavior + + + Draws a Stream containing valid SVG to a pre-made canvas object. + + the + Stream + object containing valid SVG content + + + the + + instance to draw on + + + + Draws a Stream containing valid SVG to a pre-made canvas object, to a specified location. + + the + Stream + object containing valid SVG content + + + the + + instance to draw on + + x-coordinate of the location to draw at + y-coordinate of the location to draw at + + + Draws a Stream containing valid SVG to a pre-made canvas object. + + the + Stream + object containing valid SVG content + + + the + + instance to draw on + + a container for extra properties that customize the behavior + + + Draws a String containing valid SVG to a pre-made canvas object, at a specified position on the canvas. + + + the + Stream + object containing valid SVG content + + + the + + instance to draw on + + x-coordinate of the location to draw at + y-coordinate of the location to draw at + a container for extra properties that customize the behavior + + + + Converts SVG stored in a + + to a PDF + . + + + the + + containing the source SVG + + + the + + containing the resulting PDF + + + + + Converts SVG stored in a + + to a PDF + + , + using specific + . + + + the + + containing the source SVG + + + the + + containing the resulting PDF + + + a + + an instance for extra properties to customize the behavior + + + + + Converts SVG stored in a + + to a PDF + + , + using + + + + the + + containing the source SVG + + + the + + containing the resulting PDF + + + the + + for the pdf document + + + + + Converts SVG stored in a + + to a PDF + + , + using specific + + and + . + + + the + + containing the source SVG + + + the + + containing the resulting PDF + + + a + + an instance for extra properties to customize the behavior + + + a + + for the pdf document + + + + Copies properties from custom ISvgConverterProperties into new SvgConverterProperties. + + Copies properties from custom ISvgConverterProperties into new SvgConverterProperties. + Since ISvgConverterProperties itself is immutable we have to do it. + + + + + an instance for extra properties to customize the behavior + + the directory of new SvgConverterProperties + new SvgConverterProperties. + + + Create a single page pdf containing the SVG on its page using the default processing and drawing logic + + + + Stream + containing the SVG + + PDF destination outputStream + + + Create a single page pdf containing the SVG on its page using the default processing and drawing logic + + + + Stream + containing the SVG + + PDF destination outputStream + writer properties for the pdf document + + + Create a single page pdf containing the SVG on its page using the default processing and drawing logic + + + + Stream + containing the SVG + + PDF destination outputStream + + + + an instance for extra properties to customize the behavior + + + + Create a single page pdf containing the SVG on its page using the default processing and drawing logic + + + + Stream + containing the SVG + + PDF destination outputStream + + + + an instance for extra properties to customize the behavior + + + + + for the pdf document + + + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + . + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + + . This method does NOT manipulate the + + in any way. + + This method (or its overloads) is the best method to use if you want to + reuse the same SVG image multiple times on the same + . + + If you want to reuse this object on other + + instances, + please either use any of the + + overloads in this same + class and convert its result to an XObject with + + , or look into + using + . + + the String value containing valid SVG content + + the + + instance to draw on + + + a + XObject + containing the PDF instructions + corresponding to the passed SVG content + + + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + . + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + + . This method does NOT manipulate the + + in any way. + + This method (or its overloads) is the best method to use if you want to + reuse the same SVG image multiple times on the same + . + + If you want to reuse this object on other + + instances, + please either use any of the + + overloads in this same + class and convert its result to an XObject with + + , or look into + using + . + + the String value containing valid SVG content + + the + + instance to draw on + + + + + an instance for extra properties to customize the behavior + + + a + XObject + containing the PDF instructions + corresponding to the passed SVG content + + + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + . + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + + . This method does NOT manipulate the + + in any way. + + This method (or its overloads) is the best method to use if you want to + reuse the same SVG image multiple times on the same + . + + If you want to reuse this object on other + + instances, + please either use any of the + + overloads in this same + class and convert its result to an XObject with + + , or look into + using + . + + + the + Stream + containing valid SVG content + + + the + + instance to draw on + + + + + an instance for extra properties to customize the behavior + + + a + XObject + containing the PDF instructions + corresponding to the passed SVG content + + + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + . + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + + . This method does NOT manipulate the + + in any way. + + This method (or its overloads) is the best method to use if you want to + reuse the same SVG image multiple times on the same + . + + If you want to reuse this object on other + + instances, + please either use any of the + + overloads in this same + class and convert its result to an XObject with + + , or look into + using + . + + + the + Stream + containing valid SVG content + + + the + + instance to draw on + + + a + XObject + containing the PDF instructions + corresponding to the passed SVG content + + + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + . + + + Converts a String containing valid SVG content to an + XObject + that can then be used on the passed + + . This method does NOT manipulate the + + in any way. + + This method (or its overloads) is the best method to use if you want to + reuse the same SVG image multiple times on the same + . + + If you want to reuse this object on other + + instances, + please either use any of the + + overloads in this same + class and convert its result to an XObject with + + , or look into + using + . + + + the + Stream + containing valid SVG content + + + the + + instance to draw on + + + a + Image + containing the PDF instructions corresponding to the passed SVG content + + + + + Converts a String containing valid SVG content to an + image + that can then be used on the passed + . + + + Converts a String containing valid SVG content to an + image + that can then be used on the passed + + . This method does NOT manipulate the + + in any way. + + This method (or its overloads) is the best method to use if you want to + reuse the same SVG image multiple times on the same + . + + If you want to reuse this object on other + + instances, + please either use any of the + + overloads in this same + class and convert its result to an XObject with + + , or look into + using + . + + + the + Stream + containing valid SVG content + + + the + + instance to draw on + + + + + an instance for extra properties to customize the behavior + + + a + Image + containing the PDF instructions corresponding to the passed SVG content + + + + + This method draws a NodeRenderer tree to a canvas that is tied to the + passed document. + + + This method draws a NodeRenderer tree to a canvas that is tied to the + passed document. + + This method (or its overloads) is the best method to use if you want to + reuse the same SVG image multiple times on the same + . + + If you want to reuse this object on other + + instances, + please either use any of the + + overloads in this same + class and convert its result to an XObject with + this method, or look into + using + . + + + the + + instance that contains + the renderer tree + + + the document that the returned + XObject + can be drawn on (on any given page + coordinates) + + + an + XObject + containing the PDF instructions + corresponding to the passed node renderer tree. + + + + + This method draws a NodeRenderer tree to a canvas that is tied to the + passed document. + + + This method draws a NodeRenderer tree to a canvas that is tied to the + passed document. + + This method (or its overloads) is the best method to use if you want to + reuse the same SVG image multiple times on the same + . + + If you want to reuse this object on other + + instances, + please either use any of the + + overloads in this same + class and convert its result to an XObject with + this method, or look into + using + . + + + the + + instance that contains + the renderer tree + + the document that the returned + the SvgDrawContext + + an + XObject + containing the PDF instructions + corresponding to the passed node renderer tree. + + + + + Parse and process an Inputstream containing an SVG, using the default Svg processor ( + + ) + The parsing of the stream is done using UTF-8 as the default charset. + + + Parse and process an Inputstream containing an SVG, using the default Svg processor ( + + ) + The parsing of the stream is done using UTF-8 as the default charset. + The properties used by the processor are the + + + + + Stream + containing the SVG to parse and process + + + + + containing the root renderer and metadata of the svg + + + + + Parse and process an Inputstream containing an SVG, using the default Svg processor ( + + ) + + + + Stream + containing the SVG to parse and process + + + + + an instance for extra properties to customize the behavior + + + + + containing the root renderer and metadata of the svg + + + + + Use the default implementation of + + to convert an XML + DOM tree to a node renderer tree. + + + Use the default implementation of + + to convert an XML + DOM tree to a node renderer tree. The passed properties can modify the default behaviour + + the XML DOM tree + + + + an instance for extra properties to customize the behavior + + a node renderer tree corresponding to the passed XML DOM tree + + + + Parse a String containing valid SVG into an XML DOM node, using the + default JSoup XML parser. + + the String value containing valid SVG content + an XML DOM tree corresponding to the passed String input + + + + Parse a Stream containing valid SVG into an XML DOM node, using the + default JSoup XML parser. + + + Parse a Stream containing valid SVG into an XML DOM node, using the + default JSoup XML parser. This method will assume that the encoding of + the Stream is + UTF-8. + + + the + Stream + containing valid SVG content + + an XML DOM tree corresponding to the passed String input + + + + Parse a Stream containing valid SVG into an XML DOM node, using the + default JSoup XML parser. + + + Parse a Stream containing valid SVG into an XML DOM node, using the + default JSoup XML parser. This method will assume that the encoding of + the Stream is + UTF-8 + , unless specified otherwise by the method + + of the + + parameter. + + + the + Stream + containing valid SVG content + + + + + an instance for extra properties to customize the behavior + + an XML DOM tree corresponding to the passed String input + + + + Extract width and height of the passed SVGNodeRenderer, + defaulting to respective viewbox values if either one is not present or + to browser default if viewbox is missing as well + + + the + + instance that contains + the renderer tree + + float[2], width is in position 0, height in position 1 + + + + Tries to extract charset from + . + + + + + an instance for extra properties to customize the behavior + + charset | null + + + Helper class that allows you to check if a property is inheritable. + + + + Set of inheritable SVG style attributes + in accordance with "http://www.w3schools.com/cssref/" + and "https://developer.mozilla.org/en-US/docs/Web/CSS/Reference" + + + + + Style and attribute inheritance resolver for + + objects. + + + + Apply style and attribute inheritance to the tree formed by the root and the subTree. + the renderer to consider as the root of the subtree + + the tree of + + + the current SVG CSS context + + + Default implementation of SVG`s styles and attribute resolver . + + + The device description. + + + The list of fonts. + + + The resource resolver + + + + Creates a + + with a given default CSS. + + the default CSS + the processor context + + + + Creates a + . + + the processor context + + + + Creates a + . + + + Creates a + + . This constructor will instantiate its internal + style sheet and it will collect the css declarations from the provided node. + + node to collect css from + the processor context + + + Resolves node styles without inheritance of parent element styles. + the node + the CSS context (RootFontSize, etc.) + the map containing the resolved styles that are defined in the body of the element + + + + Resolves the full path of link href attribute, + thanks to the resource resolver. + + the attribute to process + the element styles map + + + Checks if string starts with #. + the test string + true if the string starts with #, otherwise false + + + Gets the list of fonts. + + the list of + + instances + + + + Collects fonts from the style sheet. + + + + Collects fonts from a + . + + the CSS statement + + + + Context necessary for evaluating certain Css statements whose final values depends on other statements + e.g. relative font-size statements. + + + + The root font size value in pt. + + + Gets the root font size. + the root font size in pt + + + Sets the root font size. + the new root font size + + + Class that bundles all the error message templates as constants. + + + + Exception thrown by + + when it cannot process an SVG + + + + Creates a new SvgProcessingException instance. + the message + + + Creates a new SvgProcessingException instance. + the message + the nested exception + + + Class that holds the logging and exception messages. + + + + Defines a property of markable elements (<path>, <line>, <polyline> or + <polygon>) which is used to determine at which verticies a marker should be drawn. + + + + Specifies that marker will be drawn only at the first vertex of element. + + + Specifies that marker will be drawn at every vertex except the first and last. + + + Specifies that marker will be drawn only at the last vertex of element. + + + + Default implementation of + . + + + Default implementation of + . + This implementation traverses the + + tree depth-first, + using a stack to recreate a tree of + + with the same structure. + + + + Instantiates a DefaultSvgProcessor object. + + + Load in configuration, set initial processorState and create/fill-in context of the processor + that contains configuration properties and operations + + + Start the depth-first traversal of the INode tree, pushing the results on the stack + node to start on + + + Extract result from internal processorState and clean up afterwards + Root renderer of the processed SVG + + + Recursive visit of the object tree, depth-first, processing the visited node and calling visit on its children. + + + Recursive visit of the object tree, depth-first, processing the visited node and calling visit on its children. + Visit responsibilities for element nodes: + - Assign styles(CSS and attributes) to element + - Create Renderer based on element + - push and pop renderer to stack + Visit responsibilities for text nodes + - add text to parent object + + INode to visit + + + Check if this node is a text node that needs to be processed by the parent + node to check + true if the node should be processed as text, false otherwise + + + Process the text contained in the text-node + node containing text to process + + + Find the first element in the node-tree that corresponds with the passed tag-name. + Find the first element in the node-tree that corresponds with the passed tag-name. Search is performed depth-first + + root-node to start with + name of the tag that needs to be fonund + IElementNode + + + Class that processes and add resolved css fonts to the FontProvider + + + Adds @font-face fonts to the FontProvider. + the css styles resolver + + + Creates a font and adds it to the context. + the font family + the source of the font + true, if successful + + + + Internal ProcessorState representation for + + + + + Instantiates the processor state. + + + Returns the amount of ISvgNodeRenderers being processed. + amount of ISvgNodeRenderers + + + Adds an ISvgNodeRenderer to the processor's state. + renderer to be added to the state + + + Removes and returns the first renderer of the processor state. + the removed ISvgNodeRenderer object + + + Returns the first ISvgNodeRenderer object without removing it. + the first ISvgNodeRenderer + + + Returns true when the processorstate is empty, false when there is at least one ISvgNodeRenderer in the state. + + true if empty, false if not empty + + + + Default and fallback implementation of + + for + . + + + + The media device description. + + + The font provider. + + + The base URI. + + + The resource retriever. + + + + Creates a new + + instance. + + + Creates a new + + instance. + Instantiates its members, IResourceRetriever and ISvgNodeRendererFactory, to its default implementations. + + + + Gets the base URI. + the base URI + + + Gets the font provider. + the font provider + + + Gets the media device description. + the media device description + + + Sets the media device description. + the media device description + the ConverterProperties instance + + + Sets the base URI. + the base URI + the ConverterProperties instance + + + Sets the resource retriever. + + Sets the resource retriever. + The resourceRetriever is used to retrieve data from resources by URL. + + the resource retriever + + the + + instance + + + + Context class with accessors to properties/objects used in processing Svg documents + + + The font provider. + + + Temporary set of fonts used in the PDF. + + + The device description. + + + The SVG CSS context. + + + + Instantiates a new + + instance. + + + a + + instance + + + + Gets the font provider. + the font provider + + + Gets the resource resolver. + the resource resolver + + + Gets the device description. + the device description + + + Gets the temporary set of fonts. + the set of fonts + + + Gets the SVG CSS context. + the SVG CSS context + + + Add temporary font from @font-face. + the font program + the encoding + the alias + the specific range of characters to be used from the font + + + Add temporary font from @font-face. + the font program + the encoding + the alias + + + Add temporary font from @font-face. + the font info + the alias + + + + A wrapper class that encapsulates processing results of + + objects. + + + + + Creates new + + entity. + + + a map of named-objects with their id's as + + keys and + the + + objects as values. + + + a wrapped + + root renderer. + + + a + + instance. + + + + + Gets processor context, containing + + and + + of temporary fonts inside. + + + + + instance + + + + + Interface for the configuration classes used by + + + + + + Retrieve the factory responsible for creating + + + + A + + implementation + + + + Gets the font provider. + the font provider + + + Get the name of the Charset to be used when decoding an InputStream. + + Get the name of the Charset to be used when decoding an InputStream. This + method is allowed to return null, in which case + UTF-8 + will + be used (by JSoup). + + Please be aware that this method is NOT used when handling a + String + variable in the + . + + + the String name of the + + used for decoding + + + + Gets the base URI. + the base URI + + + Gets the media device description. + the media device description + + + Gets the resource retriever. + + Gets the resource retriever. + The resourceRetriever is used to retrieve data from resources by URL. + + the resource retriever + + + Interface for SVG processors. + + Interface for SVG processors. + Processors take the root + + that corresponds to a Svg element + and return a + + that serves as the root for the same SVG + + + + + Process an SVG, returning the root of a renderer-tree and a list + of named objects wrapped in a processor result object + + Root of the INode representation of the SVG + configuration properties + + root of the renderer-tree representing the SVG wrapped in {link + + } + + + + Interface for SVG processors results. + + + Obtains a map of named-objects with their id's as keys and the objects as values + + Map of Strings as keys and + + as values + + + + + Obtains the wrapped + + root renderer. + + ISvgNodeRenderer + + + + Obtains the + . + + FontProvider + + + Obtains the list of temporary fonts + FontSet + + + + The default implementation of + + that will be + used by default by the entry points defined by this project. + + + + + Default constructor with default + + creation logic. + + + + + Contains the mapping of the default implementations, provided by this project for the standard SVG + tags as defined in the SVG Specification. + + + + + Creates a new + + instance. + + + + Gets the default SVG tags mapping. + the default SVG tags mapping + + + Gets the default ignored SVG tags. + default ignored SVG tags + + + + Interface for the factory used by + . + + + Interface for the factory used by + . + Pass along using + . + + + + Create a configured renderer based on the passed Svg tag and set its parent. + Representation of the Svg tag, with all style attributes set + renderer of the parent tag + Configured ISvgNodeRenderer + + + Checks whether the provided tag is an ignored tag of this factory or not. + Checks whether the provided tag is an ignored tag of this factory or not. If ignored, the factory won't process this IElementNode into an ISvgNodeRenderer. + + the IElementNode + true if ignored + + + Interface that defines branches in the NodeRenderer structure. + + Interface that defines branches in the NodeRenderer structure. Differs from a leaf renderer + in that a branch has children and as such methods that can add or retrieve those children. + + + + Adds a renderer as the last element of the list of children. + any renderer + + + Gets all child renderers of this object. + the list of child renderers (in the order that they were added) + + + Interface implemented by elements that support marker drawing. + + Interface implemented by elements that support marker drawing. + Defines methods for working with markers. + + + + Draws a marker in the specified context. + + Draws a marker in the specified context. + The marker is drawn on the vertices defined according to the given marker type. + + the object that knows the place to draw this element and maintains its state + + type of marker that determine on which vertices of the given element + marker should be drawn + + + + + Calculates marker orientation angle if + orient + attribute is set to + auto + + marker for which the rotation angle should be calculated + indicates that the resulting angle should be rotated 180 degrees + + marker orientation angle so that its positive x-axis is pointing in the direction of the path at the + point it is placed + + + + + Abstract class that will be the superclass for any element that can function + as a parent. + + + + The number of viewBox values. + + + + Method that will set properties to be inherited by this branch renderer's + children and will iterate over all children in order to draw them. + + + the object that knows the place to draw this element and + maintains its state + + + + Applies a transformation based on a viewBox for a given branch node. + current svg draw context + + + Applies a clipping operation based on the view port. + the svg draw context + + + If present, process the preserveAspectRatio position. + the svg draw context + the four values depicting the viewbox [min-x min-y width height] + alignment method to use + the multiplier for scaling width + the multiplier for scaling height + the transformation based on the preserveAspectRatio value + + + Cleans up the SvgDrawContext by removing the current viewport and by popping the current canvas. + context to clean + + + + Create a deep copy of every child renderer and add them to the passed + + + renderer to add copies of children to + + + + When in the svg element + overflow + is + visible + the corresponding formXObject + should have a BBox (form XObject’s bounding box; see PDF 32000-1:2008 - 8.10.2 Form Dictionaries) + that should cover the entire svg space (page in pdf) in order to be able to show parts of the element which are outside the current element viewPort. + + + When in the svg element + overflow + is + visible + the corresponding formXObject + should have a BBox (form XObject’s bounding box; see PDF 32000-1:2008 - 8.10.2 Form Dictionaries) + that should cover the entire svg space (page in pdf) in order to be able to show parts of the element which are outside the current element viewPort. + To do this, we get the inverse matrix of all the current transformation matrix changes and apply it to the root viewPort. + This allows you to get the root rectangle in the final coordinate system. + + current context to get canvases and view ports + stream to write a BBox + + + Calculate the viewport based on the context. + the SVG draw context + the viewport that applies to this renderer + + + + + abstract implementation for gradient tags + (<linearGradient>, <radialGradient>). + + + + Checks whether the gradient units values are on user space on use or object bounding box + + + + if the 'gradientUnits' value of the gradient tag equals + to 'userSpaceOnUse', otherwise + + + + + Evaluates the 'gradientTransform' transformations + + an + + object representing the specified gradient transformation + + + + Construct a list of child stop renderers + + a list of + + elements that represents the child stop values + + + + Parses the gradient spread method + + the parsed + + specified in the gradient + + + + + + abstract implementation. + + + + Map that contains attributes and styles used for drawing operations. + + + + Retrieves the property value for a given key name or default if the property value is + + or missing. + + the name of the property to search for + + the default value to be returned if the property is + + or missing + + + the value for this key, or + + + + + + Applies transformations set to this object, if any, and delegates the drawing of this element and its children + to the + doDraw + method. + + the object that knows the place to draw this element and maintains its state + + + Method to see if a certain renderer can use fill. + true if the renderer can use fill + + + Method to see if the renderer can create a viewport + true if the renderer can construct a viewport + + + Return font-size of the current element + absolute value of font-size + + + + Make a deep copy of the styles and attributes of this renderer + Helper method for deep copying logic + + renderer to insert the deep copied attributes into + + + Draws this element to a canvas-like object maintained in the context. + the object that knows the place to draw this element and maintains its state + + + Calculate the transformation for the viewport based on the context. + + Calculate the transformation for the viewport based on the context. Only used by elements that can create + viewports + + the SVG draw context + the transformation that needs to be applied to this renderer + + + Operations to be performed after drawing the element. + + Operations to be performed after drawing the element. + This includes filling, stroking. + + the svg draw context + + + Operations to perform before drawing an element. + + Operations to perform before drawing an element. + This includes setting stroke color and width, fill color. + + the svg draw context + + + Parse absolute length. + + + + for parsing + + the value on which percent length is based on + default value if length is not recognized + + current + + + absolute value in points + + + + + implementation for the <circle> tag. + + + + This renderer represents a collection of elements (simple shapes and paths). + + This renderer represents a collection of elements (simple shapes and paths). + The elements are not drawn visibly, but the union of their shapes will be used + to only show the parts of the drawn objects that fall within the clipping path. + In PDF, the clipping path operators use the intersection of all its elements, not the union (as in SVG); + thus, we need to draw the clipped elements multiple times if the clipping path consists of multiple elements. + + + + + + implementation for the <circle> tag. + + + + + Fetches a map of String values by calling getAttribute(String s) method + and maps it's values to arc parameter cx, cy , rx, ry respectively + + boolean values to indicate whether all values exit or not + + + This renderer represents a branch in an SVG tree. + This renderer represents a branch in an SVG tree. It doesn't do anything aside from calling the superclass doDraw. + + + + Responsible for drawing Images to the canvas. + + Responsible for drawing Images to the canvas. + Referenced SVG images aren't supported yet. TODO DEVSIX-2277 + + + + Return the bounding rectangle of the text element. + + current + + + end point of previous text element + + created instance of + + + + + + + implementation for the <linearGradient> tag. + + + + + + implementation for the <line> tag. + + + + + + implementation for the <marker> tag. + + + + + + implementation for the <path> tag. + + + + + The regular expression to find invalid operators in the PathData + attribute of the <path> element + + + The regular expression to find invalid operators in the PathData + attribute of the <path> element + + Find any occurrence of a letter that is not an operator + + + + + The regular expression to split the PathData attribute of + the <path> element + + + The regular expression to split the PathData attribute of + the <path> element + + Since + + is called before the use of this expression + in + + the attribute to be split is valid. + + SVG defines 6 types of path commands, for a total of 20 commands: + + MoveTo: M, m + LineTo: L, l, H, h, V, v + Cubic Bezier Curve: C, c, S, s + Quadratic Bezier Curve: Q, q, T, t + Elliptical Arc Curve: A, a + ClosePath: Z, z + + + + + The + + shape keeping track of the initial point set by a + + operation. + + + The + + shape keeping track of the initial point set by a + + operation. + The original value is + + , and must be set via a + + operation before it may be drawn. + + + + + Gets the coordinates that shall be passed to + + for the current shape. + + The current shape. + The previous shape which can affect the coordinates of the current shape. + + The operator and all arguments as an array of + String + s + + + a + + array of coordinates that shall be passed to + + + + + + Processes an individual pathing operator and all of its arguments, converting into one or more + + objects. + + + The property operator and all arguments as an array of + + s + + + The previous shape which can affect the positioning of the current shape. If no previous + shape exists + + is passed. + + + a + + of each + + that should be drawn to represent the operator. + + + + + Processes the + + + + and converts them + into one or more + + objects to be drawn on the canvas. + + + Processes the + + + + and converts them + into one or more + + objects to be drawn on the canvas. + + Each individual operator is passed to + + to be + processed individually. + + + a + + of each + + that should be drawn to represent the path. + + + + Iterate over the input string and separate numbers from each other with space chars + + + + Gets an array of strings representing operators with their arguments, e.g. {"M 100 100", "L 300 100", "L200, + 300", "z"} + + + + Implementation for the svg <pattern> tag. + + + Root renderer responsible for applying the initial axis-flipping transform + + + + Creates a + + instance. + + root of the subtree + + + + + implementation for the <polygon> tag. + + + + + Calls setPoints(String) to set + + Then calls + + to create a path between the first and last point if it doesn't already exist + + + + + Appends the starting point to the end of + + if it is not already there. + + + + + + implementation for the <polyline> tag. + + + + + A List of + + objects representing the path to be drawn by the polyline tag + + + + + Parses a string of space separated x,y pairs into individual + + objects and appends them to + . + + + Parses a string of space separated x,y pairs into individual + + objects and appends them to + . + Throws an + + if pointsAttribute does not have a valid list of numerical x,y pairs. + + A string of space separated x,y value pairs + + + Draws this element to a canvas-like object maintained in the context. + the object that knows the place to draw this element and maintains its state + + + + + implementation for the <rect> tag. + + + + Constructs a RectangleSvgNodeRenderer. + + + + a radius must be positive, and cannot be more than half the distance in + the dimension it is for. + + + a radius must be positive, and cannot be more than half the distance in + the dimension it is for. + e.g. rx <= width / 2 + + + + + In case of a circular radius, the calculation in + + isn't enough: the radius cannot be more than half of the smallest + dimension. + + + In case of a circular radius, the calculation in + + isn't enough: the radius cannot be more than half of the smallest + dimension. + This method assumes that + + has already run, and it is + silently assumed (though not necessary for this method) that either + + or + + is zero. + + + + + + implementation for the gradient <stop> tag. + + + + Evaluates the stop color offset value. + the stop color offset value in [0, 1] range + + + Evaluates the rgba array of the specified stop color. + + the array of 4 floats which contains the rgba value corresponding + to the specified stop color + + + + Evaluates the stop opacity of the specified stop color. + the stop opacity value specified in the stop color + + + + + implementation for the <svg> tag. + + + + + + implementation for drawing text to a canvas. + + + + + + implementation for the <text> and <tspan> tag. + + + + Top level transformation to flip the y-axis results in the character glyphs being mirrored, this tf corrects for this behaviour + + + + + Method that will set properties to be inherited by this branch renderer's + children and will iterate over all children in order to draw them. + + + the object that knows the place to draw this element and + maintains its state + + + + Return the font used in this text element. + + Return the font used in this text element. + Note that font should already be resolved with + . + + font of the current text element + + + Renderer implementing the use tag. + Renderer implementing the use tag. This tag allows you to reuse previously defined elements. + + + Interface that defines branches in the NodeRenderer structure that will not draw on its own. + + + + Interface for SvgNodeRenderer, the renderer draws the SVG to its Pdf-canvas + passed in + + , applying styling + (CSS and attributes). + + + + Sets the parent of this renderer. + + Sets the parent of this renderer. The parent may be the source of + inherited properties and default values. + + the parent renderer + + + Gets the parent of this renderer. + + Gets the parent of this renderer. The parent may be the source of + inherited properties and default values. + + the parent renderer; null in case of a root node + + + Draws this element to a canvas-like object maintained in the context. + + the object that knows the place to draw this element and + maintains its state + + + + + Sets the map of XML node attributes and CSS style properties that this + renderer needs. + + the mapping from key names to values + + + Retrieves the property value for a given key name. + the name of the property to search for + + the value for this key, or + + + + + Sets a property key and value pairs for a given attribute + the name of the attribute + the value of the attribute + + + Get a modifiable copy of the style and attribute map + copy of the attributes and styles-map + + + Creates a deep copy of this renderer, including it's subtree of children + deep copy of this renderer + + + Calculates the current object bounding box. + + the current context, for instance it contains current viewport and available + font data + + + the + + representing the current object's bounding box, or null + if bounding box is undefined + + + + Interface for working with paint servers. + + Interface for working with paint servers. These are the elements that are referenced from the fill or stroke of an + object. + + + + + Creates the + + that represents the corresponding paint server for specified object box. + + the current svg draw context + + the coloring object bounding box without any adjustments + (additional stroke width or others) + + + the objectBoundingBoxMargin of the object bounding box + to be colored (for example - the part of stroke width + that exceeds the object bounding box, i.e. the half of stroke + width value) + + current parent opacity modifier + the created color + + + This class handles common behaviour in IPathShape implementations + + + The properties of this shape. + + + Whether this is a relative operator or not. + + + Get bounding rectangle of the current path shape. + start point for this shape + calculated rectangle + + + Implements closePath(Z) attribute of SVG's path element + + + Implements curveTo(C) attribute of SVG's path element + + + + Initial function of cubic bezier is f(t) = (t-1)^3*P0 + 3*(1-t)^2*t*P1 + 3*(1-t)*t^2*P2 + t^3*P3, where 0 <= t <= 1 + After opening brackets it can be reduced to f(t) = a*t^3 + b*t^2 + c*t + d, where + a = P3-3*P2+3*P1-P0 + b = 3*P2-6*P1+3*P0 + c = 3*P1-3*P0 + d = P0 + First we must find the values of t at which the function reaches its extreme points. + + + Initial function of cubic bezier is f(t) = (t-1)^3*P0 + 3*(1-t)^2*t*P1 + 3*(1-t)*t^2*P2 + t^3*P3, where 0 <= t <= 1 + After opening brackets it can be reduced to f(t) = a*t^3 + b*t^2 + c*t + d, where + a = P3-3*P2+3*P1-P0 + b = 3*P2-6*P1+3*P0 + c = 3*P1-3*P0 + d = P0 + First we must find the values of t at which the function reaches its extreme points. + This happens in the method + . + Next we get x and y values in extremes and compare it with the start and ending points coordinates to get the borders of the bounding box. + + x coordinate of the starting point + y coordinate of the starting point + x coordinate of the first control point + y coordinate of the first control point + x coordinate of the second control point + y coordinate of the second control point + x coordinate of the ending point + y coordinate of the ending point + array of {xMin, yMin, xMax, yMax} values + + + Calculate values of t at which the function reaches its extreme points. + + Calculate values of t at which the function reaches its extreme points. To do this, we get the derivative of the function and equate it to 0: + f'(t) = 3a*t^2 + 2b*t + c. This is parabola and for finding we calculate the discriminant. t can only be in the range [0, 1] and it discarded otherwise. + + x coordinate of the starting point + y coordinate of the starting point + x coordinate of the first control point + y coordinate of the first control point + x coordinate of the second control point + y coordinate of the second control point + x coordinate of the ending point + y coordinate of the ending point + array of theta values corresponding to extreme points + + + Calculate the quadratic function 3a*t^2 + 2b*t + c = 0 to obtain the values of t + coordinate of the starting point + coordinate of the first control point + coordinate of the second control point + coordinate of the ending point + list of t values. t should be in range [0, 1] + + + Check that t is in the range [0, 1] and add it to list + value of t + list storing t values + + + Implements elliptical curveTo (A) segment of SVG's path element. + + Implements elliptical curveTo (A) segment of SVG's path element. Implemented in PDF as Bézier curves. + Edge cases & value correction below always refer to https://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes + For some calculations we need double precision floating point math, so we have forced all calculations to use double. + However, float comparison is used instead of double comparison, because close coordinates can be considered equal. + + + + Creates an absolute Elliptical curveTo. + + + Creates a Elliptical curveTo. + Creates a Elliptical curveTo. Set argument to true to create a relative EllipticalCurveTo. + whether this is a relative EllipticalCurveTo or not + + + This convenience method rotates a given set of points around a given point + the input list + the rotation angle, in radians + the point to rotate around + the list of rotated points + + + + Converts between two types of definitions of an arc: + The input is an arc defined by two points and the two semi-axes of the ellipse. + + + Converts between two types of definitions of an arc: + The input is an arc defined by two points and the two semi-axes of the ellipse. + The output is an arc defined by a bounding rectangle, the starting angle, + and the angular extent of the ellipse that is to be drawn. + The output is an intermediate step to calculating the Bézier curve(s) that approximate(s) the elliptical arc, + which happens in + . + + + + + Algorithm to find elliptical arc bounding box: + 1. + + + Algorithm to find elliptical arc bounding box: + 1. Compute extremes using parametric description of the whole ellipse + We use parametric description of ellipse: + x(theta) = cx + rx*cos(theta)*cos(phi) - ry*sin(theta)*sin(phi) + y(theta) = cy + rx*cos(theta)*sin(phi) + ry*sin(theta)*cos(phi) + After obtaining the derivative and equating it to zero, we get two solutions for x: + theta = -atan(ry*tan(phi)/rx) and theta = M_PI -atan(ry*tan(phi)/rx) + and two solutions for y: + theta = atan(ry/(tan(phi)*rx)) and theta = M_PI + atan(ry/(tan(phi)*rx)) + Then to get theta values we need to know cx and cy - the coordinates of the center of the ellipse. + 2. Compute the center of the ellipse + Method + + 3. Determine the bounding box of the whole ellipse + When we know cx and cy values we can get the bounding box of whole ellipse. That done in the method + . + 4. Find tightest possible bounding box + Check that given points is on the arc using polar coordinates of points. Method + . + + x coordinate of the starting point + y coordinate of the starting point + x radius + y radius + x-axis rotation + large arc flag. If this is true, then one of the two larger arc sweeps will be chosen (greater than or equal to 180 degrees) + + sweep flag. If sweep flag is true, then the arc will be drawn in a "positive-angle" direction and if false - in a "negative-angle" direction + + x coordinate of ending point + y coordinate of ending point + array of {xMin, yMin, xMax, yMax} values + + + Calculate the center coordinates of the whole ellipse. + + Calculate the center coordinates of the whole ellipse. + Also return rx, ry values since they can be changed in this method. + Algorithm for calculation centre coordinates: https://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter + + x coordinate of the starting point + y coordinate of the starting point + x radius + y radius + x-axis rotation + large arc flag + sweep flag + x coordinate of ending point + y coordinate of ending point + the array of {cx, cy, rx, ry} values + + + Calculate extremes of the ellipse function and corresponding angles. + + Calculate extremes of the ellipse function and corresponding angles. + Angles are calculated relative to the center of the ellipse. + + x radius + y radius + x-axis rotation + x coordinate of ellipse center + y coordinate of ellipse center + array of extreme coordinate and array of angles corresponding to these coordinates. + + + Check that angle corresponding to extreme points is on the current arc. + + Check that angle corresponding to extreme points is on the current arc. + For this we check that this angle is between the angles of starting and ending points. + + angle to check + angle of the first extreme point if ellipse(starting or ending) + angle of the second extreme point if ellipse(starting or ending) + if we should check that point is placed on the other arc of the current ellipse + true if point is on the arc + + + + Return the angle between the vector (1, 0) and the line specified by points (0, 0) and (bx, by) in range [ 0, + Pi/2 ] U [ 3*Pi/2, 2*Pi). + + + Return the angle between the vector (1, 0) and the line specified by points (0, 0) and (bx, by) in range [ 0, + Pi/2 ] U [ 3*Pi/2, 2*Pi). + As the angle between vectors should cover the whole circle, i.e. [0, 2* Pi). + General formula to find angle between two vectors is formula F.6.5.4 on the https://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter. + + x coordinate of the vector ending point + y coordinate of the vector ending point + calculated angle between vectors + + + Implements lineTo(H) attribute of SVG's path element + + + Creates an absolute Horizontal LineTo. + + + Creates a Horizontal LineTo. + Creates a Horizontal LineTo. Set argument to true to create a relative HorizontalLineTo. + whether this is a relative HorizontalLineTo or not + + + Interface that describes a Path object which is defined by control points. + + Interface that describes a Path object which is defined by control points. In practice this only means Bézier curves, + both quadratic (one control point) and cubic (two control points). This interface is relevant in the context of + Smooth (Shorthand) Bézier curves, which omit a control point from their arguments list because it can be calculated + from the last control point of the previous curve. Therefore, the last control point of a curve must be exposed to + the + + algorithm. + + + + + Returns coordinates of the last control point (the one closest to the ending point) + in the Bezier curve, in SVG space coordinates + + coordinates of the last control point in SVG space coordinates + + + + A locally used strategy for converting relative coordinates to absolute coordinates (in the current SVG coordinate + space). + + + A locally used strategy for converting relative coordinates to absolute coordinates (in the current SVG coordinate + space). Its implementation differs between Smooth (Shorthand) Bézier curves and all other path commands. + + + + Convert an array of relative coordinates to an array with the same size containing absolute coordinates. + + the initial set of coordinates + an array representing the point relative to which the relativeCoordinates are defined + + a String array of absolute coordinates, with the same length as the input array + + + + Implementation of + + specifically for smooth curves. + + + Implementation of + + specifically for smooth curves. It will convert all operators from + relative to absolute coordinates except the first coordinate pair. + This implementation is used by the Smooth (Shorthand) Bézier curve commands, because the conversion of the first + coordinate pair is calculated in + . + + + + + Default implementation of + + used by the regular (not-smooth) curves and other path commands. + + + Default implementation of + + used by the regular (not-smooth) curves and other path commands. + It will convert all operators from relative to absolute coordinates. + + + + Implements lineTo(L) attribute of SVG's path element + + + Implements moveTo(M) attribute of SVG's path element + + + + The implementation of + + that will be used by + sub classes of + + To map the path-data + instructions(moveto, lineto, corveto ...) to their respective implementations. + + + + Implements quadratic Bezier curveTo(Q) attribute of SVG's path element + + + Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point + + + + + The algorithm is similar to cubic curve in the method CurveTo#getBezierMinMaxPoints, + but the initial function is f(t) = (1 - t)^2*P0 + 2*(1-t)*t*P1 + t^2*P2, 0 <= t <= 1 + + x coordinate of the starting point + y coordinate of the starting point + x coordinate of the control point + y coordinate of the control point + x coordinate of the ending point + y coordinate of the ending point + array of {xMin, yMin, xMax, yMax} values + + + Calculate values of t at which the function reaches its extreme points. + + Calculate values of t at which the function reaches its extreme points. To do this, we get the derivative of the + function and equate it to 0: + f'(t) = 2a*t + b. t can only be in the range [0, 1] and it discarded otherwise. + + x coordinate of the starting point + y coordinate of the starting point + x coordinate of the control point + y coordinate of the control point + x coordinate of the ending point + y coordinate of the ending point + array of theta values corresponding to extreme points + + + Check that t is in the range [0, 1] and add it to list + value of t + list storing t values + + + Implements shorthand/smooth quadraticCurveTo (T) attribute of SVG's path element + + + Implements shorthand/smooth curveTo (S) attribute of SVG's path element + + + Implements lineTo(V) attribute of SVG's path element + + + Creates an absolute Vertical LineTo. + + + Creates a Vertical LineTo. + Creates a Vertical LineTo. Set argument to true to create a relative VerticalLineTo. + whether this is a relative VerticalLineTo or not + + + Interface for IPathShape, which draws the Path-data's d element instructions. + + + Draws this instruction to a canvas object. + to which this instruction is drawn + + + + This method sets the coordinates for the path painting operator and does internal + preprocessing, if necessary + + an array containing point values for path coordinates + + the ending point of the previous operator, or, in broader terms, + the point that the coordinates should be absolutized against, for relative operators + + + + + Gets the ending point on the canvas after the path shape has been drawn + via the + + method, in SVG space coordinates. + + + The + + representing the final point in the drawn path. + If the point does not exist or does not change + + may be returned. + + + + Returns true when this shape is a relative operator. + Returns true when this shape is a relative operator. False if it is an absolute operator. + true if relative, false if absolute + + + Get bounding rectangle of the current path shape. + start point for this shape + calculated rectangle + + + + Interface that will provide a mapping from path element-data instruction names to + . + + + + Provides a mapping of Path-data instructions' names to path shape classes. + + a + + with Strings as keys and {link @ + + implementations as values + + + + + A factory for creating + + objects. + + + + + Creates a configured + + object based on the passed Svg path data instruction tag. + + svg path element's path-data instruction name. + IPathShape implementation + + + Finds the appropriate number of arguments for a path command, based on the passed Svg path data instruction tag. + + svg path element's path-data instruction name. + an integer value with the required number of arguments or null if there is no mapping for the given value + + + + + The SvgDrawContext keeps a stack of + + instances, which + represent all levels of XObjects that are added to the root canvas. + + + + Create an instance of the context that is used to store information when converting SVG. + + instance of + + + + instance of + + + + + Retrieves the current top of the stack, without modifying the stack. + the current canvas that can be used for drawing operations. + + + + Retrieves the current top of the stack, thereby taking the current item + off the stack. + + the current canvas that can be used for drawing operations. + + + + Adds a + + to the stack (by definition its top), for use in + drawing operations. + + the new top of the stack + + + + Get the current size of the stack, signifying the nesting level of the + XObjects. + + the current size of the stack. + + + Adds a viewbox to the context. + rectangle representing the current viewbox + + + Get the current viewbox. + the viewbox as it is currently set + + + Get the viewbox which is the root viewport for the current document. + root viewbox. + + + Remove the currently set view box. + + + Adds a named object to the draw context. + Adds a named object to the draw context. These objects can then be referenced from a different tag. + + name of the object + object to be referenced + + + Get a named object based on its name. + Get a named object based on its name. If the name isn't listed, this method will return null. + name of the object you want to reference + the referenced object + + + Gets the ResourceResolver to be used during the drawing operations. + resource resolver instance + + + * Adds a number of named object to the draw context. + * Adds a number of named object to the draw context. These objects can then be referenced from a different tag. + + Map containing the named objects keyed to their ID strings + + + Gets the FontProvider to be used during the drawing operations. + font provider instance + + + Gets list of temporary fonts from @font-face. + font set instance + + + Sets the FontSet. + font set to be used during drawing operations + + + Returns true when this id has been used before + element id to check + true if id has been encountered before through a use element + + + Adds an ID that has been referenced by a use element. + referenced element ID + + + Removes an ID that has been referenced by a use element. + referenced element ID + + + Get the text transformation that was last applied + + + + representing the last text transformation + + + + Set the last text transformation + last text transformation + + + Get the stored current text move + [horizontal text move, vertical text move] + + + Reset the stored text move to [0f,0f] + + + Increment the stored text move + horizontal value to add + vertical value to add + + + Get the current canvas transformation + + the + + representing the current canvas transformation + + + + Gets the SVG CSS context. + the SVG CSS context + + + Sets the SVG CSS context. + the SVG CSS context + + + Add pattern id to stack. + + Add pattern id to stack. Check if the id is already in the stack. + If it is, then return + + and not add, if it is not - add and return + . + + pattern id + + + + if pattern id was not on the stack and was pushed; + + if it is on the stack + + + + Pops the last template id from the stack. + + + + A class containing constant values signifying the proeprty names of tags, attribute, CSS-style + and certain values in SVG XML. + + + + Class containing the constant property names for the tags in the SVG spec + + + Tag defining a Hyperlink. + + + Alternate glyphs to be used instead of regular grlyphs, e.g. ligatures, Asian scripts, ... + + + Defines a set of glyph substitions. + + + Defines a candidate set of glyph substitutions. + + + Not supported in PDF. + + + Not supported in PDF. + + + Not supported in PDF. + + + Not supported in PDF. + + + + Tag defining a + circle. + + 7.1.2 + + + Tag defining a clipping path. + Tag defining a clipping path. A clipping path defines the region where can be drawn. Anything outside the path won't be drawn. + + + + Tag defining the color profile to be used. + + + Not supported in PDF + + + Tag defining objects that can be reused from another context + + + Tag defining the description of its parent element + + + + Tag defining an + ellipse. + + 7.1.2 + + + Tag defining how to blend two objects together. + + + Tag defining the color matrix transformations that can be performed. + + + Tag defining color component remapping. + + + Tag defining the combination of two input images. + + + Tag defining a matrix convolution filter + + + Tag defining the lighting map. + + + Tag defining the values to displace an image. + + + Tag defining a distant light source. + + + Tag defining the fill of a subregion. + + + Tag defining the transfer function for the Alpha component. + + + Tag defining the transfer function for the Blue component. + + + Tag defining the transfer function for the Green component. + + + Tag defining the transfer function for the Red component. + + + Tag defining the blur values. + + + Tag defining a image data from a source. + + + Tag defining that filters will be applied concurrently instead of sequentially. + + + Tag defining a node in a merge. + + + Tag defining the erosion or dilation of an image. + + + Tag defining the offset of an image. + + + Tag defining a point light effect. + + + Tag defining a lighting map. + + + Tag defining a spotlight. + + + Tag defining a fill that can be repeated. + Tag defining a fill that can be repeated. Similar to PATTERN. + + + Tag defining values for the perlin turbulence function. + + + Tag defining a collection of filter operations. + + + Tag defining a font. + + + Tag defining a font-face. + + + Tag defining the formats of the font. + + + Tag defining the name of the font. + + + Tag defining the source file of the font. + + + Tag defining the URI of a font. + + + Tag definign a foreign XML standard to be inserted. + Tag definign a foreign XML standard to be inserted. E.g. MathML + + + Tag defining a group of elements. + + + Tag defining a single glyph. + + + Tag defining a sigle glyph for altGlyph. + + + Tag defining the horizontal kerning values in between two glyphs. + + + Tag defining an image. + + + + Tag defining a + line. + + 7.1.2 + + + + Tag defining a + linear gradient. + + + + Tag defining a link + + + Tag defining the graphics (arrowheads or polymarkers) to be drawn at the end of paths, lines, etc. + + + + Tag defining a mask. + + + Tag defining metadata. + + + Tag defining content to be rendered if a glyph is missing from the font. + + + Not supported in PDF + + + + Tag defining a + path. + + 7.1.2 + + + Tag defining a graphical object that can be repeated. + + + + Tag defining a + polygon + shape. + + 7.1.2 + + + + Tag defining a + polyline + shape. + + 7.1.2 + + + Tag defining a radial gradient + + + + Tag defining a + rectangle. + + 7.1.2 + + + Not supported in PDF. + + + Not supported in PDF. + + + Tag defining the ramp of colors in a gradient. + + + Tag defining the color in stop point of a gradient. + + + Tag defining the opacity in stop point of a gradient. + + + Tag defining the style to be. + + + + Tag defining an + SVG + element. + + 7.1.2 + + + Tag defining a switch element. + + + Tag defining graphical templates that can be reused by the use tag. + + + Tag defining text to be drawn on a page/screen. + 7.1.2 + + + Phantom tag for text leaf. + + + Tag defining a path on which text can be drawn. + + + Tag defining the description of an element. + Tag defining the description of an element. Is not rendered. + + + Tag defining a span within a text element. + + + Tag defining the use of a named object. + + + Tag defining how to view the image. + + + Tag defining the vertical kerning values in between two glyphs. + + + Class containing the constant property names for the attributes of tags in the SVG spec + + + Attribute defining the clipping path to be applied to a specific shape or group of shapes. + + + Attribute defining the clipping rule in a clipping path (or element thereof). + + + Attribute defining the x value of the center of a circle or ellipse. + + + Attribute defining the y value of the center of a circle or ellipse. + + + Attribute defining the outline of a shape. + + + Attribute defining the relative x-translation of a text-element + + + Attribute defining the relative y-translation of a text-element + + + Attribute defining the fill color. + + + Attribute defining the fill opacity. + + + Attribute defining the fill rule. + + + Attribute defining the font family. + + + Attribute defining the font weight. + + + Attribute defining the font style. + + + Attribute defining the font size. + + + The Constant ITALIC. + + + The Constant BOLD. + + + Attribute defining the units relation for a color gradient. + + + Attribute defining the transformations for a color gradient. + + + Attribute defining the height. + Attribute defining the height. Used in several elements. + + + Attribute defining the href value. + + + Attribute defining the unique id of an element. + + + Attribute defining the marker to use at the end of a path, line, polygon or polyline + + + Attribute defining the height of the viewport in which the marker is to be fitted + + + Attribute defining the marker drawn at every other vertex but the start and end of a path, line, polygon or polyline + + + + Attribute defining the marker to use at the start of a path, line, polygon or polyline + + + Attribute defining the width of the viewport in which the marker is to be fitted + + + Attribute defining the coordinate system for attributes ‘markerWidth’, ‘markerHeight’ and the contents of the ‘marker’. + + + + Attribute defining the offset of a stop color for gradients. + + + Attribute defining the opacity of a group or graphic element. + + + Attribute defining the orientation of a marker + + + Close Path Operator. + + + CurveTo Path Operator. + + + Relative CurveTo Path Operator. + + + Attribute defining Elliptical arc path operator. + + + Attribute defining Elliptical arc path operator. + + + Smooth CurveTo Path Operator. + + + Relative Smooth CurveTo Path Operator. + + + Absolute LineTo Path Operator. + + + Absolute hrizontal LineTo Path Operator. + + + Relative horizontal LineTo Path Operator. + + + Absolute vertical LineTo Path operator. + + + Relative vertical LineTo Path operator. + + + Relative LineTo Path Operator. + + + MoveTo Path Operator. + + + Relative MoveTo Path Operator. + + + Shorthand/smooth quadratic Bézier curveto. + + + Relative Shorthand/smooth quadratic Bézier curveto. + + + Catmull-Rom curve command. + + + Relative Catmull-Rom curve command. + + + Bearing command. + + + Relative Bearing command. + + + Quadratic CurveTo Path Operator. + + + Relative Quadratic CurveTo Path Operator. + + + Attribute defining the coordinate system for the pattern content. + + + Attribute defining list of transform definitions for the pattern element. + + + Attribute defining the coordinate system for attributes x, y, width , and height in pattern. + + + Attribute defining the points of a polyline or polygon. + + + Attribute defining how to preserve the aspect ratio when scaling. + + + Attribute defining the radius of a circle. + + + Attribute defining the x-axis coordinate of the reference point which is to be aligned exactly at the marker position. + + + + Attribute defining the y-axis coordinate of the reference point which is to be aligned exactly at the marker position. + + + + Attribute defining the x-axis of an ellipse or the x-axis radius of rounded rectangles. + + + Attribute defining the y-axis of an ellipse or the y-axis radius of rounded rectangles. + + + Attribute defining the spread method for a color gradient. + + + Attribute defining the stroke color. + + + Attribute defining the stroke dash offset. + + + Attribute defining the stroke dash offset. + + + Attribute defining the stroke linecap. + + + Attribute defining the stroke miterlimit. + + + Attribute defingin the stroke opacity. + + + Attribute defining the stroke width. + + + Attribute defining the style of an element. + + + Attribute defining the text content of a text node. + + + Attribute defining the text anchor used by the text + + + Attribute defining a transformation that needs to be applied. + + + Attribute defining the viewbox of an element. + + + Attribute defining the width of an element. + + + Attribute defining the x value of an element. + + + Attribute defining the first x coordinate value of a line. + + + Attribute defining the second x coordinate value of a line. + + + Attribute defining image source. + + + Attribute defining XML namespace + + + Attribute defining the y value of an element. + + + Attribute defining the first y coordinate value of a line. + + + Attribute defining the second y coordinate value of a line. + + + Attribute defining version + + + Class containing the constants for values appearing in SVG tags and attributes + + + Value representing automatic orientation for the marker attribute orient. + + + Value representing reverse automatic orientation for the start marker. + + + Value representing the default value for the stroke linecap. + + + Value representing the default aspect ratio: xmidymid. + + + Value representing how to preserve the aspect ratio when dealing with images. + + + Value representing the fill rule "even odd". + + + Value representing the fill rule "nonzero". + + + Value representing the meet for preserve aspect ratio calculations. + + + Value representing the "none" value". + + + Value representing the units relation "objectBoundingBox". + + + The value representing slice for the preserve aspect ratio calculations; + + + Value representing the text-alignment end for text objects + + + Value representing the text-alignment middle for text objects + + + Value representing the text-alignment start for text objects + + + Value representing the gradient spread method "pad". + + + Value representing the gradient spread method "repeat". + + + Value representing the gradient spread method "reflect". + + + The value for markerUnits that represent values in a coordinate system which has a single unit equal the size in user units of the current stroke width. + + + + Value representing the units relation "userSpaceOnUse". + + + Value representing how to align when scaling. + + + Value representing how to align when scaling. + + + Value representing how to align when scaling. + + + Value representing how to align when scaling. + + + Value representing how to align when scaling. + + + Value representing how to align when scaling. + + + Value representing how to align when scaling. + + + Value representing how to align when scaling. + + + Value representing how to align when scaling. + + + + Utility class for drowing shapes on + + + + + + Draw an arc on the passed canvas, + enclosed by the rectangle for which two opposite corners are specified. + + + Draw an arc on the passed canvas, + enclosed by the rectangle for which two opposite corners are specified. + The arc starts at the passed starting angle and extends to the starting angle + extent + + corner-coordinate of the enclosing rectangle, first corner + corner-coordinate of the enclosing rectangle, first corner + corner-coordinate of the enclosing rectangle, second corner + corner-coordinate of the enclosing rectangle, second corner + starting angle in degrees + extent of the arc + canvas to paint on + + + Converts relative coordinates to absolute ones. + + Converts relative coordinates to absolute ones. Assumes that relative coordinates are represented by + an array of coordinates with length proportional to the length of current coordinates array, + so that current coordinates array is applied in segments to the relative coordinates array + + the initial set of coordinates + an array representing the point relative to which the relativeCoordinates are defined + + a String array of absolute coordinates, with the same length as the input array + + + Calculate the angle between two vectors + first vector + second vector + angle between vectors in radians units + + + Returns absolute value for attribute in userSpaceOnUse coordinate system. + value of attribute. + default value. + start border for calculating percent value. + length for calculating percent value. + em value. + rem value. + absolute value in the userSpaceOnUse coordinate system. + + + Returns a value relative to the object bounding box. + + Returns a value relative to the object bounding box. + We should only call this method for attributes with coordinates relative to the object bounding rectangle. + + attribute value to parse + this value will be returned if an error occurs while parsing the attribute value + + + if + + is a percentage value, the given percentage of 1 will be returned. + And if it's a valid value with a number, the number will be extracted from that value. + + + + Returns the viewBox received after scaling and displacement given preserveAspectRatio. + + parsed viewBox rectangle. It should be a valid + + + + current element view port. It should be a valid + + + + the alignment value that indicates whether to force uniform scaling + and, if so, the alignment method to use in case the aspect ratio of + the viewBox doesn't match the aspect ratio of the viewport. If align + is + + or align is invalid (i.e. not in the predefined list), + then the default logic with align = "xMidYMid", and meetOrSlice = "meet" would be used + + + the way to scale the viewBox. If meetOrSlice is not + + and invalid, + then the default logic with align = "xMidYMid" + and meetOrSlice = "meet" would be used, if meetOrSlice is + + then default "meet" value would be used with the specified align + + + the applied viewBox + + + + + Utility class that facilitates parsing values from CSS. + + + Splits a given String into a list of substrings. + + Splits a given String into a list of substrings. + The string is split up by commas and whitespace characters (\t, \n, \r, \f). + + the string to be split + a list containing the split strings, an empty list if the value is null or empty + + + Converts a float to a String. + to be converted float value + the value in a String representation + + + Converts a double to a String. + to be converted double value + the value in a String representation + + + Class containing utility methods for text operations in the context of SVG processing + + + Trim all the leading whitespace characters from the passed string + string to trim + string with all leading whitespace characters removed + + + Trim all the trailing whitespace characters from the passed string + string to trim + string with al trailing whitespace characters removed + + + Process the whitespace inside the Text Tree. + + Process the whitespace inside the Text Tree. + Whitespace is collapsed and new lines are handled + A leading element in each subtree is handled different: the preceding whitespace is trimmed instead of kept + + root of the text-renderer subtree + true if this element is a leading element(either the first child or the first element after an absolute position change) + + + + Check if the String is only composed of whitespace characters + string to check + true if the string only contains whitespace characters, false otherwise + + + Resolve the font size stored inside the passed renderer + renderer containing the font size declaration + parent font size to fall back on if the renderer does not contain a font size declarations or if the stored declaration is invalid + + float containing the font-size, or the parent font size if the renderer's declaration cannot be resolved + + + + The reference value may contain a hashtag character or 'url' designation and this method will filter them. + + value to be filtered + filtered value + + + A rectangle adapted for working with text elements. + + + The y coordinate of the line on which the text is located. + + + Create new instance of text rectangle. + the x coordinate of lower left point + the y coordinate of lower left point + the width value + the height value + the y coordinate of the line on which the text is located. + + + Return the far right point of the rectangle with y on the baseline. + the far right baseline point + + + + Utility class responsible for converting Strings containing transformation declarations + into AffineTransform objects. + + + Utility class responsible for converting Strings containing transformation declarations + into AffineTransform objects. + + This class only supports the transformations as described in the SVG specification: + - matrix + - rotate + - scale + - skewX + - skewY + - translate + + + + Keyword for matrix transformations. + + Keyword for matrix transformations. Accepts 6 values. + + matrix(0 1 2 3 4 5) + + + + Keyword for rotation transformation. + + Keyword for rotation transformation. Accepts either 1 or 3 values. + In the case of 1 value, x and y are assumed to be the origin of the user space. + + rotate(angle x y) + rotate(angle) + + + + Keyword for scale transformation. + + Keyword for scale transformation. Accepts either 1 or 2 values. + In the case of 1 value, the second value is assumed to be the same as the first one. + + scale(x y) + scale(x) + + + + Keyword for skewX transformation. + + Keyword for skewX transformation. Accepts 1 value. + + skewX(angle) + + + + Keyword for skewY transformation. + + Keyword for skewY transformation. Accepts 1 value. + + skewY(angle) + + + + Keyword for translate transformation. + + Keyword for translate transformation. Accepts either 1 or 2 values. + In the case of 1 value, the y value is assumed to be 0. + + translate(x y) + translate(x) + + + + Converts a string containing a transform declaration into an AffineTransform object. + + Converts a string containing a transform declaration into an AffineTransform object. + This class only supports the transformations as described in the SVG specification: + - matrix + - translate + - skewx + - skewy + - rotate + - scale + + value to be parsed + the AffineTransform object + + + A transformation attribute can encompass multiple transformation operation (e.g. "translate(10,20) scale(30,40)". + + + A transformation attribute can encompass multiple transformation operation (e.g. "translate(10,20) scale(30,40)". + This method splits the original transformation string into multiple strings so that they can be handled separately. + + the transformation value + a list containing strings describing a single transformation operation + + + This method decides which transformation operation the given transformation strings maps onto. + string containing a transformation operation + the mapped AffineTransform object + + + Creates a skewY transformation. + values of the transformation + AffineTransform for the skew operation + + + Creates a skewX transformation. + values of the transformation + AffineTransform for the skew operation + + + Creates a rotate transformation. + values of the transformation + AffineTransform for the rotate operation + + + Creates a scale transformation. + values of the transformation + AffineTransform for the scale operation + + + Creates a translate transformation. + values of the transformation + AffineTransform for the translate operation + + + Creates a matrix transformation. + values of the transformation + AffineTransform for the matrix keyword + + + This method extracts the transformation name given a transformation. + the transformation + the name of the transformation + + + This method extracts the values from a transformation. + the transformation + values of the transformation + + + diff --git a/Bin/itextsharp.dll b/Bin/itextsharp.dll index d094db4ba..d9f1d5859 100644 Binary files a/Bin/itextsharp.dll and b/Bin/itextsharp.dll differ diff --git a/Bin/itextsharp.dll.refresh b/Bin/itextsharp.dll.refresh new file mode 100644 index 000000000..bdab5a750 --- /dev/null +++ b/Bin/itextsharp.dll.refresh @@ -0,0 +1 @@ +..\packages\iTextSharp.5.5.13.3\lib\itextsharp.dll \ No newline at end of file diff --git a/Bin/itextsharp.xml b/Bin/itextsharp.xml new file mode 100644 index 000000000..823198fd3 --- /dev/null +++ b/Bin/itextsharp.xml @@ -0,0 +1,38512 @@ + + + + itextsharp + + + + Gets the name of the resultant PDF file. + This name will be passed to makePdf, assertPdf and comparePdf methods. + @return + + + Gets the name of the compare PDF file. + This name will be passed to comparePdf method. + @return + + + Sets the maximum errors count which will be returned as the result of the comparison. + @param compareByContentMaxErrorCount the errors count. + @return Returns this. + + + Sets the absolute error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Sets the relative error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Creates a new instance of MemoryLimitsAwareException. + + @param message the detail message. + + + + A + + handles memory allocation and prevents decompressed pdf streams from occupation of more space than allowed. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default, based on the size of the document. + + the size of the document, which is going to be handled by iText. + + + Gets the maximum allowed size which can be occupied by a single decompressed pdf stream. + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + This value correlates with maximum heap size. This value should not exceed limit of the heap size. + iText will throw an exception if during decompression a pdf stream with two or more filters of identical type + occupies more memory than allowed. + + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + this + + instance. + + + + Gets the maximum allowed size which can be occupied by all decompressed pdf streams. + the maximum allowed size value which streams may occupy + + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + This value can be limited by the maximum expected PDF file size when it's completely decompressed. + Setting this value correlates with the maximum processing time spent on document reading + iText will throw an exception if during decompression pdf streams with two or more filters of identical type + occupy more memory than allowed. + + he maximum allowed size which can be occupied by all decompressed pdf streams. + + + this + + instance. + + + + Considers the number of bytes which are occupied by the decompressed pdf stream. + + Considers the number of bytes which are occupied by the decompressed pdf stream. + If memory limits have not been faced, throws an exception. + + the number of bytes which are occupied by the decompressed pdf stream. + + this + + instance. + + + + + + + + Begins handling of current pdf stream decompression. + + this + + instance. + + + + Ends handling of current pdf stream decompression. + + Ends handling of current pdf stream decompression. + If memory limits have not been faced, throws an exception. + + + this + + instance. + + + + + + + + This class implements an output stream which can be used for memory limits aware decompression of pdf streams. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + Creates a new byte array output stream. The buffer capacity is + initially 32 bytes, though its size increases if necessary. + + + Creates a new byte array output stream, with a buffer capacity of + the specified size, in bytes. + + @param size the initial size. + @throws IllegalArgumentException if size is negative. + + + Gets the maximum size which can be occupied by this output stream. + + @return the maximum size which can be occupied by this output stream. + + + Sets the maximum size which can be occupied by this output stream. + + @param maxStreamSize the maximum size which can be occupied by this output stream. + @return this {@link MemoryLimitsAwareOutputStream} + + + {@inheritDoc} + + + Query and change fields in existing documents either by method + calls or by FDF merging. + @author Paulo Soares + + + A field type invalid or not found. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + Holds value of property generateAppearances. + + + Holds value of property fieldCache. + + + Gets the list of appearance names. Use it to get the names allowed + with radio and checkbox fields. If the /Opt key exists the values will + also be included. The name 'Off' may also be valid + even if not returned in the list. + + For Comboboxes it will return an array of display values. To extract the + export values of a Combobox, please refer to {@link AcroFields#getListOptionExport(String)} + + @param fieldName the fully qualified field name + @return the list of names or null if the field does not exist + + + Gets the list of export option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + Gets the list of display option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + + + Export the fields as a FDF. + @param writer the FDF writer + + + Renames a field. Only the last part of the name can be renamed. For example, + if the original field is "ab.cd.ef" only the "ef" part can be renamed. + @param oldName the old field name + @param newName the new field name + @return true if the renaming was successful, false + otherwise + + + Retrieve the rich value for the given field + @param name + @return The rich value if present, or null. + @since 5.0.6 + + + Gets the field value. + @param name the fully qualified field name + @return the field value + + + Gets the field values of a Choice field. + @param name the fully qualified field name + @return the field value + @since 2.1.3 + + + + + Merges an XML data structure into this form. + @param n the top node of the data structure + @throws java.io.IOException on error + @throws com.lowagie.text.DocumentException o error + + + Sets the fields by FDF merging. + @param fdf the FDF form + @throws IOException on error + @throws DocumentException on error + + + Sets the fields by XFDF merging. + @param xfdf the XFDF form + @throws IOException on error + @throws DocumentException on error + + + Regenerates the field appearance. + This is usefull when you change a field property, but not its value, + for instance form.SetFieldProperty("f", "bgcolor", BaseColor.BLUE, null); + This won't have any effect, unless you use RegenerateField("f") after changing + the property. + + @param name the fully qualified field name or the partial name in the case of XFA forms + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param saveAppearance save the current appearance of the field or not + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the rich value for the given field. See PDF Reference chapter + 12.7.3.4 (Rich Text) and 12.7.4.3 (Text Fields) for further details. Note that iText doesn't create an appearance for Rich Text fields. + So you either need to use XML Worker to create an appearance (/N entry in the /AP dictionary), or you need to use setGenerateAppearances(false) to tell the viewer + that iText didn't create any appearances. + @param name Field name + @param richValue html markup + @return success/failure (will fail if the field isn't found, isn't a text field, or doesn't support rich text) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @param saveAppearance save the current appearance of the field or not + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets different values in a list selection. + No appearance is generated yet; nor does the code check if multiple select is allowed. + + @param name the name of the field + @param value an array with values that need to be selected + @return true only if the field value was changed + @since 2.1.4 + + + Gets all the fields. The fields are keyed by the fully qualified field name and + the value is an instance of AcroFields.Item. + @return all the fields + + + Gets the field structure. + @param name the name of the field + @return the field structure or null if the field + does not exist + + + Gets the long XFA translated name. + @param name the name of the field + @return the long field name + + + Gets the field box positions in the document. The return is an array of float + multiple of 5. For each of this groups the values are: [page, llx, lly, urx, + ury]. The coordinates have the page rotation in consideration. + @param name the field name + @return the positions or null if field does not exist + + + Removes all the fields from page. + @param page the page to remove the fields from + @return true if any field was removed, false otherwise + + + Removes a field from the document. If page equals -1 all the fields with this + name are removed from the document otherwise only the fields in + that particular page are removed. + @param name the field name + @param page the page to remove the field from or -1 to remove it from all the pages + @return true if the field exists, false otherwise + + + Removes a field from the document. + @param name the field name + @return true if the field exists, false otherwise + + + Sets the option to generate appearances. Not generating apperances + will speed-up form filling but the results can be + unexpected in Acrobat. Don't use it unless your environment is well + controlled. The default is true. + @param generateAppearances the option to generate appearances + + + The field representations for retrieval and modification. + + + writeToAll constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + This function writes the given key/value pair to all the instances + of merged, widget, and/or value, depending on the writeFlags setting + + @since 2.1.5 + + @param key you'll never guess what this is for. + @param value if value is null, the key will be removed + @param writeFlags ORed together WRITE_* flags + + + Mark all the item dictionaries used matching the given flags + + @since 2.1.5 + @param writeFlags WRITE_MERGED is ignored + + + An array of PdfDictionary where the value tag /V + is present. + + + + An array of PdfDictionary with the widgets. + + + + An array of PdfDictionary with the widget references. + + + + An array of PdfDictionary with all the field + and widget tags merged. + + + + An array of Integer with the page numbers where + the widgets are displayed. + + + + An array of Integer with the tab order of the field in the page. + + + + Preferred method of determining the number of instances + of a given field. + + @since 2.1.5 + @return number of instances + + + Remove the given instance from this item. It is possible to + remove all instances using this function. + + @since 2.1.5 + @param killIdx + + + Retrieve the value dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return dictionary storing this instance's value. It may be shared across instances. + + + Add a value dict to this Item + + @since 2.1.5 + @param value new value dictionary + + + Retrieve the widget dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return The dictionary found in the appropriate page's Annot array. + + + Add a widget dict to this Item + + @since 2.1.5 + @param widget + + + Retrieve the reference to the given instance + + @since 2.1.5 + @param idx instance index + @return reference to the given field instance + + + Add a widget ref to this Item + + @since 2.1.5 + @param widgRef + + + Retrieve the merged dictionary for the given instance. The merged + dictionary contains all the keys present in parent fields, though they + may have been overwritten (or modified?) by children. + Example: a merged radio field dict will contain /V + + @since 2.1.5 + @param idx instance index + @return the merged dictionary for the given instance + + + Adds a merged dictionary to this Item. + + @since 2.1.5 + @param mergeDict + + + Retrieve the page number of the given instance + + @since 2.1.5 + @param idx + @return remember, pages are "1-indexed", not "0-indexed" like field instances. + + + Adds a page to the current Item. + + @since 2.1.5 + @param pg + + + forces a page value into the Item. + + @since 2.1.5 + @param idx + + + Gets the tabOrder. + + @since 2.1.5 + @param idx + @return tab index of the given field instance + + + Adds a tab order value to this Item. + + @since 2.1.5 + @param order + + + Clears a signed field. + @param name the field name + @return true if the field was signed, false if the field was not signed or not found + @since 5.0.5 + + + Gets the field names that have signatures and are signed. + @return the field names that have signatures and are signed + + + Gets the field names that have blank signatures. + @return the field names that have blank signatures + + + Gets the signature dictionary, the one keyed by /V. + @param name the field name + @return the signature dictionary keyed by /V or null if the field is not + a signature + + + Gets a reference to the normal appearance of a field. + + @param name the field name + @return a reference to the /N entry of the /AP dictionary or null if the field is not found + + + Checks is the signature covers the entire document or just part of it. + @param name the signature field name + @return true if the signature covers the entire document, + false otherwise + + + + Gets the total number of revisions this document has. + @return the total number of revisions + + + Gets this field revision. + @param field the signature field name + @return the revision or zero if it's not a signature field + + + Extracts a revision from the document. + @param field the signature field name + @return an Stream covering the revision. Returns null if + it's not a signature field + @throws IOException on error + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Adds a substitution font to the list. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param font the font + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Gets the XFA form processor. + @return the XFA form processor + + + Removes the XFA stream from the document. + + + Creates a new pushbutton from an existing field. If there are several pushbuttons with the same name + only the first one is used. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField)}. + @param field the field name that should be a pushbutton + @return a new pushbutton or null if the field is not a pushbutton + + + Creates a new pushbutton from an existing field. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField,int)}. + @param field the field name that should be a pushbutton + @param order the field order in fields with same name + @return a new pushbutton or null if the field is not a pushbutton + + + Replaces the first field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @return true if the field was replaced, false if the field + was not a pushbutton + + + Replaces the designated field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String,int)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @param order the field order in fields with same name + @return true if the field was replaced, false if the field + was not a pushbutton + + + Checks whether a name exists as a signature field or not. It checks both signed fields and blank signatures. + @param name String + @return boolean does the signature field exist + @since 5.5.1 + + + A class representing a field position + @since 5.0.2 + + + + Summary description for InputMeta. + + + + + Summary description for MetaDo. + + + + Creates new MetaState + + + Getter for property currentBackgroundColor. + @return Value of property currentBackgroundColor. + + + Getter for property currentTextColor. + @return Value of property currentTextColor. + + + Getter for property backgroundMode. + @return Value of property backgroundMode. + + + Getter for property textAlign. + @return Value of property textAlign. + + + Getter for property polyFillMode. + @return Value of property polyFillMode. + + + Came from GIFEncoder initially. + Modified - to allow for output compressed data without the block counts + which breakup the compressed data stream for GIF. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + + Reads a BMP from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + @param is the stream + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + The BMP may not have a header and be considered as a plain DIB. + @param is the stream + @param noHeader true to process a plain DIB + @param size the size of the DIB. Not used for a BMP + @throws IOException on error + @return the image + + + Reads a BMP from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a BMP from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Encodes data in the CCITT G4 FAX format. + + + Creates a new encoder. + @param width the line width + + + Encodes a number of lines. + @param data the data to be encoded + @param offset the offset into the data + @param size the size of the data to be encoded + + + Encodes a full image. + @param data the data to encode + @param width the image width + @param height the image height + @return the encoded image + + + Encodes a number of lines. + @param data the data to be encoded + @param height the number of lines to encode + + + Closes the encoder and returns the encoded data. + @return the encoded data + + + Reads gif images of all types. All the images in a gif are read in the constructors + and can be retrieved with other methods. + @author Paulo Soares + + + Reads gif images from an URL. + @param url the URL + @throws IOException on error + + + Reads gif images from a file. + @param file the file + @throws IOException on error + + + Reads gif images from a byte array. + @param data the byte array + @throws IOException on error + + + Reads gif images from a stream. The stream isp not closed. + @param isp the stream + @throws IOException on error + + + Gets the number of frames the gif has. + @return the number of frames the gif has + + + Gets the image from a frame. The first frame isp 1. + @param frame the frame to get the image from + @return the image + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Gets the logical screen. The images may be smaller and placed + in some position in this screen to playback some animation. + No image will be be bigger that this. + @return the logical screen dimensions as [x,y] + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + Support for JBIG2 Images. + This class assumes that we are always embedding into a pdf. + + @since 2.1.5 + + + Gets a byte array that can be used as a /JBIG2Globals, + or null if not applicable to the given jbig2. + @param ra an random access file or array + @return a byte array + + + returns an Image representing the given page. + @param ra the file or array containing the image + @param page the page number of the image + @return an Image object + + + Class to read a JBIG2 file at a basic level: understand all the segments, + understand what segments belong to which pages, how many pages there are, + what the width and height of each page is, and global segments if there + are any. Or: the minimum required to be able to take a normal sequential + or random-access organized file, and be able to embed JBIG2 pages as images + in a PDF. + + TODO: the indeterminate-segment-size value of dataLength, else? + + @since 2.1.5 + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + Creates a new instance of PngImage + + + Reads a PNG from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a PNG from a stream. + @param is the stream + @throws IOException on error + @return the image + + + Reads a PNG from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a PNG from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + A list of constants used in class TIFFImage. + + + + A bool storing the endianness of the stream. + + + The number of entries in the IFD. + + + An array of TIFFFields. + + + A Hashtable indexing the fields by tag number. + + + The offset of this IFD. + + + The offset of the next IFD. + + + The default constructor. + + + Constructs a TIFFDirectory from a SeekableStream. + The directory parameter specifies which directory to read from + the linked list present in the stream; directory 0 is normally + read but it is possible to store multiple images in a single + TIFF file by maintaing multiple directories. + + @param stream a SeekableStream to read from. + @param directory the index of the directory to read. + + + Constructs a TIFFDirectory by reading a SeekableStream. + The ifd_offset parameter specifies the stream offset from which + to begin reading; this mechanism is sometimes used to store + private IFDs within a TIFF file that are not part of the normal + sequence of IFDs. + + @param stream a SeekableStream to read from. + @param ifd_offset the long byte offset of the directory. + @param directory the index of the directory to read beyond the + one at the current stream offset; zero indicates the IFD + at the current offset. + + + Returns the number of directory entries. + + + Returns the value of a given tag as a TIFFField, + or null if the tag is not present. + + + Returns true if a tag appears in the directory. + + + Returns an ordered array of ints indicating the tag + values. + + + Returns an array of TIFFFields containing all the fields + in this directory. + + + Returns the value of a particular index of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of index 0 of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of a particular index of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of index 0 of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of a particular index of a given tag as a + float. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a float. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the value of a particular index of a given tag as a + double. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a double. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the number of image directories (subimages) stored in a + given TIFF file, represented by a SeekableStream. + + + Returns a bool indicating whether the byte order used in the + the TIFF file is big-endian (i.e. whether the byte order is from + the most significant to the least significant) + + + Returns the offset of the IFD corresponding to this + TIFFDirectory. + + + Returns the offset of the next IFD after the IFD corresponding to this + TIFFDirectory. + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + The logical order of bits within a byte. +
    +            1 = MSB-to-LSB
    +            2 = LSB-to-MSB (flipped)
    +            
    +
    + + Uncompressed mode flag: 1 if uncompressed, 0 if not. + + + EOL padding flag: 1 if fill bits have been added before an EOL such + that the EOL ends on a byte boundary, 0 otherwise. + + + Coding dimensionality: 1 for 2-dimensional, 0 for 1-dimensional. + + + Invokes the superclass method and then sets instance variables on + the basis of the metadata set on this decompressor. + + + + Flag for 8 bit unsigned integers. + + + Flag for null-terminated ASCII strings. + + + Flag for 16 bit unsigned integers. + + + Flag for 32 bit unsigned integers. + + + Flag for pairs of 32 bit unsigned integers. + + + Flag for 8 bit signed integers. + + + Flag for 8 bit uninterpreted bytes. + + + Flag for 16 bit signed integers. + + + Flag for 32 bit signed integers. + + + Flag for pairs of 32 bit signed integers. + + + Flag for 32 bit IEEE floats. + + + Flag for 64 bit IEEE doubles. + + + The tag number. + + + The tag type. + + + The number of data items present in the field. + + + The field data. + + + The default constructor. + + + + Returns the tag number, between 0 and 65535. + + + Returns the type of the data stored in the IFD. + For a TIFF6.0 file, the value will equal one of the + TIFF_ constants defined in this class. For future + revisions of TIFF, higher values are possible. + + + + Returns the number of elements in the IFD. + + + + + + + + + + + + + + + + + + + + Reads TIFF images + @author Paulo Soares + + + Gets the number of pages the TIFF document has. + @param s the file source + @return the number of pages + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + Reads a page from a TIFF image. Direct mode is not used. + @param s the file source + @param page the page to get. The first page is 1 + @return the Image + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + @param h The number of rows the compressed data contains. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newString to the end of oldString. + + + + @author psoares + + + Modified from original LZWCompressor to change interface to passing a + buffer of data to be compressed. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + General purpose LZW String Table. + Extracted from GIFEncoder by Adam Doppelt + Comments added by Robin Luiten + expandCode added by Robin Luiten + The strLen_ table to give quick access to the lenght of an expanded + code for use by the expandCode method added by Robin. + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + + @param seq + @return the cid code or -1 for end + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + This class represents a CMap file. + + @author Ben Litchfield (ben@benlitchfield.com) + @since 2.1.4 + + + Creates a new instance of CMap. + + + This will tell if this cmap has any one byte mappings. + + @return true If there are any one byte mappings, false otherwise. + + + This will tell if this cmap has any two byte mappings. + + @return true If there are any two byte mappings, false otherwise. + + + This will perform a lookup into the map. + + @param code The code used to lookup. + @param offset The offset into the byte array. + @param length The length of the data we are getting. + + @return The string that matches the lookup. + + + + @author psoares + + + + @author psoares + + + Interface providing alternate description for accessible elements. + + + Get the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @return + + + Set the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @param value + + + Gets all the properties of accessible element. + @return + + + Role propherty of the accessible element. + Note that all child elements won't also be tagged. + @return + + + Use this methods to get the AcroForm object. + Use this method only if you know what you're doing + @return the PdfAcroform object of the PdfDocument + + + Use this methods to add a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Use this method to adds the PdfAnnotation + to the calculation order array. + @param annot the PdfAnnotation to be added + + + Use this method to set the signature flags. + @param f the flags. This flags are ORed with current ones + + + A PDF document can have an open action and other additional actions. + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws DocumentException on invalid action type + + + Encryption settings are described in section 3.5 (more specifically + section 3.5.2) of the PDF Reference 1.7. + They are explained in section 3.3.3 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + A PDF page can have an open and/or close action. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws DocumentException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + The PDF version is described in the PDF Reference 1.7 p92 + (about the PDF Header) and page 139 (the version entry in + the Catalog). You'll also find info about setting the version + in the book 'iText in Action' sections 2.1.3 (PDF Header) + and 3.3 (Version history). + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header, + but only if param refers to a higher version. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + Sets the PDF version as it will appear in the Catalog. + Note that this only has effect if you use a later version + than the one that appears in the header. This method + ignores the parameter if you try to set a lower version + than the one currently set in the Catalog. + @param version the PDF name that will be used for the Version key in the catalog + + + Adds a developer extension to the Extensions dictionary + in the Catalog. + @param de an object that contains the extensions prefix and dictionary + @since 2.1.6 + + + Viewer preferences are described in section 3.6.1 and 8.1 of the + PDF Reference 1.7 (Table 3.25 on p139-142 and Table 8.1 on p579-581). + They are explained in section 13.1 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + + + Sets the PDF/X conformance level. + Allowed values are PDFX1A2001, PDFX32002, PDFA1A and PDFA1B. + It must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + Shape arabic characters. This code was inspired by an LGPL'ed C library: + Pango ( see http://www.pango.com/ ). Note that the code of this is the + original work of Paulo Soares. Hence it is perfectly justifiable to distribute + it under the MPL. + + @author Paulo Soares + + + Some fonts do not implement ligaturized variations on Arabic characters + e.g. Simplified Arabic has got code point 0xFEED but not 0xFEEE + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Not a valid option value. + + + Bit mask for digit shaping options. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Bit mask for digit type options. + + + Arabic is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Signals that a bad PDF format has been used to construct a PdfObject. + + @see PdfException + @see PdfBoolean + @see PdfNumber + @see PdfString + @see PdfName + @see PdfDictionary + @see PdfFont + + + Base class containing properties and methods commom to all + barcode types. + + @author Paulo Soares + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + The minimum bar width. + + + The bar multiplier for wide bars or the distance between + bars for Postnet and Planet. + + + The text font. null if no text. + + + The size of the text or the height of the shorter bar + in Postnet. + + + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + + The height of the bars. + + + The text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + + + The optional checksum generation. + + + Shows the generated checksum in the the text. + + + Show the start and stop character '*' in the text for + the barcode 39 or 'ABCD' for codabar. + + + Generates extended barcode 39. + + + The code to generate. + + + Show the guard bars for barcode EAN. + + + The code type. + + + The ink spreading. + + + Gets the minimum bar width. + @return the minimum bar width + + + Gets the bar multiplier for wide bars. + @return the bar multiplier for wide bars + + + Gets the text font. null if no text. + @return the text font. null if no text + + + Gets the size of the text. + @return the size of the text + + + Gets the text baseline. + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + @return the baseline. + + + Gets the height of the bars. + @return the height of the bars + + + Gets the text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + @return the text alignment + + + The property for the optional checksum generation. + + + Sets the property to show the generated checksum in the the text. + @param checksumText new value of property checksumText + + + Gets the property to show the start and stop character '*' in the text for + the barcode 39. + @param startStopText new value of property startStopText + + + Sets the property to generate extended barcode 39. + @param extended new value of property extended + + + Gets the code to generate. + @return the code to generate + + + Sets the property to show the guard bars for barcode EAN. + @param guardBars new value of property guardBars + + + Gets the code type. + @return the code type + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Creates a template with the barcode. + @param cb the PdfContentByte to create the template. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the template + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + Creates an Image with the barcode. + @param cb the PdfContentByte to create the Image. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the Image + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + The alternate text to be used, if present. + + + Sets the alternate text. If present, this text will be used instead of the + text derived from the supplied code. + @param altText the alternate text + + + + The bars to generate the code. + + + The stop bars. + + + The charset code change. + + + The charset code change. + + + The charset code change. + + + The code for UCC/EAN-128. + + + The start code. + + + The start code. + + + The start code. + + + Creates new Barcode128 + + + Removes the FNC1 codes in the text. + @param code the text to clean + @return the cleaned text + + + Gets the human readable text of a sequence of AI. + @param code the text + @return the human readable text + + + Returns true if the next numDigits + starting from index textIndex are numeric skipping any FNC1. + @param text the text to check + @param textIndex where to check from + @param numDigits the number of digits to check + @return the check result + + + Packs the digits for charset C also considering FNC1. It assumes that all the parameters + are valid. + @param text the text to pack + @param textIndex where to pack from + @param numDigits the number of digits to pack. It is always an even number + @return the packed digits, two digits per character + + + Converts the human readable text to the characters needed to + create a barcode using the specified code set. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @param codeSet forced code set, or AUTO for optimized barcode. + @return the code ready to be fed to getBarsCode128Raw() + + + Converts the human readable text to the characters needed to + create a barcode. Some optimization is done to get the shortest code. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @return the code ready to be fed to getBarsCode128Raw() + + + Generates the bars. The input has the actual barcodes, not + the human readable text. + @param text the barcode + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + Implements the code 39 and code 39 extended. The default parameters are: +
    +            x = 0.8f;
    +            n = 2;
    +            font = BaseFont.CreateFont("Helvetica", "winansi", false);
    +            size = 8;
    +            baseline = size;
    +            barHeight = size * 3;
    +            textint= Element.ALIGN_CENTER;
    +            generateChecksum = false;
    +            checksumText = false;
    +            startStopText = true;
    +            extended = false;
    +             
    + + @author Paulo Soares +
    + + The bars to generate the code. + + + The index chars to BARS. + + + The character combinations to make the code 39 extended. + + + Creates a new Barcode39. + + + Creates the bars. + @param text the text to create the bars. This text does not include the start and + stop characters + @return the bars + + + Converts the extended text into a normal, escaped text, + ready to generate bars. + @param text the extended text + @return the escaped text + + + Calculates the checksum. + @param text the text + @return the checksum + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code codabar. The default parameters are: +
    +            x = 0.8f;
    +            n = 2;
    +            font = BaseFont.CreateFont("Helvetica", "winansi", false);
    +            size = 8;
    +            baseline = size;
    +            barHeight = size * 3;
    +            textAlignment = Element.ALIGN_CENTER;
    +            generateChecksum = false;
    +            checksumText = false;
    +            startStopText = false;
    +             
    + + @author Paulo Soares +
    + + The bars to generate the code. + + + The index chars to BARS. + + + Creates a new BarcodeCodabar. + + + Creates the bars. + @param text the text to create the bars + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + No error. + + + The text is too big for the symbology capabilities. + + + The dimensions given for the symbol are illegal. + + + An error while parsing an extension. + + + The best encodation will be used. + + + ASCII encodation. + + + C40 encodation. + + + TEXT encodation. + + + Binary encodation. + + + X21 encodation. + + + X12 encodation. + + @deprecated Use {@link BarcodeDataMatrix#DM_X12} instead. + + + EDIFACT encodation. + + + No encodation needed. The bytes provided are already encoded. + + + Allows extensions to be embedded at the start of the text. + + + Doesn't generate the image but returns all the other information. + + + Creates an instance of this class. + + + + + + Gets an Image with the barcode. A successful call to the method generate() + before calling this method is required. + @return the barcode Image + @throws BadElementException on error + + + Creates a java.awt.Image. A successful call to the method generate() + before calling this method is required. + @param foreground the color of the bars + @param background the color of the background + @return the image + + + Gets the generated image. The image is represented as a stream of bytes, each byte representing + 8 pixels, 0 for white and 1 for black, with the high-order bit of each byte first. Each row + is aligned at byte boundaries. The dimensions of the image are defined by height and width + plus 2 * ws. + @return the generated image + + + + + Gets/sets the whitespace border around the barcode. + @param ws the whitespace border around the barcode + + + + Generates barcodes in several formats: EAN13, EAN8, UPCA, UPCE, + supplemental 2 and 5. The default parameters are: +
    +            x = 0.8f;
    +            font = BaseFont.CreateFont("Helvetica", "winansi", false);
    +            size = 8;
    +            baseline = size;
    +            barHeight = size * 3;
    +            guardBars = true;
    +            codeType = EAN13;
    +            code = "";
    +             
    + + @author Paulo Soares +
    + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The x coordinates to place the text. + + + The x coordinates to place the text. + + + The basic bar widths. + + + The total number of bars for EAN13. + + + The total number of bars for EAN8. + + + The total number of bars for UPCE. + + + The total number of bars for supplemental 2. + + + The total number of bars for supplemental 5. + + + Marker for odd parity. + + + Marker for even parity. + + + Sequence of parities to be used with EAN13. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with UPCE. + + + Creates new BarcodeEAN + + + Calculates the EAN parity character. + @param code the code + @return the parity character + + + Converts an UPCA code into an UPCE code. If the code can not + be converted a null is returned. + @param text the code to convert. It must have 12 numeric characters + @return the 8 converted digits or null if the + code could not be converted + + + Creates the bars for the barcode EAN13 and UPCA. + @param _code the text with 13 digits + @return the barcode + + + Creates the bars for the barcode EAN8. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode UPCE. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode supplemental 2. + @param _code the text with 2 digits + @return the barcode + + + Creates the bars for the barcode supplemental 5. + @param _code the text with 5 digits + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + The barcode with the EAN/UPC. + + + The barcode with the supplemental. + + + Creates new combined barcode. + @param ean the EAN/UPC barcode + @param supp the supplemental barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code interleaved 2 of 5. The text can include + non numeric characters that are printed but do not generate bars. + The default parameters are: +
    +            x = 0.8f;
    +            n = 2;
    +            font = BaseFont.CreateFont("Helvetica", "winansi", false);
    +            size = 8;
    +            baseline = size;
    +            barHeight = size * 3;
    +            textint= Element.ALIGN_CENTER;
    +            generateChecksum = false;
    +            checksumText = false;
    +             
    + + @author Paulo Soares +
    + + The bars to generate the code. + + + Creates new BarcodeInter25 + + + Deletes all the non numeric characters from text. + @param text the text + @return a string with only numeric characters + + + Calculates the checksum. + @param text the numeric text + @return the checksum + + + Creates the bars for the barcode. + @param text the text. It can contain non numeric characters + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed + and variable sizes, automatic and manual error levels, raw codeword input, + codeword size optimization and bitmap inversion. The output can + be a CCITT G4 Image or a raw bitmap. + @author Paulo Soares + + + Auto-size is made based on aspectRatio and yHeight. + + + The size of the barcode will be at least codeColumns*codeRows. + + + The size will be at least codeColumns + with a variable number of codeRows. + + + The size will be at least codeRows + with a variable number of codeColumns. + + + The error level correction is set automatically according + to ISO 15438 recomendations. + + + The error level correction is set by the user. It can be 0 to 8. + + + One single binary segment is used + + + No text interpretation is done and the content of codewords + is used directly. + + + Inverts the output bits of the raw bitmap that is normally + bit one for black. It has only effect for the raw bitmap. + + + Use Macro PDF417 Encoding + @see #setMacroFileId(String) + @see #setMacroSegmentId(int) + @see #setMacroSegmentCount(int) + + + Creates a new BarcodePDF417 with the default settings. + + + Sets the segment id for macro PDF417 encoding + @param id the id (starting at 0) + @see #setMacroSegmentCount(int) + + + Sets the segment count for macro PDF417 encoding + @param cnt the number of macro segments + @see #setMacroSegmentId(int) + + + Sets the File ID for macro PDF417 encoding + @param id the file id + + + Set the default settings that correspond to PDF417_USE_ASPECT_RATIO + and PDF417_AUTO_ERROR_LEVEL. + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + Gets an Image with the barcode. The image will have to be + scaled in the Y direction by yHeightfor the barcode + to have the right printing aspect. + @return the barcode Image + @throws BadElementException on error + + + Gets the raw image bits of the barcode. The image will have to + be scaled in the Y direction by yHeight. + @return The raw barcode image + + + Gets the number of X pixels of outBits. + @return the number of X pixels of outBits + + + Gets the number of Y pixels of outBits. + It is also the number of rows in the barcode. + @return the number of Y pixels of outBits + Sets the number of barcode rows. This number may be changed + to keep the barcode valid. + @param codeRows the number of barcode rows + + + Sets the number of barcode data columns. + This number may be changed to keep the barcode valid. + @param codeColumns the number of barcode data columns + + + Gets the codeword array. This array is always 928 elements long. + It can be writen to if the option PDF417_USE_RAW_CODEWORDS + is set. + @return the codeword array + + + Sets the length of the codewords. + @param lenCodewords the length of the codewords + + + Gets the error level correction used for the barcode. It may different + from the previously set value. + @return the error level correction used for the barcode + Sets the error level correction for the barcode. + @param errorLevel the error level correction for the barcode + + + Sets the bytes that form the barcode. This bytes should + be interpreted in the codepage Cp437. + @param text the bytes that form the barcode + + + Sets the text that will form the barcode. This text is converted + to bytes using the encoding Cp437. + @param s the text that will form the barcode + @throws UnsupportedEncodingException if the encoding Cp437 is not supported + + + Sets the options to generate the barcode. This can be all + the PDF417_* constants. + @param options the options to generate the barcode + + + Sets the barcode aspect ratio. A ratio or 0.5 will make the + barcode width twice as large as the height. + @param aspectRatio the barcode aspect ratio + + + Sets the Y pixel height relative to X. It is usually 3. + @param yHeight the Y pixel height relative to X + + + Holds value of property outBits. + + + Holds value of property bitColumns. + + + Holds value of property codeRows. + + + Holds value of property codeColumns. + + + Holds value of property codewords. + + + Holds value of property lenCodewords. + + + Holds value of property errorLevel. + + + Holds value of property text. + + + Holds value of property options. + + + Holds value of property aspectRatio. + + + Holds value of property yHeight. + + + Gets the size of the barcode grid. + + + Implements the Postnet and Planet barcodes. The default parameters are: +
    +            n = 72f / 22f; // distance between bars
    +            x = 0.02f * 72f; // bar width
    +            barHeight = 0.125f * 72f; // height of the tall bars
    +            size = 0.05f * 72f; // height of the short bars
    +            codeType = POSTNET; // type of code
    +             
    + + @author Paulo Soares +
    + + The bars for each character. + + + Creates new BarcodePostnet + + + Creates the bars for Postnet. + @param text the code to be created without checksum + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + A QRCode implementation based on the zxing code. + @author Paulo Soares + @since 5.0.2 + + + Creates the QR barcode. The barcode is always created with the smallest possible size and is then stretched + to the width and height given. Set the width and height to 1 to get an unscaled barcode. + @param content the text to be encoded + @param width the barcode width + @param height the barcode height + @param hints modifiers to change the way the barcode is create. They can be EncodeHintType.ERROR_CORRECTION + and EncodeHintType.CHARACTER_SET. For EncodeHintType.ERROR_CORRECTION the values can be ErrorCorrectionLevel.L, M, Q, H. + For EncodeHintType.CHARACTER_SET the values are strings and can be Cp437, Shift_JIS and ISO-8859-1 to ISO-8859-16. + You can also use UTF-8, but correct behaviour is not guaranteed as Unicode is not supported in QRCodes. + The default value is ISO-8859-1. + @throws WriterException + + + Gets an Image with the barcode. + @return the barcode Image + @throws BadElementException on error + + + Gets the size of the barcode grid. + + + A thin border with 1 point width. + + + A medium border with 2 point width. + + + A thick border with 3 point width. + + + The field is visible. + + + The field is hidden. + + + The field is visible but does not print. + + + The field is hidden but is printable. + + + The user may not change the value of the field. + + + The field must have a value at the time it is exported by a submit-form + action. + + + The field may contain multiple lines of text. + This flag is only meaningful with text fields. + + + The field will not scroll (horizontally for single-line + fields, vertically for multiple-line fields) to accommodate more text + than will fit within its annotation rectangle. Once the field is full, no + further text will be accepted. + + + The field is intended for entering a secure password that should + not be echoed visibly to the screen. + + + The text entered in the field represents the pathname of + a file whose contents are to be submitted as the value of the field. + + + The text entered in the field will not be spell-checked. + This flag is meaningful only in text fields and in combo + fields with the EDIT flag set. + + + If set the combo box includes an editable text box as well as a drop list; if + clear, it includes only a drop list. + This flag is only meaningful with combo fields. + + + whether or not a list may have multiple selections. Only applies to /CH LIST + fields, not combo boxes. + + + combo box flag. + + + Holds value of property rotation. + + + Holds value of property visibility. + + + Holds value of property fieldName. + + + Holds value of property options. + + + Holds value of property maxCharacterLength. + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the border width in points. To eliminate the border + set the border color to null. + @param borderWidth the border width in points + + + Sets the border style. The styles are found in PdfBorderDictionary + and can be STYLE_SOLID, STYLE_DASHED, + STYLE_BEVELED, STYLE_INSET and + STYLE_UNDERLINE. + @param borderStyle the border style + + + Sets the border color. Set to null to remove + the border. + @param borderColor the border color + + + Sets the background color. Set to null for + transparent background. + @param backgroundColor the background color + + + Sets the text color. If null the color used + will be black. + @param textColor the text color + + + Sets the text font. If null then Helvetica + will be used. + @param font the text font + + + Sets the font size. If 0 then auto-sizing will be used but + only for text fields. + @param fontSize the font size + + + Sets the text horizontal alignment. It can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER and Element.ALIGN_RIGHT. + @param alignment the text horizontal alignment + + + Sets the text for text fields. + @param text the text + + + Sets the field dimension and position. + @param box the field dimension and position + + + Sets the field rotation. This value should be the same as + the page rotation where the field will be shown. + @param rotation the field rotation + + + Convenience method to set the field rotation the same as the + page rotation. + @param page the page + + + Sets the field visibility flag. This flags can be one of + VISIBLE, HIDDEN, VISIBLE_BUT_DOES_NOT_PRINT + and HIDDEN_BUT_PRINTABLE. + @param visibility field visibility flag + + + Sets the field name. + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the option flags. The option flags can be a combination by oring of + READ_ONLY, REQUIRED, + MULTILINE, DO_NOT_SCROLL, + PASSWORD, FILE_SELECTION, + DO_NOT_SPELL_CHECK and EDIT. + @param options the option flags + + + Sets the maximum length of the field�s text, in characters. + It is only meaningful for text fields. + @param maxCharacterLength the maximum length of the field�s text, in characters + + + Moves the field keys from from to to. The moved keys + are removed from from. + @param from the source + @param to the destination. It may be null + + + + Summary description for BaseFont. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + The maximum height above the baseline reached by glyphs in this + font, excluding the height of glyphs for accented characters. + + + The y coordinate of the top of flat capital letters, measured from + the baseline. + + + The maximum depth below the baseline reached by glyphs in this + font. The value is a negative number. + + + The angle, expressed in degrees counterclockwise from the vertical, + of the dominant vertical strokes of the font. The value is + negative for fonts that slope to the right, as almost all italic fonts do. + + + The lower left x glyph coordinate. + + + The lower left y glyph coordinate. + + + The upper right x glyph coordinate. + + + The upper right y glyph coordinate. + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + The underline position. Usually a negative value. + + + The underline thickness. + + + The strikethrough position. + + + The strikethrough thickness. + + + The recommended vertical size for subscripts for this font. + + + The recommended vertical offset from the baseline for subscripts for this font. Usually a negative value. + + + The recommended vertical size for superscripts for this font. + + + The recommended vertical offset from the baseline for superscripts for this font. + + + The weight class of the font, as defined by the font author + @since 5.0.2 + + + The width class of the font, as defined by the font author + @since 5.0.2 + + + The entry of PDF FontDescriptor dictionary. + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The weight (thickness) component of the fully-qualified font name or font specifier. + A value larger than 500 indicates bold font-weight. + + + The font is Type 1. + + + The font is True Type with a standard encoding. + + + The font is CJK. + + + The font is True Type with a Unicode encoding. + + + A font already inside the document. + + + A Type3 font. + + + The Unicode encoding with horizontal writing. + + + The Unicode encoding with vertical writing. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + default array of six numbers specifying the font matrix, mapping glyph space to text space + + + if the font has to be embedded + + + if the font doesn't have to be embedded + + + if the font has to be cached + + + if the font doesn't have to be cached + + + The path to the font resources. + + + The fake CID code that represents a newline. + + + * Unicode Character 'PARAGRAPH SEPARATOR' (U+2029) + * Treated as a line feed character in XFA rich and plain text. + * @since 5.4.3 + + + The font type. + + + a not defined character in a custom PDF encoding + + + table of characters widths for this encoding + + + encoding names + + + same as differences but with the unicode codes + + + encoding used with this font + + + true if the font is to be embedded in the PDF + + + The compression level for the font stream. + @since 2.1.3 + + + true if the font must use its built in encoding. In that case the + encoding is only used to map a char to the position inside + the font, not to the expected char name. + + + cache for the fonts already used. + + + list of the 14 built in fonts. + + + Forces the output of the width array. Only matters for the 14 + built-in fonts. + + + Converts char directly to byte + by casting. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Custom encodings use this map to key the Unicode character + to the single byte code. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + @param contents the content of the stream + @param lengths an array of int that describes the several lengths of each part of the font + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Generates the PDF stream for a font. + @param contents the content of a stream + @param subType the subtype of the font. + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Creates new BaseFont + + + Creates a new font. This will always be the default Helvetica font (not embedded). + This method is introduced because Helvetica is used in many examples. + @return a BaseFont object (Helvetica, Winansi, not embedded) + @throws IOException This shouldn't occur ever + @throws DocumentException This shouldn't occur ever + @since 2.1.1 + + + + + + + + Creates a font based on an existing document font. The created font font may not + behave as expected, depending on the encoding or subset. + @param fontRef the reference to the document font + @return the font + + + Indicates whether the font is used for verticl writing or not. + @return true if the writing mode is vertical for the given font, false otherwise. + + + Gets the name without the modifiers Bold, Italic or BoldItalic. + @param name the full name of the font + @return the name without the modifiers Bold, Italic or BoldItalic + + + Normalize the encoding names. "winansi" is changed to "Cp1252" and + "macroman" is changed to "MacRoman". + @param enc the encoding to be normalized + @return the normalized encoding + + + Creates the widths and the differences arrays + @throws UnsupportedEncodingException the encoding is not supported + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Gets the descent of a String in normalized 1000 units. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @return the dexcent in normalized 1000 units + + + Gets the ascent of a String in normalized 1000 units. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @return the ascent in normalized 1000 units + + + Gets the descent of a String in points. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @param fontSize the size of the font + @return the dexcent in points + + + Gets the ascent of a String in points. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @param fontSize the size of the font + @return the ascent in points + + + Gets the width of a String in points taking kerning + into account. + @param text the String to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a string in points. + @param text the string to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a char in points. + @param char1 the char to get the witdth of + @param fontSize the font size + @return the width in points + + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program (if possible). + This method will return null for some types of fonts (CJKFont, Type3Font) + or if there is no font program available (standard Type 1 fonts). + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the encoding used to convert string into byte[]. + @return the encoding name + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the font type. The font types can be: FONT_TYPE_T1, + FONT_TYPE_TT, FONT_TYPE_CJK and FONT_TYPE_TTUNI. + @return the font type + + + Gets the embedded flag. + @return true if the font is embedded. + + + Gets the symbolic flag of the font. + @return true if the font is symbolic + + + Creates a unique subset prefix to be added to the font name when the font is embedded and subset. + @return the subset prefix + + + Gets the Unicode character corresponding to the byte output to the pdf stream. + @param index the byte index + @return the Unicode character + + + Gets the postscript font name. + @return the postscript font name + + + + + + Gets all the names from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), GetFamilyFontName(), GetFullFontName()} + + + Gets all the entries of the namestable from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), getFamilyFontName(), getFullFontName()} + + + + Gets the code pages supported by the font. This has only meaning + with True Type fonts. + @return the code pages supported by the font + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcFile the file name of the font + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcArray the font as a byte array + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Gets the font width array. + @return the font width array + + + Gets the array with the names of the characters. + @return the array with the names of the characters + + + Gets the array with the unicode characters. + @return the array with the unicode characters + + + Set to true to force the generation of the + widths array. + @param forceWidthsOutput true to force the generation of the + widths array + + + Sets the conversion of char directly to byte + by casting. This is a low level feature to put the bytes directly in + the content stream without passing through string.GetBytes(). + @param directTextToByte New value of property directTextToByte. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. When set to true + only the glyphs used will be included in the font. When set to false + and {@link #addSubsetRange(int[])} was not called the full font will be included + otherwise just the characters ranges will be included. + @param subset new value of property subset + + + + Gets the CID code given an Unicode. + It has only meaning with CJK fonts. + @param c the Unicode + @return the CID equivalent + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Gets a list of all document fonts. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @return the list of fonts and references + + + Gets a list of the document fonts in a particular page. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @param page the page to list the fonts from + @return the list of fonts and references + + + Gets the smallest box enclosing the character contours. It will return + null if the font has not the information or the character has no + contours, as in the case of the space, for example. Characters with no contours may + also return [0,0,0,0]. + @param c the character to get the contour bounding box from + @return an array of four floats with the bounding box in the format [llx,lly,urx,ury] or + null + + + Gets default array of six numbers specifying the font matrix, mapping glyph space to text space + @return an array of six values + null + + + iText expects Arabic Diactrics (tashkeel) to have zero advance but some fonts, + most notably those that come with Windows, like times.ttf, have non-zero + advance for those characters. This method makes those character to have zero + width advance and work correctly in the iText Arabic shaping and reordering + context. + + + Adds a character range when subsetting. The range is an int array + where the first element is the start range inclusive and the second element is the + end range inclusive. Several ranges are allowed in the same array. + @param range the character range + + + Sets the compression level to be used for the font streams. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + Does all the line bidirectional processing with PdfChunk assembly. + + @author Paulo Soares + + + Creates new BidiLine + + + Call this after processLine() to know if any word was split into several lines. + @return + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @return the sum of all widths + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @param originalWidth the full width of the line. It is used in case of RTL and tab stops + @return the sum of all widths + + + Method that changes a String with Arabic characters into a String in which the ligatures are made. + @param s the original String + @param runDirection + @param arabicOptions + @return the String with the ligaturesc + + + Left-to-right + + + Left-to-Right Embedding + + + Left-to-Right Override + + + Right-to-Left + + + Right-to-Left Arabic + + + Right-to-Left Embedding + + + Right-to-Left Override + + + Pop Directional Format + + + European Number + + + European Number Separator + + + European Number Terminator + + + Arabic Number + + + Common Number Separator + + + Non-Spacing Mark + + + Boundary Neutral + + + Paragraph Separator + + + Segment Separator + + + Whitespace + + + Other Neutrals + + + Minimum bidi type value. + + + Maximum bidi type value. + + + Initialize using an array of direction types. Types range from TYPE_MIN to TYPE_MAX inclusive + and represent the direction codes of the characters in the text. + + @param types the types array + + + Initialize using an array of direction types and an externally supplied paragraph embedding level. + The embedding level may be -1, 0, or 1. -1 means to apply the default algorithm (rules P2 and P3), + 0 is for LTR paragraphs, and 1 is for RTL paragraphs. + + @param types the types array + @param paragraphEmbeddingLevel the externally supplied paragraph embedding level. + + + The algorithm. + Does not include line-based processing (Rules L1, L2). + These are applied later in the line-based phase of the algorithm. + + + + + Rules X9. + Remove explicit codes so that they may be ignored during the remainder + of the main portion of the algorithm. The length of the resulting text + is returned. + @return the length of the data excluding explicit codes and BN. + + + Reinsert levels information for explicit codes. + This is for ease of relating the level information + to the original input data. Note that the levels + assigned to these codes are arbitrary, they're + chosen so as to avoid breaking level runs. + @param textLength the length of the data after compression + @return the length of the data (original length of + types array supplied to constructor) + + + 2) determining explicit levels + Rules X1 - X8 + + The interaction of these rules makes handling them a bit complex. + This examines resultTypes but does not modify it. It returns embedding and + override information in the result array. The low 7 bits are the level, the high + bit is set if the level is an override, and clear if it is an embedding. + + + 3) resolving weak types + Rules W1-W7. + + Note that some weak types (EN, AN) remain after this processing is complete. + + + 6) resolving neutral types + Rules N1-N2. + + + 7) resolving implicit embedding levels + Rules I1, I2. + + + + Return multiline reordering array for a given level array. + Reordering does not occur across a line break. + + + Return reordering array for a given level array. This reorders a single line. + The reordering is a visual to logical map. For example, + the leftmost char is string.CharAt(order[0]). + Rule L2. + + + Return the base level of the paragraph. + + + Return true if the type is considered a whitespace type for the line break rules. + + + Return the strong type (L or R) corresponding to the level. + + + Return the limit of the run starting at index that includes only resultTypes in validSet. + This checks the value at index, and will return index if that value is not in validSet. + + + Return the start of the run including index that includes only resultTypes in validSet. + This assumes the value at index is valid, and does not check it. + + + Set resultTypes from start up to (but not including) limit to newType. + + + Set resultLevels from start up to (but not including) limit to newLevel. + + + Throw exception if type array is invalid. + + + Throw exception if paragraph embedding level is invalid. Special allowance for -1 so that + default processing can still be performed when using this API. + + + Throw exception if line breaks array is invalid. + + + Acts like a StringBuilder but works with byte arrays. + floating point is converted to a format suitable to the PDF. + @author Paulo Soares + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + List items for the linked list that builds the new CID font. + + + remember the current offset and increment by item's size in bytes. + + + Emit the byte stream for this item. + + + Fix up cross references to this item (applies only to markers). + + + set the value of an offset item that was initially unknown. + It will be fixed up latex by a call to xref on some marker. + + + A range item. + + + An index-offset item for the list. + The size denotes the required size in the CFF. A positive + value means that we need a specific size in bytes (for offset arrays) + and a negative value means that this is a dict item that uses a + variable-size representation. + + + + @author orly manor + + TODO To change the template for this generated type comment go to + Window - Preferences - Java - Code Generation - Code and Comments + + + an unknown offset in a dictionary for the list. + We will fix up the offset later; for now, assume it's large. + + + Card24 item. + + + Card32 item. + + + A SID or Card16 item. + + + A Card8 item. + + + A dictionary number on the list. + This implementation is inefficient: it doesn't use the variable-length + representation. + + + An offset-marker item for the list. + It is used to mark an offset and to set the offset list item. + + + a utility that creates a range item for an entire index + + @param indexOffset where the index is + @return a range item representing the entire index + + + get a single CID font. The PDF architecture (1.4) + supports 16-bit strings only with CID CFF fonts, not + in Type-1 CFF fonts, so we convert the font to CID if + it is in the Type-1 format. + Two other tasks that we need to do are to select + only a single font from the CFF package (this again is + a PDF restriction) and to subset the CharStrings glyph + description. + + + A random Access File or an array + (contributed by orly manor) + + + + + The Strings in this array represent Type1/Type2 operator names + + + The Strings in this array represent Type1/Type2 escape operator names + + + Operator codes for unused CharStrings and unused local and global Subrs + + + A HashMap containing the glyphs used in the text after being converted + to glyph number by the CMap + + + The GlyphsUsed keys as an ArrayList + + + A HashMap for keeping the FDArrays being used by the font + + + A HashMaps array for keeping the subroutines used in each FontDict + + + The SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the Global subroutines used in the font + + + The Global SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the subroutines used in a non-cid font + + + The SubroutinesUsed HashMap as ArrayList + + + An array of the new Indexs for the local Subr. One index for each FontDict + + + The new subroutines index for a non-cid font + + + The new global subroutines index of the font + + + The new CharString of the font + + + The bias for the global subroutines + + + The linked list for generating the new font stream + + + Number of arguments to the stem operators in a subroutine calculated recursivly + + + C'tor for CFFFontSubset + @param rf - The font file + @param GlyphsUsed - a HashMap that contains the glyph used in the subset + + + Calculates the length of the charset according to its format + @param Offset The Charset Offset + @param NumofGlyphs Number of glyphs in the font + @return the length of the Charset + + + Function calculates the number of ranges in the Charset + @param NumofGlyphs The number of glyphs in the font + @param Type The format of the Charset + @return The number of ranges in the Charset data structure + + + Read the FDSelect of the font and compute the array and its length + @param Font The index of the font being processed + @return The Processed FDSelect of the font + + + Function reads the FDSelect and builds the FDArrayUsed HashMap According to the glyphs used + @param Font the Number of font being processed + + + Read the FDArray count, offsize and Offset array + @param Font + + + The Process function extracts one font out of the CFF file and returns a + subset version of the original. + @param fontName - The name of the font to be taken out of the CFF + @return The new font stream + @throws IOException + + + Function calcs bias according to the CharString type and the count + of the subrs + @param Offset The offset to the relevent subrs index + @param Font the font + @return The calculated Bias + + + Function uses BuildNewIndex to create the new index of the subset charstrings + @param FontIndex the font + @throws IOException + + + + The function finds for the FD array processed the local subr offset and its + offset array. + @param Font the font + @param FD The FDARRAY processed + + + + + The function reads a subrs (glyph info) between begin and end. + Adds calls to a Lsubr to the hSubr and lSubrs. + Adds calls to a Gsubr to the hGSubr and lGSubrs. + @param begin the start point of the subr + @param end the end point of the subr + @param GBias the bias of the Global Subrs + @param LBias the bias of the Local Subrs + @param hSubr the HashMap for the lSubrs + @param lSubr the ArrayList for the lSubrs + + + Function Checks how the current operator effects the run time stack after being run + An operator may increase or decrease the stack size + + + Function checks the key and return the change to the stack after the operator + @return The change in the stack. 2-> flush the stack + + + Empty the Type2 Stack + + + + Pop one element from the stack + + + + Add an item to the stack + + + + The function reads the next command after the file pointer is set + + + The function reads the subroutine and returns the number of the hint in it. + If a call to another subroutine is found the function calls recursively. + @param begin the start point of the subr + @param end the end point of the subr + @param LBias the bias of the Local Subrs + @param GBias the bias of the Global Subrs + @param LSubrsOffsets The Offsets array of the subroutines + @return The number of hints in the subroutine read. + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param Used the hashmap of the used objects + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function creates the new index, inserting the count,offsetsize,offset array + and object array. + @param NewOffsets the subsetted offset array + @param NewObjects the subsetted object array + @return the new index created + + + The function builds the new output stream according to the subset process + @param Font the font + @return the subseted font stream + @throws IOException + + + Function Copies the header from the original fileto the output list + + + Function Build the header of an index + @param Count the count field of the index + @param Offsize the offsize field of the index + @param First the first offset of the index + + + Function adds the keys into the TopDict + @param fdarrayRef OffsetItem for the FDArray + @param fdselectRef OffsetItem for the FDSelect + @param charsetRef OffsetItem for the CharSet + @param charstringsRef OffsetItem for the CharString + + + Function takes the original string item and adds the new strings + to accomodate the CID rules + @param Font the font + + + Function creates new FDSelect for non-CID fonts. + The FDSelect built uses a single range for all glyphs + @param fdselectRef OffsetItem for the FDSelect + @param nglyphs the number of glyphs in the font + + + Function creates new CharSet for non-CID fonts. + The CharSet built uses a single range for all glyphs + @param charsetRef OffsetItem for the CharSet + @param nglyphs the number of glyphs in the font + + + Function creates new FDArray for non-CID fonts. + The FDArray built has only the "Private" operator that points to the font's + original private dict + @param fdarrayRef OffsetItem for the FDArray + @param privateRef OffsetItem for the Private Dict + @param Font the font + + + Function reconstructs the FDArray, PrivateDict and LSubr for CID fonts + @param Font the font + @throws IOException + + + Function subsets the FDArray and builds the new one with new offsets + @param Font The font + @param fdPrivate OffsetItem Array (one for each FDArray) + @throws IOException + + + Function Adds the new private dicts (only for the FDs used) to the list + @param Font the font + @param fdPrivate OffsetItem array one element for each private + @param fdPrivateBase IndexBaseItem array one element for each private + @param fdSubrs OffsetItem array one element for each private + @throws IOException + + + Function Adds the new LSubrs dicts (only for the FDs used) to the list + @param Font The index of the font + @param fdPrivateBase The IndexBaseItem array for the linked list + @param fdSubrs OffsetItem array for the linked list + @throws IOException + + + Calculates how many byte it took to write the offset for the subrs in a specific + private dict. + @param Offset The Offset for the private dict + @param Size The size of the private dict + @return The size of the offset of the subrs in the private dict + + + Function computes the size of an index + @param indexOffset The offset for the computed index + @return The size of the index + + + The function creates a private dict for a font that was not CID + All the keys are copied as is except for the subrs key + @param Font the font + @param Subr The OffsetItem for the subrs of the private + + + the function marks the beginning of the subrs index and adds the subsetted subrs + index to the output list. + @param Font the font + @param PrivateBase IndexBaseItem for the private that's referencing to the subrs + @param Subrs OffsetItem for the subrs + @throws IOException + + + Creates a CJK font compatible with the fonts in the Adobe Asian font Pack. + + @author Paulo Soares + + + The encoding used in the PDF document for CJK fonts + + + The path to the font resources. + + + The font name + + + The style modifier + + + The CMap name associated with this font + + + Creates a CJK font. + @param fontName the name of the font + @param enc the encoding of the font + @param emb always false. CJK font and not embedded + @throws DocumentException on error + @throws IOException on error + + + Returns a font compatible with a CJK encoding or null if not found. + @param enc + @return + + + Checks if its a valid CJK font. + @param fontName the font name + @param enc the encoding + @return true if it is CJK font + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + You can't get the FontStream of a CJK font (CJK fonts are never embedded), + so this method always returns null. + @return null + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + + + Implementation of DocumentFont used while parsing PDF streams. + @since 2.1.4 + + + The font dictionary. + + + the width of a space for this font, in normalized 1000 point units + + + The CMap constructed from the ToUnicode map from the font's dictionary, if present. + This CMap transforms CID values into unicode equivalent + + + Mapping between CID code (single byte only for now) and unicode equivalent + as derived by the font's encoding. Only needed if the ToUnicode CMap is not provided. + + + Creates an instance of a CMapAwareFont based on an indirect reference to a font. + @param refFont the indirect reference to a font + + + Parses the ToUnicode entry, if present, and constructs a CMap for it + @since 2.1.7 + + + Inverts DocumentFont's uni2byte mapping to obtain a cid-to-unicode mapping based + on the font's encoding + @since 2.1.7 + + + For all widths of all glyphs, compute the average width in normalized 1000 point units. + This is used to give some meaningful width in cases where we need an average font width + (such as if the width of a space isn't specified by a given font) + @return the average width of all non-zero width glyphs in the font + + + @since 2.1.5 + Override to allow special handling for fonts that don't specify width of space character + @see com.itextpdf.text.pdf.DocumentFont#getWidth(int) + + + Decodes a single CID (represented by one or two bytes) to a unicode String. + @param bytes the bytes making up the character code to convert + @param offset an offset + @param len a length + @return a String containing the encoded form of the input bytes using the font's encoding. + + + Decodes a string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + @since 2.1.7 + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + + + Encodes bytes to a String. + @param bytes the bytes from a stream + @param offset an offset + @param len a length + @return a String encoded taking into account if the bytes are in unicode or not. + @deprecated method name is not indicative of what it does. Use decode instead. + + + + @author Paulo Soares + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + Constructs a PDF Collection. + @param type the type of PDF collection. + + + Identifies the document that will be initially presented + in the user interface. + @param description the description that was used when attaching the file to the document + + + Sets the Collection schema dictionary. + @param schema an overview of the collection fields + + + Sets the Collection sort dictionary. + @param sort a collection sort dictionary + + + @author blowagie + + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + The type of the PDF collection field. + + + Creates a PdfCollectionField. + @param name the field name + @param type the field type + + + The relative order of the field name. Fields are sorted in ascending order. + @param i a number indicating the order of the field + + + Sets the initial visibility of the field. + @param visible the default is true (visible) + + + Indication if the field value should be editable in the viewer. + @param editable the default is false (not editable) + + + Checks if the type of the field is suitable for a Collection Item. + + + Returns a PdfObject that can be used as the value of a Collection Item. + @param String value the value that has to be changed into a PdfObject (PdfString, PdfDate or PdfNumber) + + + The PdfCollectionSchema with the names and types of the items. + + + Constructs a Collection Item that can be added to a PdfFileSpecification. + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Adds a prefix for the Collection item. + You can only use this method after you have set the value of the item. + @param prefix a prefix + + + Creates a Collection Schema dictionary. + + + Adds a Collection field to the Schema. + @param name the name of the collection field + @param field a Collection Field + + + Constructs a PDF Collection Sort Dictionary. + @param key the key of the field that will be used to sort entries + + + Constructs a PDF Collection Sort Dictionary. + @param keys the keys of the fields that will be used to sort entries + + + Defines the sort order of the field (ascending or descending). + @param ascending true is the default, use false for descending order + + + Defines the sort order of the field (ascending or descending). + @param ascending an array with every element corresponding with a name of a field. + + + Creates dictionary referring to a target document that is the parent of the current document. + @param nested null if this is the actual target, another target if this is only an intermediate target. + + + Creates a dictionary referring to a target document. + @param child if false, this refers to the parent document; if true, this refers to a child document, and you'll have to specify where to find the child using the other methods of this class + + + If this dictionary refers to a child that is a document level attachment, + you need to specify the name that was used to attach the document. + @param name the name in the EmbeddedFiles name tree + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the name of the page (or use setFileAttachmentPage to specify the page number). + Once you have specified the page, you still need to specify the attachment using another method. + @param name the named destination referring to the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page number (or use setFileAttachmentPagename to specify a named destination). + Once you have specified the page, you still need to specify the attachment using another method. + @param page the page number of the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the name of the attachment added to this page (or use setFileAttachmentIndex). + @param name the name of the attachment + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the index of the attachment added to this page (or use setFileAttachmentName). + @param name the name of the attachment + + + If this dictionary refers to an intermediate target, you can + add the next target in the sequence. + @param nested the next target in the sequence + + + Each colorSpace in the document will have an instance of this class + + @author Phillip Pan (phillip@formstar.com) + + + The indirect reference to this color + + + The color name that appears in the document body stream + + + The color + + + Each spot color used in a document has an instance of this class. + @param colorName the color name + @param indirectReference the indirect reference to the font + @param scolor the PDfSpotColor + + + Gets the indirect reference to this color. + @return the indirect reference to this color + + + Gets the color name as it appears in the document body. + @return the color name + + + Gets the SpotColor object. + @return the PdfSpotColor + + + + Eliminate the arabic vowels + + + Compose the tashkeel in the ligatures. + + + Do some extra double ligatures. + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Signals that there is no more text available. + + + Signals that there is no more column. + + + The column is valid. + + + The line is out the column limits. + + + The line cannot fit this column position. + + + Upper bound of the column. + + + Lower bound of the column. + + + The column Element. Default is left Element. + + + The left column bound. + + + The right column bound. + + + The chunks that form the text. + + + The current y line location. Text will be written at this line minus the leading. + + + The X position after the last line that has been written. + @since 5.0.3 + + + The leading for the current line. + + + The fixed text leading. + + + The text leading that is multiplied by the biggest font size in the line. + + + The PdfContent where the text will be written to. + + + The line status when trying to fit a line to a column. + + + The first paragraph line indent. + + + The following paragraph lines indent. + + + The right paragraph lines indent. + + + The extra space between paragraphs. + + + The width of the line when the column is defined as a simple rectangle. + + + Holds value of property spaceCharRatio. + + + Holds value of property linesWritten. + + + Holds value of property arabicOptions. + + + Pointer for the row in a table that is being dealt with + @since 5.1.0 + + + The index of the last row that needed to be splitted. + @since 5.0.1 changed a boolean into an int + -2 value mean it is the first attempt to split the first row. + -1 means that we try to avoid splitting current row. + + + if true, first line height is adjusted so that the max ascender touches the top + + + @since 5.4.2 + + + Creates a ColumnText. + @param text the place where the text will be written to. Can + be a template. + + + Creates an independent duplicated of the instance org. + @param org the original ColumnText + @return the duplicated + + + Makes this instance an independent copy of org. + @param org the original ColumnText + @return itself + + + Adds a Phrase to the current text array. + @param phrase the text + + + Replaces the current text array with this Phrase. + Anything added previously with AddElement() is lost. + @param phrase the text + + + Adds a Chunk to the current text array. + Will not have any effect if AddElement() was called before. + @param chunk the text + + + + + Finds the intersection between the yLine and the column. It will + set the lineStatus apropriatly. + @param wall the column to intersect + @return the x coordinate of the intersection + + + Finds the intersection between the yLine and the two + column bounds. It will set the lineStatus apropriatly. + @return a float[2]with the x coordinates of the intersection + + + Finds the intersection between the yLine, + the yLine-leadingand the two + column bounds. It will set the lineStatus apropriatly. + @return a float[4]with the x coordinates of the intersection + + + Sets the columns bounds. Each column bound is described by a + float[] with the line points [x1,y1,x2,y2,...]. + The array must have at least 4 elements. + @param leftLine the left column bound + @param rightLine the right column bound + + + Simplified method for rectangular columns. + @param phrase a Phrase + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx + @param lly + @param urx + @param ury + + + Simplified method for rectangular columns. + @param rect the rectangle for the column + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the yLine. + @return the yLine + + + Gets the number of rows that were drawn when a table is involved. + + + Gets the Element. + @return the alignment + + + Gets the first paragraph line indent. + @return the indent + + + Sets the first paragraph line indent. + + @param indent the indent + @param repeatFirstLineIndent do we need to repeat the indentation of the first line after a newline? + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the currentLeading. + + @return the currentLeading + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Call this after go() to know if any word was split into several lines. + @return + + + Sets the extra space between paragraphs. + @return the extra space between paragraphs + + + Clears the chunk array. A call to go() will always return + NO_MORE_TEXT. + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction. + @return the run direction + + + Gets the number of lines written. + @return the number of lines written + + + Gets the X position of the end of the last line that has been written + (will not work in simulation mode!). + @since 5.0.3 + + + Sets the arabic shaping options. The option can be AR_NOVOWEL, + AR_COMPOSEDTASHKEEL and AR_LIG. + @param arabicOptions the arabic shaping options + + + Gets the biggest descender value of the last line written. + @return the biggest descender value of the last line written + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + @return the width of the line + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @return the width of the line + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment. It is not influenced by the run direction + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + + + Fits the text to some rectangle adjusting the font size as needed. + @param font the font to use + @param text the text + @param rect the rectangle where the text must fit + @param maxFontSize the maximum font size + @param runDirection the run direction + @return the calculated font size that makes the text fit + + + Sets the canvas. + @param canvas + + + Sets the canvases. + @param canvas + + + Checks if the element has a height of 0. + @return true or false + @since 2.1.2 + + + Enables/Disables adjustment of first line height based on max ascender. + @param use enable adjustment if true + + + Checks the status variable and looks if there's still some text. + + + Holds value of property filledWidth. + + + Sets the real width used by the largest line. Only used to set it + to zero to start another measurement. + @param filledWidth the real width used by the largest line + + + Replaces the filledWidth if greater than the existing one. + @param w the new filledWidth if greater than the existing one + + + Sets the first line adjustment. Some objects have properties, like spacing before, that + behave differently if the object is the first to be written after go() or not. The first line adjustment is + true by default but can be changed if several objects are to be placed one + after the other in the same column calling go() several times. + @param adjustFirstLine true to adjust the first line, false otherwise + + + Creates an AES Cipher with CBC and no padding. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + Creates a new instance of ARCFOUREncryption + + + An initialization vector generator for a CBC block encryption. It's a random generator based on RC4. + @author Paulo Soares + + + Creates a new instance of IVGenerator + + + Gets a 16 byte random initialization vector. + @return a 16 byte random initialization vector + + + Gets a random initialization vector. + @param len the length of the initialization vector + @return a random initialization vector + + + Creates a new instance of StandardDecryption + + + Creates an AES Cipher with CBC and padding PKCS5/7. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + + An instance of the default SplitCharacter. + + + Default constructor, has no custom characters to check. + + + Constructor with one splittable character. + + @param character char + + + Constructor with an array of splittable characters + + @param characters char[] + + + + Returns the current character + + @param current current position in the array + @param ck chunk array + @param cc the character array that has to be checked + @return the current character + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + + Gets the postscript font name. + @return the postscript font name + + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + + Always returns null. + @return null + @since 2.1.3 + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Exposes the unicode - > CID map that is constructed from the font's encoding + @return the unicode to CID map + @since 2.1.7 + + + Exposes the CID - > unicode map that is constructed from the font's encoding + @return the CID to unicode map + @since 5.4.0 + + + Gets the difference map + @return the difference map + @since 5.0.5 + + + Element that draws a dotted line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @since 2.1.2 + + + the gap between the dots. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Setter for the gap between the center of the dots of the dotted line. + @param gap the gap between the center of the dots + + + Interface for an Element that allows you to draw something at the current + vertical position. Trivial implementations are LineSeparator and VerticalPositionMark. + It is also used to define what has to be drawn by a separator chunk. + @since 2.1.2 + + + Implement this method if you want to draw something at the current Y position + (for instance a line). + @param canvas the canvas on which you can draw + @param llx the x coordinate of the left page margin + @param lly the y coordinate of the bottom page margin + @param urx the x coordinate of the right page margin + @param ury the y coordinate of the top page margin + @param y the current y position on the page + + + Element that draws a solid line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @author Paulo Soares + @since 2.1.2 + + + The thickness of the line. + + + The width of the line as a percentage of the available page width. + + + The color of the line. + + + The alignment of the line. + + + Creates a new instance of the LineSeparator class. + @param lineWidth the thickness of the line + @param percentage the width of the line as a percentage of the available page width + @param color the color of the line + @param align the alignment + @param offset the offset of the line relative to the current baseline (negative = under the baseline) + + + Creates a new instance of the LineSeparator class. + @param font the font + + + Creates a new instance of the LineSeparator class with + default values: lineWidth 1 user unit, width 100%, centered with offset 0. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Draws a horizontal line. + @param canvas the canvas to draw on + @param leftX the left x coordinate + @param rightX the right x coordindate + @param y the y coordinate + + + Setter for the line width. + @param lineWidth the thickness of the line that will be drawn. + + + Setter for the width as a percentage of the available width. + @return a width percentage + + + Setter for the color of the line that will be drawn. + @param color a color + + + Setter for the alignment of the line. + @param align an alignment value + + + Helper class implementing the DrawInterface. Can be used to add + horizontal or vertical separators. Won't draw anything unless + you implement the draw method. + @since 2.1.2 + + + Another implementation of the DrawInterface; its draw method will overrule LineSeparator.Draw(). + + + The offset for the line. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + @param drawInterface the drawInterface for this vertical position mark. + @param offset the offset for this vertical position mark. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + @see com.lowagie.text.Element#process(com.lowagie.text.ElementListener) + + + @see com.lowagie.text.Element#type() + + + @see com.lowagie.text.Element#isContent() + + + @see com.lowagie.text.Element#isNestable() + + + @see com.lowagie.text.Element#getChunks() + + + Setter for the interface with the overruling Draw() method. + @param drawInterface a DrawInterface implementation + + + Setter for the offset. The offset is relative to the current + Y position. If you want to underline something, you have to + choose a negative offset. + @param offset an offset + + + Enumerates all the fonts inside a True Type Collection. + + @author Paulo Soares + + + Class for an index. + + @author Michael Niedermair + + + Keeps a map with fields that are to be positioned in inGenericTag. + + + Keeps the form field that is to be positioned in a cellLayout event. + + + The PdfWriter to use when a field has to added in a cell event. + + + The PdfFormField that is the parent of the field added in a cell event. + + + Creates a new event. This constructor will be used if you need to position fields with Chunk objects. + + + Some extra padding that will be taken into account when defining the widget. + + + Add a PdfFormField that has to be tied to a generic Chunk. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + @param padding The padding to set. + + + @param parent The parent to set. + + + @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String) + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + Class for an index. + + @author Michael Niedermair + + + keeps the indextag with the pagenumber + + + All the text that is passed to this event, gets registered in the indexentry. + + @see com.lowagie.text.pdf.PdfPageEventHelper#onGenericTag( + com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, + com.lowagie.text.Rectangle, java.lang.String) + + + indexcounter + + + the list for the index entry + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + + + Comparator for sorting the index + + + Set the comparator. + @param aComparator The comparator to set. + + + Returns the sorted list with the entries and the collected page numbers. + @return Returns the sorted list with the entries and teh collected page numbers. + + + Class for an index entry. +

    + In the first step, only in1, in2,in3 and tag are used. + After the collections of the index entries, pagenumbers are used. +

    +
    + + first level + + + second level + + + third level + + + the tag + + + the lsit of all page numbers. + + + the lsit of all tags. + + + Create a new object. + @param aIn1 The first level. + @param aIn2 The second level. + @param aIn3 The third level. + @param aTag The tag. + + + Returns the in1. + @return Returns the in1. + + + Returns the in2. + @return Returns the in2. + + + Returns the in3. + @return Returns the in3. + + + Returns the tag. + @return Returns the tag. + + + Returns the pagenumer for this entry. + @return Returns the pagenumer for this entry. + + + Add a pagenumber. + @param number The page number. + @param tag + + + Returns the key for the map-entry. + @return Returns the key for the map-entry. + + + Returns the pagenumbers. + @return Returns the pagenumbers. + + + Returns the tags. + @return Returns the tags. + + + print the entry (only for test) + @return the toString implementation of the entry + + + If you want to add more than one page eventa to a PdfWriter, + you have to construct a PdfPageEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page eventa to the forwarder. + @param eventa an eventa that has to be added to the forwarder. + + + Called when the document is opened. + + @param writer + the PdfWriter for this document + @param document + the document + + + + Called when a page is finished, just before being written to the + document. + + @param writer + the PdfWriter for this document + @param document + the document + + + + + + + + + + + If you want to add more than one event to a cell, + you have to construct a PdfPCellEventForwarder, add the + different events to this object and add the forwarder to + the PdfPCell. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + If you want to add more than one page event to a PdfPTable, + you have to construct a PdfPTableEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPTableEvent#tableLayout(com.lowagie.text.pdf.PdfPTable, float[][], float[], int, int, com.lowagie.text.pdf.PdfContentByte[]) + + + @see com.itextpdf.text.pdf.PdfPTableEventAfterSplit#afterSplitTable(com.itextpdf.text.pdf.PdfPTable, com.itextpdf.text.pdf.PdfPRow, int) + @since iText 5.4.3 + + + + @author Paulo Soares + + + Constructs an extended color of a certain type and a certain color. + @param type + @param red + @param green + @param blue + @param alpha + + + Reads an FDF form and makes the fields available + @author Paulo Soares + + + Reads an FDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an FDF form. + @param pdfIn the byte array with the form + @throws IOException on error + + + Reads an FDF form. + @param url the URL of the document + @throws IOException on error + + + Reads an FDF form. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field dictionary. + @param name the fully qualified field name + @return the field dictionary + + + Gets a byte[] containing a file that is embedded in the FDF. + @param name the fully qualified field name + @return the bytes of the file + @throws IOException + @since 5.0.1 + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Writes an FDF form. + @author Paulo Soares + + + The PDF file associated with the FDF. + + + Creates a new FdfWriter. + + + Writes the content to a stream. + @param os the stream + @throws DocumentException on error + @throws IOException on error + + + Removes the field value. + @param field the field name + @return true if the field was found and removed, + false otherwise + + + Gets all the fields. The map is keyed by the fully qualified + field name and the values are PdfObject. + @return a map with all the fields + + + Gets the field value. + @param field the field name + @return the field value or null if not found + + + Sets the field value as a name. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a string. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a PDFAction. + For example, this method allows setting a form submit button action using {@link PdfAction#createSubmitForm(String, Object[], int)}. + This method creates an A entry for the specified field in the underlying FDF file. + Method contributed by Philippe Laflamme (plaflamme) + @param field the fully qualified field name + @param action the field's action + @return true if the value was inserted, + false if the name is incompatible with + an existing field + @since 2.1.5 + + + Sets all the fields from this FdfReader + @param fdf the FdfReader + + + Sets all the fields from this PdfReader + @param pdf the PdfReader + + + Sets all the fields from this AcroFields + @param acro the AcroFields + + + Gets the PDF file name associated with the FDF. + @return the PDF file name associated with the FDF + + + Each font in the document will have an instance of this class + where the characters used will be represented. + + @author Paulo Soares + + + The indirect reference to this font + + + The font name that appears in the document body stream + + + The font + + + The font if its an instance of TrueTypeFontUnicode + + + The array used with single byte encodings + + + The map used with double byte encodings. The key is Int(glyph) and the + value is int[]{glyph, width, Unicode code} + + + The font type + + + true if the font is symbolic + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Each font used in a document has an instance of this class. + This class stores the characters used in the document and other + specifics unique to the current working document. + @param fontName the font name + @param indirectReference the indirect reference to the font + @param baseFont the BaseFont + + + Gets the indirect reference to this font. + @return the indirect reference to this font + + + Gets the font name as it appears in the document body. + @return the font name + + + Gets the BaseFont of this font. + @return the BaseFont of this font + + + Converts the text into bytes to be placed in the document. + The conversion is done according to the font and the encoding and the characters + used are stored. + @param text the text to convert + @return the conversion + + + Writes the font definition to the document. + @param writer the PdfWriter of this document + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. Set to false + to include all. + @param subset new value of property subset + + + + Adds a Font to be searched for valid characters. + @param font the Font + + + Process the text so that it will render with a combination of fonts + if needed. + @param text the text + @return a Phrase with one or more chunks + + + + @author Paulo Soares + + + Hyphenates words automatically accordingly to the language and country. + The hyphenator engine was taken from FOP and uses the TEX patterns. If a language + is not provided and a TEX pattern for it exists, it can be easily adapted. + + @author Paulo Soares + + + The hyphenator engine. + + + The second part of the hyphenated word. + + + Creates a new hyphenation instance usable in Chunk. + @param lang the language ("en" for english, for example) + @param country the country ("GB" for Great-Britain or "none" for no country, for example) + @param leftMin the minimun number of letters before the hyphen + @param rightMin the minimun number of letters after the hyphen + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + return number of items in array + + + returns current capacity of array + + + This is to implement memory allocation in the array. Like Malloc(). + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + Reset Vector but don't resize or clear elements + + + return number of items in array + + + returns current capacity of array + + + + + number of hyphenation points in word + + + rawWord as made of alternating strings and {@link Hyphen Hyphen} + instances + + + @return the number of hyphenation points in the word + + + @return the pre-break text, not including the hyphen character + + + @return the post-break text + + + @return the hyphenation points + + + + + value space: stores the inteletter values + + + This map stores hyphenation exceptions + + + This map stores the character classes + + + Temporary map to store interletter values on pattern loading. + + + Packs the values by storing them in 4 bits, two values into a byte + Values range is from 0 to 9. We use zero as terminator, + so we'll add 1 to the value. + @param values a string of digits from '0' to '9' representing the + interletter values. + @return the index into the vspace array where the packed values + are stored. + + + String compare, returns 0 if equal or + t is a substring of s + + + + Hyphenate word and return a Hyphenation object. + @param word the word to be hyphenated + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + w = "****nnllllllnnn*****", + where n is a non-letter, l is a letter, + all n may be absent, the first n is at offset, + the first l is at offset + iIgnoreAtBeginning; + word = ".llllll.'\0'***", + where all l in w are copied into word. + In the first part of the routine len = w.length, + in the second part of the routine len = word.length. + Three indices are used: + Index(w), the index in w, + Index(word), the index in word, + Letterindex(word), the index in the letter part of word. + The following relations exist: + Index(w) = offset + i - 1 + Index(word) = i - iIgnoreAtBeginning + Letterindex(word) = Index(word) - 1 + (see first loop). + It follows that: + Index(w) - Index(word) = offset - 1 + iIgnoreAtBeginning + Index(w) = Letterindex(word) + offset + iIgnoreAtBeginning + Hyphenate word and return an array of hyphenation points. + @param w char array that contains the word + @param offset Offset to first character in word + @param len Length of word + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + Add a character class to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} as callback to + add character classes. Character classes define the + valid word characters for hyphenation. If a word contains + a character not defined in any of the classes, it is not hyphenated. + It also defines a way to normalize the characters in order + to compare them with the stored patterns. Usually pattern + files use only lower case characters, in this case a class + for letter 'a', for example, should be defined as "aA", the first + character being the normalization char. + + + Add an exception to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} class as callback to + store the hyphenation exceptions. + @param word normalized word + @param hyphenatedword a vector of alternating strings and + {@link Hyphen hyphen} objects. + + + Add a pattern to the tree. Mainly, to be used by + {@link SimplePatternParser SimplePatternParser} class as callback to + add a pattern to the tree. + @param pattern the hyphenation pattern + @param ivalue interletter weight values indicating the + desirability and priority of hyphenating at a given point + within the pattern. It should contain only digit characters. + (i.e. '0' to '9'). + + + + TODO: Don't use statics + + + @param lang + @param country + @param leftMin + @param rightMin + + + @param lang + @param country + @return the hyphenation tree + + + @param key + @return a hyphenation tree + + + @param lang + @param country + @param word + @param leftMin + @param rightMin + @return a hyphenation object + + + @param lang + @param country + @param word + @param offset + @param len + @param leftMin + @param rightMin + @return a hyphenation object + + + @param min + + + @param min + + + @param lang + @param country + + + @param word + @param offset + @param len + @return a hyphenation object + + + @param word + @return a hyphenation object + + + + Add a character class. + A character class defines characters that are considered + equivalent for the purpose of hyphenation (e.g. "aA"). It + usually means to ignore case. + @param chargroup character group + + + Add a hyphenation exception. An exception replaces the + result obtained by the algorithm for cases for which this + fails or the user wants to provide his own hyphenation. + A hyphenatedword is a vector of alternating String's and + {@link Hyphen Hyphen} instances + + + Add hyphenation patterns. + @param pattern the pattern + @param values interletter values expressed as a string of + digit characters. + + + Parses the xml hyphenation pattern. + + @author Paulo Soares + + + Creates a new instance of PatternParser2 + + +

    Ternary Search Tree

    + +

    A ternary search tree is a hibrid between a binary tree and + a digital search tree (trie). Keys are limited to strings. + A data value of type char is stored in each leaf node. + It can be used as an index (or pointer) to the data. + Branches that only contain one key are compressed to one node + by storing a pointer to the trailer substring of the key. + This class is intended to serve as base class or helper class + to implement Dictionary collections or the like. Ternary trees + have some nice properties as the following: the tree can be + traversed in sorted order, partial matches (wildcard) can be + implemented, retrieval of all keys within a given distance + from the target, etc. The storage requirements are higher than + a binary tree but a lot less than a trie. Performance is + comparable with a hash table, sometimes it outperforms a hash + function (most of the time can determine a miss faster than a hash).

    + +

    The main purpose of this java port is to serve as a base for + implementing TeX's hyphenation algorithm (see The TeXBook, + appendix H). Each language requires from 5000 to 15000 hyphenation + patterns which will be keys in this tree. The strings patterns + are usually small (from 2 to 5 characters), but each char in the + tree is stored in a node. Thus memory usage is the main concern. + We will sacrify 'elegance' to keep memory requirenments to the + minimum. Using java's char type as pointer (yes, I know pointer + it is a forbidden word in java) we can keep the size of the node + to be just 8 bytes (3 pointers and the data char). This gives + room for about 65000 nodes. In my tests the english patterns + took 7694 nodes and the german patterns 10055 nodes, + so I think we are safe.

    + +

    All said, this is a map with strings as keys and char as value. + Pretty limited!. It can be extended to a general map by + using the string representation of an object and using the + char value as an index to an array that contains the object + values.

    + + @author cav@uniscope.co.jp +
    + + We use 4 arrays to represent a node. I guess I should have created + a proper node class, but somehow Knuth's pascal code made me forget + we now have a portable language with memory management and + automatic garbage collection! And now is kind of late, furthermore, + if it ain't broken, don't fix it. + Pointer to low branch and to rest of the key when it is + stored directly in this node, we don't have unions in java! + + + Pointer to high branch. + + + Pointer to equal branch and to data when this node is a string terminator. + + +

    The character stored in this node: splitchar + Two special values are reserved:

    +
    • 0x0000 as string terminator
    • +
    • 0xFFFF to indicate that the branch starting at + this node is compressed
    +

    This shouldn't be a problem if we give the usual semantics to + strings since 0xFFFF is garanteed not to be an Unicode character.

    +
    + + This vector holds the trailing of the keys when the branch is compressed. + + + Branches are initially compressed, needing + one node per key plus the size of the string + key. They are decompressed as needed when + another key with same prefix + is inserted. This saves a lot of space, + specially for long keys. + + + The actual insertion function, recursive version. + + + Compares 2 null terminated char arrays + + + Compares a string with null terminated char array + + + Recursively insert the median first and then the median of the + lower and upper halves, and so on in order to get a balanced + tree. The array of keys is assumed to be sorted in ascending + order. + + + Balance the tree for best search performance + + + Each node stores a character (splitchar) which is part of + some Key(s). In a compressed branch (one that only contain + a single string key) the trailer of the key which is not + already in nodes is stored externally in the kv array. + As items are inserted, key substrings decrease. + Some substrings may completely disappear when the whole + branch is totally decompressed. + The tree is traversed to find the key substrings actually + used. In addition, duplicate substrings are removed using + a map (implemented with a TernaryTree!). + + + + current node index + + + current key + + + TernaryTree parent + + + Node stack + + + key stack implemented with a StringBuilder + + + traverse upwards + + + traverse the tree to find next key + + + + Summary description for ICC_Profile. + + + + Classes implementing this interface can create custom encodings or + replace existing ones. It is used in the context of PdfEncoding. + @author Paulo Soares + + + Converts an Unicode string to a byte array according to some encoding. + @param text the Unicode string + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts an Unicode char to a byte array according to some encoding. + @param char1 the Unicode char + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts a byte array to an Unicode string according to some encoding. + @param b the input byte array + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Called by Chunk to hyphenate a word. + + @author Paulo Soares + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + This is the AcroForm object for the complete document. + + + This is the array containing the references to annotations + that were added to the document. + + + This is an array containg references to some delayed annotations + (that were added for a page that doesn't exist yet). + + + Checks if the AcroForm is valid. + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + Stores the PDF version information, + knows how to write a PDF Header, + and how to add the version to the catalog (if necessary). + + + Contains different strings that are part of the header. + + + Indicates if the header was already written. + + + Indicates if we are working in append mode. + + + The version that was or will be written to the header. + + + The version that will be written to the catalog. + + + The version that user can use to get the actual version of PDF document * + + + The extensions dictionary. + @since 2.1.6 + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + Sets the append mode. + + + Writes the header to the OutputStreamCounter. + @throws IOException + + + Returns the PDF version as a name. + @param version the version character. + + + Returns the version as a byte[]. + @param version the version character + + + Adds the version to the Catalog dictionary. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Stores the information concerning viewer preferences, + and contains the business logic that allows you to set viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences + + + A series of viewer preferences. + + + This value will hold the viewer preferences for the page layout and page mode. + + + This dictionary holds the viewer preferences (other than page layout and page mode). + + + The mask to decide if a ViewerPreferences dictionary is needed + + + Returns the page layout and page mode value. + + + Returns the viewer preferences. + + + Sets the viewer preferences as the sum of several constants. + + @param preferences + the viewer preferences + @see PdfWriter#setViewerPreferences + + + Given a key for a viewer preference (a PdfName object), + this method returns the index in the VIEWER_PREFERENCES array. + @param key a PdfName referring to a viewer preference + @return an index in the VIEWER_PREFERENCES array + + + Checks if some value is valid for a certain key. + + + Sets the viewer preferences for printing. + + + Adds the viewer preferences defined in the preferences parameter to a + PdfDictionary (more specifically the root or catalog of a PDF file). + + @param catalog + + + The value indicating if the PDF has to be in conformance with PDF/X. + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#setPDFXConformance(int) + + + @see com.itextpdf.text.pdf.interfaces.PdfIsoConformance#isPdfIso() + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if the PDF has to be in conformance with PDF/X-1a:2001 + @return true of the PDF has to be in conformance with PDF/X-1a:2001 + + + Checks if the PDF has to be in conformance with PDF/X-3:2002 + @return true of the PDF has to be in conformance with PDF/X-3:2002 + + + Business logic that checks if a certain object is in conformance with PDF/X. + @param writer the writer that is supposed to write the PDF/X file + @param key the type of PDF ISO conformance that has to be checked + @param obj1 the object that is checked for conformance + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + The interface common to all layer types. + + @author Paulo Soares + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Gets the object representing the layer. + @return the object representing the layer + + + Allows a class to catch several document events. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + Called when a page is initialized. +

    + Note that if even if a page is not written this method is still + called. It is preferable to use onEndPage to avoid + infinite loops. +

    +

    + Note that this method isn't called for the first page. You should apply modifications for the first + page either before opening the document or by using the onOpenDocument() method. +

    + + @param writer the PdfWriter for this document + @param document the document +
    + + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + + Summary description for IPdfPCellEvent. + + + + + An interface that can be used to retrieve the position of cells in PdfPTable. + + @author Paulo Soares + + + + Implementation of the IndicLigaturizer for Gujarati. + + + Constructor for the IndicLigaturizer for Gujarati. + + + Hebrew is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Interface that needs to be implemented by classes that process bytes + representing text in specific languages. Processing involves changing + order to Right to Left and/or applying ligatures. + + + Processes a String + @param s the original String + @return the processed String + + + Indicates if the rundirection is right-to-left. + @return true if text needs to be rendered from right to left. + + + Superclass for processors that can convert a String of bytes in an Indic + language to a String in the same language of which the bytes are reordered + for rendering using a font that contains the necessary glyphs. + + + The table mapping specific character indexes to the characters in a + specific language. + + + Reorders the bytes in a String making Indic ligatures + + @param s + the original String + @return the ligaturized String + + + Indic languages are written from right to left. + + @return false + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Checks if a character is vowel letter. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel letter + + + Checks if a character is vowel sign. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel sign + + + Checks if a character is consonant letter. + + @param ch + the character that needs to be checked + @return true if the chracter is a consonant letter + + + Swaps two characters in a StringBuilder object + + @param s + the StringBuilder + @param i + the index of one character + @param j + the index of the other character + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newstring to the end of oldstring. + + + Represents a Bezier curve. + + @since 5.5.6 + + + If the distance between a point and a line is less than + this constant, then we consider the point lies on the line. + + + In the case when neither the line ((x1, y1), (x4, y4)) passes + through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we + use the square of the sum of the distances mentioned below in + compare to this field as the criterion of good approximation. + 1. The distance between the line and (x2, y2) + 2. The distance between the line and (x3, y3) + + + The Manhattan distance is used in the case when either the line + ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) + or (x1, y1) = (x4, y4). The essential observation is that when + the curve is a uniform speed straight line from end to end, the + control points are evenly spaced from beginning to end. Our measure + of how far we deviate from that ideal uses distance of the middle + controls: point 2 should be halfway between points 1 and 3; point 3 + should be halfway between points 2 and 4. + + + Constructs new bezier curve. + @param controlPoints Curve's control points. + + + {@inheritDoc} + + + You can adjust precision of the approximation by varying the following + parameters: {@link #curveCollinearityEpsilon}, {@link #distanceToleranceSquare}, + {@link #distanceToleranceManhattan} + + @return {@link java.util.List} containing points of piecewise linear approximation + for this bezier curve. + @since 5.5.6 + + + @author kevin + @since 5.0.1 + + + Gets the content bytes from a content object, which may be a reference + a stream or an array. + @param contentObject the object to read bytes from + @return the content bytes + @throws IOException + + + Gets the content bytes of a page from a reader + @param reader the reader to get content bytes from + @param pageNum the page number of page you want get the content stream from + @return a byte array with the effective content stream of a page + @throws IOException + @since 5.0.1 + + + Simply extends the {@link com.itextpdf.text.pdf.parser.RenderListener} interface to provide + additional methods. + + {@inheritDoc} + + @since 5.5.6 + + + Called when the current path is being modified. E.g. new segment is being added, + new subpath is being started etc. + + @param renderInfo Contains information about the path segment being added to the current path. + + + Called when the current path should be rendered. + + @param renderInfo Contains information about the current path which should be rendered. + @return The path which can be used as a new clipping path. + + + Called when the current path should be set as a new clipping path. + + @param rule Either {@link PathPaintingRenderInfo#EVEN_ODD_RULE} or {@link PathPaintingRenderInfo#NONZERO_WINDING_RULE} + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + The filters to be applied + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + Applies filters, then delegates to the deleg if all filters pass + @param renderInfo contains info to render text + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + Applies filters, then delegates to the deleg if all filters pass + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.TextExtractionStrategy#getResultantText() + + + Keeps all the parameters of the graphics state. + @since 2.1.4 + + + The current transformation matrix. + + + The current character spacing. + + + The current word spacing. + + + The current horizontal scaling + + + The current leading. + + + The active font. + + + The current font size. + + + The current render mode. + + + The current text rise + + + The current knockout value. + + + The current color space for stroke. + + + The current color space for stroke. + + + The current fill color. + + + The current stroke color. + + + The line width for stroking operations + + + The line cap style. For possible values + see {@link PdfContentByte} + + + The line join style. For possible values + see {@link PdfContentByte} + + + The mitir limit value + + + The line dash pattern + + + Constructs a new Graphics State object with the default values. + + + Copy constructor. + @param source another GraphicsState object + + + Getter for the current transformation matrix + @return the ctm + @since iText 5.0.1 + + + Getter for the character spacing. + @return the character spacing + @since iText 5.0.1 + + + Getter for the word spacing + @return the word spacing + @since iText 5.0.1 + + + Getter for the horizontal scaling + @return the horizontal scaling + @since iText 5.0.1 + + + Getter for the leading + @return the leading + @since iText 5.0.1 + + + Getter for the font + @return the font + @since iText 5.0.1 + + + Getter for the font size + @return the font size + @since iText 5.0.1 + + + Getter for the render mode + @return the renderMode + @since iText 5.0.1 + + + Getter for text rise + @return the text rise + @since iText 5.0.1 + + + Getter for knockout + @return the knockout + @since iText 5.0.1 + + + Gets the current color space for fill operations + + + Gets the current color space for stroke operations + + + Gets the current fill color + @return a BaseColor + + + Gets the current stroke color + @return a BaseColor + + + Getter and setter for the line width. + @return The line width + @since 5.5.6 + + + Getter and setter for the line cap style. + For possible values see {@link PdfContentByte} + @return The line cap style. + @since 5.5.6 + + + Getter and setter for the line join style. + For possible values see {@link PdfContentByte} + @return The line join style. + @since 5.5.6 + + + Getter and setter for the miter limit value. + @return The miter limit. + @since 5.5.6 + + + Getter for the line dash pattern. + @return The line dash pattern. + @since 5.5.6 + + + Setter for the line dash pattern. + @param lineDashPattern New line dash pattern. + @since 5.5.6 + + + Interface implemented by a series of content operators + @since 2.1.4 + + + Invokes a content operator. + @param processor the processor that is dealing with the PDF content + @param operator the literal PDF syntax of the operator + @param operands the operands that come with the operator + @throws Exception any exception can be thrown - it will be re-packaged into a runtime exception and re-thrown by the {@link PdfContentStreamProcessor} + + + Represents image data from a PDF + @since 5.0.1 + + + The graphics state that was in effect when the image was rendered + + + A reference to the image XObject + + + A reference to an inline image + + + the color space associated with the image + + + the image object to be rendered, if it has been parsed already. Null otherwise. + + + Array containing marked content info for the text. + @since 5.5.11 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on inline image data. This is nowhere near completely thought through + and really just acts as a placeholder. + @param ctm the coordinate transformation matrix at the time the image is rendered + @param imageObject the image object representing the inline image + @return the ImageRenderInfo representing the rendered embedded image + @since 5.0.1 + + + Gets an object containing the image dictionary and bytes. + @return an object containing the image dictionary and byte[] + @since 5.0.2 + + + @return a vector in User space representing the start point of the xobject + + + @return The coordinate transformation matrix active when this image was rendered. Coordinates are in User space. + @since 5.0.3 + + + @return the size of the image, in User space units + + + @return an indirect reference to the image + @since 5.0.2 + + + @return the current fill color from the graphics state at the time this render operation occured + @since 5.5.7 + + + Checks if the image belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.5.11 + + + * Checks if the image belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.5.11 + + + @return the marked content associated with the ImageRenderInfo instance. + + + + Called when a new text block is beginning (i.e. BT) + @since iText 5.0.1 + + + Called when text should be rendered + @param renderInfo information specifying what to render + + + Called when a text block has ended (i.e. ET) + @since iText 5.0.1 + + + Called when image should be rendered + @param renderInfo information specifying what to render + @since iText 5.0.1 + + + Defines an interface for {@link RenderListener}s that can return text + @since 5.0.2 + + + Returns the result so far. + @return a String with the resulting text. + + + Represents a line. + + @since 5.5.6 + + + Constructs a new zero-length line starting at zero. + + + Constructs a new line based on the given coordinates. + + + Constructs a new line based on the given coordinates. + + + Represents the line dash pattern. The line dash pattern shall control the pattern + of dashes and gaps used to stroke paths. It shall be specified by a dash array and + a dash phase. + + @since 5.5.6 + + + Creates new {@link LineDashPattern} object. + @param dashArray The dash array. See {@link #getDashArray()} + @param dashPhase The dash phase. See {@link #getDashPhase()} + + + Getter and setter for the dash array. + + The dash array’s elements is number that specify the lengths of + alternating dashes and gaps; the numbers are nonnegative. The + elements are expressed in user space units. + + @return The dash array. + + + Getter and setter for the dash phase. + + The dash phase shall specify the distance into the dash pattern at which + to start the dash. The elements are expressed in user space units. + + @return The dash phase. + + + Calculates and returns the next element which is either gap or dash. + @return The next dash array's element. + + + Checks whether the dashed pattern is solid or not. It's solid when the + size of a dash array is even and sum of all the units off in the array + is 0.
    + For example: [3 0 4 0 5 0 6 0] (sum is 0), [3 0 4 0 5 1] (sum is 1). +
    + + Resets the dash array so that the {@link #next()} method will start + from the beginning of the dash array. + + + Represents a line segment in a particular coordinate system. This class is immutable. + @since 5.0.2 + + + Start vector of the segment. + + + End vector of the segment. + + + Creates a new line segment. + @param startPoint the start point of a line segment. + @param endPoint the end point of a line segment. + + + @return the start point + + + @return the end point + + + @return the length of this line segment + @since 5.0.2 + + + Computes the bounding rectangle for this line segment. The rectangle has a rotation 0 degrees + with respect to the coordinate system that the line system is in. For example, if a line segment + is 5 unit long and sits at a 37 degree angle from horizontal, the bounding rectangle will have + origin of the lower left hand end point of the segment, with width = 4 and height = 3. + @return the bounding rectangle + @since 5.0.2 + + + Transforms the segment by the specified matrix + @param m the matrix for the transformation + @return the transformed segment + + + + set to true for debugging + + + a summary of all found text + + + Creates a new text extraction renderer. + + + Creates a new text extraction renderer, with a custom strategy for + creating new TextChunkLocation objects based on the input of the + TextRenderInfo. + @param strat the custom strategy + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @param str + @return true if the string starts with a space character, false if the string is empty or starts with a non-space character + + + @param str + @return true if the string ends with a space character, false if the string is empty or ends with a non-space character + + + Filters the provided list with the provided filter + @param textChunks a list of all TextChunks that this strategy found during processing + @param filter the filter to apply. If null, filtering will be skipped. + @return the filtered list + @since 5.3.3 + + + Determines if a space character should be inserted between a previous chunk and the current chunk. + This method is exposed as a callback so subclasses can fine time the algorithm for determining whether a space should be inserted or not. + By default, this method will insert a space if the there is a gap of more than half the font space character width between the end of the + previous chunk and the beginning of the current chunk. It will also indicate that a space is needed if the starting point of the new chunk + appears *before* the end of the previous chunk (i.e. overlapping text). + @param chunk the new chunk being evaluated + @param previousChunk the chunk that appeared immediately before the current chunk + @return true if the two chunks represent different words (i.e. should have a space between them). False otherwise. + + + Gets text that meets the specified filter + If multiple text extractions will be performed for the same page (i.e. for different physical regions of the page), + filtering at this level is more efficient than filtering using {@link FilteredRenderListener} - but not nearly as powerful + because most of the RenderInfo state is not captured in {@link TextChunk} + @param chunkFilter the filter to to apply + @return the text results so far, filtered using the specified filter + + + Returns the result so far. + @return a String with the resulting text. + + + Used for debugging only + + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + the starting location of the chunk + + + the ending location of the chunk + + + the orientation as a scalar for quick sorting + + + perpendicular distance to the orientation unit vector (i.e. the Y position in an unrotated coordinate system) + we round to the nearest integer to handle the fuzziness of comparing floats + + + distance of the start of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + distance of the end of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + the width of a single space character in the font of the chunk + + + @param comparedLine the location to compare to + @return true is this location is on the the same line as the other + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + unit vector in the orientation of the chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + Represents a chunk of text, it's orientation, and location relative to the orientation vector + + + the text of the chunk + + + @return the start location of the text + + + @return the end location of the text + + + @return the width of a single space character as rendered by this chunk + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @param as the location to compare to + @return true is this location is on the the same line as the other + + + + @param int1 + @param int2 + @return comparison of the two integers + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + Specifies a filter for filtering {@link TextChunk} objects during text extraction + @see LocationTextExtractionStrategy#getResultantText(TextChunkFilter) + @since 5.3.3 + + + @param textChunk the chunk to check + @return true if the chunk should be allowed + + + Represents a Marked Content block in a PDF + @since 5.0.2 + + + Get the tag of this marked content + @return the tag of this marked content + + + Determine if an MCID is available + @return true if the MCID is available, false otherwise + + + Gets the MCID value If the Marked Content contains + an MCID entry, returns that value. Otherwise, a {@link NullPointerException} is thrown. + @return the MCID value + @throws NullPointerException if there is no MCID (see {@link MarkedContentInfo#hasMcid()}) + + + A {@link RenderFilter} that only allows text within a specified marked content sequence. + @since 5.0.2 + + + The MCID to match. + + + Constructs a filter + @param mcid the MCID to match + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Keeps all the values of a 3 by 3 matrix + and allows you to do some math with matrices. + @since 2.1.4 + + + the row=1, col=1 position ('a') in the matrix. + + + the row=1, col=2 position ('b') in the matrix. + + + the row=1, col=3 position (always 0 for 2-D) in the matrix. + + + the row=2, col=1 position ('c') in the matrix. + + + the row=2, col=2 position ('d') in the matrix. + + + the row=2, col=3 position (always 0 for 2-D) in the matrix. + + + the row=3, col=1 ('e', or X translation) position in the matrix. + + + the row=3, col=2 ('f', or Y translation) position in the matrix. + + + the row=3, col=3 position (always 1 for 2-D) in the matrix. + + + the values inside the matrix (the identity matrix by default). + default initialization is performed in the default constructor. + + + constructs a new Matrix with identity. + !shall be called from any other constructor! + + + Constructs a matrix that represents translation + @param tx + @param ty + + + Creates a Matrix with 6 specified entries + @param a + @param b + @param c + @param d + @param e + @param f + + + Gets a specific value inside the matrix. + @param index an array index corresponding with a value inside the matrix + @return the value at that specific position. + + + multiplies this matrix by 'b' and returns the result + See http://en.wikipedia.org/wiki/Matrix_multiplication + @param by The matrix to multiply by + @return the resulting matrix + + + Subtracts a matrix from this matrix and returns the results + @param arg the matrix to subtract from this matrix + @return a Matrix object + + + Computes the determinant of the matrix. + @return the determinant of the matrix + + + Checks equality of matrices. + @param obj the other Matrix that needs to be compared with this matrix. + @return true if both matrices are equal + @see java.lang.Object#equals(java.lang.Object) + + + Generates a hash code for this object. + @return the hash code of this object + @see java.lang.Object#hashCode() + + + Generates a String representation of the matrix. + @return the values, delimited with tabs and newlines. + @see java.lang.Object#toString() + + + Attaches a {@link RenderListener} for the corresponding filter set. + @param delegate RenderListener instance to be attached. + @param filterSet filter set to be attached. The delegate will be invoked if all the filters pass. + + + Paths define shapes, trajectories, and regions of all sorts. They shall be used + to draw lines, define the shapes of filled areas, and specify boundaries for clipping + other graphics. A path shall be composed of straight and curved line segments, which + may connect to one another or may be disconnected. + + @since 5.5.6 + + + @return A {@link java.util.List} of subpaths forming this path. + + + Adds the subpath to this path. + + @param subpath The subpath to be added to this path. + + + Adds the subpaths to this path. + + @param subpaths {@link java.util.List} of subpaths to be added to this path. + + + The current point is the trailing endpoint of the segment most recently added to the current path. + + @return The current point. + + + Begins a new subpath by moving the current point to coordinates (x, y). + + + Appends a straight line segment from the current point to the point (x, y). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the current + point represents two control points. + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the (x3, y3) + point represents two control points. + + + Appends a rectangle to the current path as a complete subpath. + + + Closes the current subpath. + + + Closes all subpathes contained in this path. + + + Adds additional line to each closed subpath and makes the subpath unclosed. + The line connects the last and the first points of the subpaths. + + @returns Indices of modified subpaths. + + + Path is empty if it contains no subpaths. + + + Contains information relating to construction the current path. + + @since 5.5.6 + + + See {@link com.itextpdf.text.pdf.parser.Path#moveTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#lineTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveFromTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#closeSubpath()} + + + See {@link com.itextpdf.text.pdf.parser.Path#rectangle(float, float, float, float)} + + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains data of a new segment being added to the current path. + E.g. x, y, w, h for rectangle; x, y for line etc. + @param ctm Current transformation matrix. + + + See {@link #PathConstructionRenderInfo(int, java.util.List, Matrix)} + + + @return construction operation should be performed on the current path. + + + @return {@link java.util.List} containing data of a new segment (E.g. x, y, w, h for rectangle; + x, y for line etc.) if the specified operation relates to adding the segment to the + current path, null otherwise. + + + @return Current transformation matrix. + + + Contains information relating to painting current path. + + @since 5.5.6 + + + The nonzero winding number rule determines whether a given point is inside a path by + conceptually drawing a ray from that point to infinity in any direction and then examining + the places where a segment of the path crosses the ray. Starting with a count of 0, the rule + adds 1 each time a path segment crosses the ray from left to right and subtracts 1 each time a + segment crosses from right to left. After counting all the crossings, if the result is 0, the + point is outside the path; otherwise, it is inside. + + For more details see PDF spec. + + + The even-odd rule determines whether a point is inside a path by drawing a ray from that point in + any direction and simply counting the number of path segments that cross the ray, regardless of + direction. If this number is odd, the point is inside; if even, the point is outside. + + For more details see PDF spec. + + + End the path object without filling or stroking it. This operator shall be a path-painting no-op, + used primarily for the side effect of changing the current clipping path + + + Value specifying stroke operation to perform on the current path. + + + Value specifying fill operation to perform on the current path. When the fill operation + is performed it should use either nonzero winding or even-odd rule. + + + @param operation One of the possible combinations of {@link #STROKE} and {@link #FILL} values or {@link #NO_OP} + @param rule Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + @param gs The graphics state. + + + If the operation is {@link #NO_OP} then the rule is ignored, + otherwise {@link #NONZERO_WINDING_RULE} is used by default. + + See {@link #PathPaintingRenderInfo(int, int, GraphicsState)} + + + @return int value which is either {@link #NO_OP} or one of possible + combinations of {@link #STROKE} and {@link #FILL} + + + @return Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + + + @return Current transformation matrix. + + + Tool that parses the content of a PDF document. + @since 2.1.4 + + + Shows the detail of a dictionary. + This is similar to the PdfLister functionality. + @param dic the dictionary of which you want the detail + @return a String representation of the dictionary + + + Shows the detail of a dictionary. + @param dic the dictionary of which you want the detail + @param depth the depth of the current dictionary (for nested dictionaries) + @return a String representation of the dictionary + + + Displays a summary of the entries in the XObject dictionary for the stream + @param resourceDic the resource dictionary for the stream + @return a string with the summary of the entries + @throws IOException + @since 5.0.2 + + + Writes information about a specific page from PdfReader to the specified output stream. + @since 2.1.5 + @param reader the PdfReader to read the page content from + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param out the output stream to send the content to + @throws IOException + + + Writes information about the specified page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified file, or System.out. + @param args + + + Processor for a PDF content Stream. + @since 2.1.4 + + + Default oper + @since 5.0.1 + + + A map with all supported operators (PDF syntax). + + + Resources for the content stream. + + + Stack keeping track of the graphics state. + + + Text matrix. + + + Text line matrix. + + + Listener that will be notified of render events + + + A map with all supported XObject handlers + + + The font cache. + @since 5.0.6 + + + + A stack containing marked content info. + @since 5.0.2 + + + Creates a new PDF Content Stream Processor that will send it's output to the + designated render listener. + + @param renderListener the {@link RenderListener} that will receive rendering notifications + + + + Gets the font pointed to by the indirect reference. The font may have been cached. + @param ind the indirect reference ponting to the font + @return the font + @since 5.0.6 + + + Loads all the supported graphics and text state operators in a map. + + + + @return {@link java.util.Collection} containing all the registered operators strings + @since 5.5.6 + + + Resets the graphics state stack, matrices and resources. + + + Returns the current graphics state. + @return the graphics state + + + Invokes an oper. + @param oper the PDF Syntax of the oper + @param operands a list with operands + + + Add to the marked content stack + @param tag the tag of the marked content + @param dict the PdfDictionary associated with the marked content + @since 5.0.2 + + + Remove the latest marked content from the stack. Keeps track of the BMC, BDC and EMC operators. + @since 5.0.2 + + + Used to trigger beginTextBlock on the renderListener + + + Used to trigger endTextBlock on the renderListener + + + Displays text. + @param string the text to display + + + Displays an XObject using the registered handler for this XObject's subtype + @param xobjectName the name of the XObject to retrieve from the resource dictionary + + + Displays the current path. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any int value. + @param close Indicates whether the path should be closed or not. + @since 5.5.6 + + + Modifies the current path. + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains x, y components of points of a new segment being added to the current path. + E.g. x1 y1 x2 y2 x3 y3 etc. It's ignored for "close subpath" operarion (h). + + + Adjusts the text matrix for the specified adjustment value (see TJ oper in the PDF spec for information) + @param tj the text adjustment + + + Processes PDF syntax. + Note: If you re-use a given {@link PdfContentStreamProcessor}, you must call {@link PdfContentStreamProcessor#reset()} + @param contentBytes the bytes of a content stream + @param resources the resources that come with the content stream + + + Callback when an inline image is found. This requires special handling because inline images don't follow the standard operator syntax + @param info the inline image + @param colorSpaceDic the color space for the inline immage + + + Property for the RenderListener object maintained in this class. + Necessary for implementing custom ContentOperator implementations. + @return the renderListener + + + A resource dictionary that allows stack-like behavior to support resource dictionary inheritance + + + A content oper implementation (unregistered). + + + A content oper implementation (TJ). + + + A content oper implementation ("). + + + A content oper implementation ('). + + + A content oper implementation (Tj). + + + A content oper implementation (T*). + + + A content oper implementation (Tm). + + + A content oper implementation (TD). + + + A content oper implementation (Td). + + + A content oper implementation (Tf). + + + A content oper implementation (Tr). + + + A content oper implementation (Ts). + + + A content oper implementation (TL). + + + A content oper implementation (Tz). + + + A content oper implementation (Tc). + + + A content oper implementation (Tw). + + + A content oper implementation (gs). + + + A content oper implementation (q). + + + A content oper implementation (cm). + + + Gets a color based on a list of operands. + + + Gets a color based on a list of operands. + + + A content operator implementation (g). + + + A content operator implementation (G). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (cs). + + + A content operator implementation (CS). + + + A content operator implementation (sc / scn). + + + A content operator implementation (SC / SCN). + + + A content oper implementation (Q). + + + A content oper implementation (BT). + + + A content oper implementation (ET). + + + A content oper implementation (BMC). + @since 5.0.2 + + + A content oper implementation (BDC). + @since 5.0.2 + + + A content oper implementation (EMC). + @since 5.0.2 + + + A content oper implementation (Do). + + + A content operator implementation (w). + + + A content operator implementation (J). + + + A content operator implementation (j). + + + A content operator implementation (M). + + + A content operator implementation (d). + + + A content operator implementation (m). + + @since 5.5.6 + + + A content operator implementation (l). + + @since 5.5.6 + + + A content operator implementation (c). + + @since 5.5.6 + + + A content operator implementation (v). + + @since 5.5.6 + + + A content operator implementation (y). + + @since 5.5.6 + + + A content operator implementation (h). + + @since 5.5.6 + + + A content operator implementation (re). + + @since 5.5.6 + + + A content operator implementation (S, s, f, F, f*, B, B*, b, b*). + + @since 5.5.6 + + + Constructs PainPath object. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any value. + @param close Indicates whether the path should be closed or not. + + + A content operator implementation (n). + + @since 5.5.6 + + + An XObject subtype handler for FORM + + + An XObject subtype handler for IMAGE + + + An XObject subtype handler that does nothing + + + An object that contains an image dictionary and image bytes. + @since 5.0.2 + + + Different types of data that can be stored in the bytes of a {@link PdfImageObject} + @since 5.0.4 + + + the recommended file extension for streams of this type + + + @param fileExtension the recommended file extension for use with data of this type (for example, if the bytes were just saved to a file, what extension should the file have) + + + @return the file extension registered when this type was created + + + A filter that does nothing, but keeps track of the filter type that was used + @since 5.0.4 + + + The image dictionary. + + + The decoded image bytes (after applying filters), or the raw image bytes if unable to decode + + + Tracks the type of data that is actually stored in the streamBytes member + + + @return the type of image data that is returned by getImageBytes() + + + Creates a PdfImage object. + @param stream a PRStream + @throws IOException + + + Creates a PdfImage object. + @param stream a PRStream + @param colorSpaceDic a color space dictionary + @throws IOException + + + Creats a PdfImage object using an explicitly provided dictionary and image bytes + @param dictionary the dictionary for the image + @param samples the samples + @since 5.0.3 + + + Returns an entry from the image dictionary. + @param key a key + @return the value + + + Returns the image dictionary. + @return the dictionary + + + Sets state of this object according to the color space + @param colorspace the colorspace to use + @param allowIndexed whether indexed color spaces will be resolved (used for recursive call) + @throws IOException if there is a problem with reading from the underlying stream + + + decodes the bytes currently captured in the streamBytes and replaces it with an image representation of the bytes + (this will either be a png or a tiff, depending on the color depth of the image) + @throws IOException + + + @return the bytes of the image (the format will be as specified in {@link PdfImageObject#getImageBytesType()} + @throws IOException + @since 5.0.4 + + + A utility class that makes it cleaner to process content from pages of a PdfReader + through a specified RenderListener. + @since 5.0.2 + + + the reader this parser will process + + + + + Extracts text from a PDF file. + @since 2.1.4 + + + Extract text from a specified page using an extraction strategy. + Also allows registration of custom ContentOperators + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @param additionalContentOperators an optional dictionary of custom IContentOperators for rendering instructions + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + + + Extract text from a specified page using an extraction strategy. + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + @since 5.0.2 + + + + A {@link RenderFilter} that only allows text within a specified rectangular region + @since 5.0.1 + + + the region to allow text from + + + Constructs a filter + @param filterRect the rectangle to filter text against. Note that this is a java.awt.Rectangle ! + + + Constructs a filter + @param filterRect the rectangle to filter text against. + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Interface for defining filters for use with {@link FilteredRenderListener} + @since 5.0.1 + + + @param renderInfo + @return true if the text render operation should be performed + + + + @param renderInfo + @return true if the image render operation should be performed + + + Represents segment from a PDF path. + + @since 5.5.6 + + + Treat base points as the points which are enough to construct a shape. + E.g. for a bezier curve they are control points, for a line segment - the start and the end points + of the segment. + + @return Ordered list consisting of shape's base points. + + + A simple text extraction renderer. + + This renderer keeps track of the current Y position of each string. If it detects + that the y position has changed, it inserts a line break into the output. If the + PDF renders text in a non-top-to-bottom fashion, this will result in the text not + being a true representation of how it appears in the PDF. + + This renderer also uses a simple strategy based on the font metrics to determine if + a blank space should be inserted into the output. + + @since 2.1.5 + + + used to store the resulting String. + + + Creates a new text extraction renderer. + + + @since 5.0.1 + + + @since 5.0.1 + + + Returns the result so far. + @return a String with the resulting text. + + + Used to actually append text to the text results. Subclasses can use this to insert + text that wouldn't normally be included in text parsing (e.g. result of OCR performed against + image content) + @param text the text to append to the text results accumulated so far + + + Captures text using a simplified algorithm for inserting hard returns and spaces + @param renderInfo render info + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + As subpath is a part of a path comprising a sequence of connected segments. + + @since 5.5.6 + + + Copy constuctor. + @param subpath + + + Constructs a new subpath starting at the given point. + + + Constructs a new subpath starting at the given point. + + + Sets the start point of the subpath. + @param startPoint + + + Sets the start point of the subpath. + @param x + @param y + + + @return The point this subpath starts at. + + + @return The last point of the subpath. + + + Adds a segment to the subpath. + Note: each new segment shall start at the end of the previous segment. + @param segment new segment. + + + @return {@link java.util.List} comprising all the segments + the subpath made on. + + + Checks whether subpath is empty or not. + @return true if the subpath is empty, false otherwise. + + + @return true if this subpath contains only one point and it is not closed, + false otherwise + + + Returns or sets a bool value indicating whether the subpath must be closed or not. + Ignore this value if the subpath is a rectangle because in this case it is already closed + (of course if you paint the path using re operator) + + @return bool value indicating whether the path must be closed or not. + @since 5.5.6 + + + Returns a bool indicating whether the subpath is degenerate or not. + A degenerate subpath is the subpath consisting of a single-point closed path or of + two or more points at the same coordinates. + + @return bool value indicating whether the path is degenerate or not. + @since 5.5.6 + + + @return {@link java.util.List} containing points of piecewise linear approximation + for this subpath. + @since 5.5.6 + + + Converts a tagged PDF document into an XML file. + + @since 5.0.2 + + + The reader obj from which the content streams are read. + + + The writer obj to which the XML will be written + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + @param charset + the charset to encode the data + @since 5.0.5 + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + + + Inspects a child of a structured element. This can be an array or a + dictionary. + + @param k + the child to inspect + @throws IOException + + + If the child of a structured element is an array, we need to loop over + the elements. + + @param k + the child array to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + Searches for a tag in a page. + + @param tag + the name of the tag + @param obj + an identifier to find the marked content + @param page + a page dictionary + @throws IOException + + + Allows you to find the rectangle that contains all the text in a page. + @since 5.0.2 + + + Method invokes by the PdfContentStreamProcessor. + Passes a TextRenderInfo for every text chunk that is encountered. + We'll use this object to obtain coordinates. + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Getter for the left margin. + @return the X position of the left margin + + + Getter for the bottom margin. + @return the Y position of the bottom margin + + + Getter for the right margin. + @return the X position of the right margin + + + Getter for the top margin. + @return the Y position of the top margin + + + Gets the width of the text block. + @return a width + + + Gets the height of the text block. + @return a height + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + + + + ! .NET SPECIFIC ! + is used for caching "UTF-16BE" encoding to improve performance + + + Array containing marked content info for the text. + @since 5.0.2 + + + Creates a new TextRenderInfo object + @param string the PDF string that should be displayed + @param gs the graphics state (note: at this time, this is not immutable, so don't cache it) + @param textMatrix the text matrix at the time of the render operation + @param markedContentInfo the marked content sequence, if available + + + Used for creating sub-TextRenderInfos for each individual character + @param parent the parent TextRenderInfo + @param string the content of a TextRenderInfo + @param horizontalOffset the unscaled horizontal offset of the character that this TextRenderInfo represents + @since 5.3.3 + + + @return the text to render + + + @return original PDF string + + + Checks if the text belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.0.2 + + + * Checks if the text belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.3.5 + + + @return the marked content associated with the TextRenderInfo instance. + + + @return the unscaled (i.e. in Text space) width of the text + + + Gets the baseline for the text (i.e. the line that the text 'sits' on) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the baseline line segment + @since 5.0.2 + + + Gets the ascentline for the text (i.e. the line that represents the topmost extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the ascentline line segment + @since 5.0.2 + + + Gets the descentline for the text (i.e. the line that represents the bottom most extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the descentline line segment + @since 5.0.2 + + + Getter for the font + @return the font + @since iText 5.0.2 + + + The rise represents how far above the nominal baseline the text should be rendered. The {@link #getBaseline()}, {@link #getAscentLine()} and {@link #getDescentLine()} methods already include Rise. + This method is exposed to allow listeners to determine if an explicit rise was involved in the computation of the baseline (this might be useful, for example, for identifying superscript rendering) + @return The Rise for the text draw operation, in user space units (Ts value, scaled to user space) + @since 5.3.3 + + + + @param width the width, in text space + @return the width in user space + @since 5.3.3 + + + + @param height the height, in text space + @return the height in user space + @since 5.3.3 + + + @return The width, in user space units, of a single space character in the current font + + + @return the text render mode that should be used for the text. From the + PDF specification, this means: +
      +
    • 0 = Fill text
    • +
    • 1 = Stroke text
    • +
    • 2 = Fill, then stroke text
    • +
    • 3 = Invisible
    • +
    • 4 = Fill text and add to path for clipping
    • +
    • 5 = Stroke text and add to path for clipping
    • +
    • 6 = Fill, then stroke text and add to path for clipping
    • +
    • 7 = Add text to padd for clipping
    • +
    + @since iText 5.0.1 +
    + + @return the current fill color. + + + @return the current stroke color. + + + Calculates the width of a space character. If the font does not define + a width for a standard space character \u0020, we also attempt to use + the width of \u00A0 (a non-breaking space in many fonts) + @return the width of a single space character in text space units + + + Gets the width of a String in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Gets the width of a PDF string in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Provides detail useful if a listener needs access to the position of each individual glyph in the text render operation + @return A list of {@link TextRenderInfo} objects that represent each glyph used in the draw operation. The next effect is if there was a separate Tj opertion for each character in the rendered string + @since 5.3.3 + + + Calculates width and word spacing of a single character PDF string. + @param string a character to calculate width. + @param singleCharString true if PDF string represents single character, false otherwise. + @return array of 2 items: first item is a character width, second item is a calculated word spacing. + + + Decodes a PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + Converts a single character string to char code. + + @param string single character string to convert to. + @return char code. + + + Split PDF string into array of single character PDF strings. + @param string PDF string to be splitted. + @return splitted PDF string. + + + + index of the X coordinate + + + index of the Y coordinate + + + index of the Z coordinate + + + the values inside the vector + + + Creates a new Vector + @param x the X coordinate + @param y the Y coordinate + @param z the Z coordinate + + + Gets the value from a coordinate of the vector + @param index the index of the value to get (I1, I2 or I3) + @return a coordinate value + + + Computes the cross product of this vector and the specified matrix + @param by the matrix to cross this vector with + @return the result of the cross product + + + Computes the difference between this vector and the specified vector + @param v the vector to subtract from this one + @return the results of the subtraction + + + Computes the cross product of this vector and the specified vector + @param with the vector to cross this vector with + @return the cross product + + + Normalizes the vector (i.e. returns the unit vector in the same orientation as this vector) + @return the unit vector + @since 5.0.1 + + + Multiplies the vector by a scalar + @param by the scalar to multiply by + @return the result of the scalar multiplication + @since 5.0.1 + + + Computes the dot product of this vector with the specified vector + @param with the vector to dot product this vector with + @return the dot product + + + + + @see java.lang.Object#toString() + + + @since 5.0.1 + @see java.lang.Object#equals(java.lang.Object) + + + @author Kevin Day + @since iText 5.0.1 + + + Represents an inline image from a PDF + @since 5.1.4 + + + @return the image dictionary associated with this inline image + + + @return the raw samples associated with this inline image + + + Utility methods to help with processing of inline images + @since 5.0.4 + + + Simple class in case users need to differentiate an exception from processing + inline images vs other exceptions + @since 5.0.4 + + + Map between key abbreviations allowed in dictionary of inline images and their + equivalent image dictionary keys + + + Map between value abbreviations allowed in dictionary of inline images for COLORSPACE + + + Map between value abbreviations allowed in dictionary of inline images for FILTER + + + Parses an inline image from the provided content parser. The parser must be positioned immediately following the BI operator in the content stream. + The parser will be left with current position immediately following the EI operator that terminates the inline image + @param ps the content parser to use for reading the image. + @return the parsed image + @throws IOException if anything goes wring with the parsing + @throws InlineImageParseException if parsing of the inline image failed due to issues specific to inline image processing + + + Parses the next inline image dictionary from the parser. The parser must be positioned immediately following the EI operator. + The parser will be left with position immediately following the whitespace character that follows the ID operator that ends the inline image dictionary. + @param ps the parser to extract the embedded image information from + @return the dictionary for the inline image, with any abbreviations converted to regular image dictionary keys and values + @throws IOException if the parse fails + + + Transforms value abbreviations into their corresponding real value + @param key the key that the value is for + @param value the value that might be an abbreviation + @return if value is an allowed abbreviation for the key, the expanded value for that abbreviation. Otherwise, value is returned without modification + + + @param colorSpaceName the name of the color space. If null, a bi-tonal (black and white) color space is assumed. + @return the components per pixel for the specified color space + + + Computes the number of unfiltered bytes that each row of the image will contain. + If the number of bytes results in a partial terminating byte, this number is rounded up + per the PDF specification + @param imageDictionary the dictionary of the inline image + @return the number of bytes per row of the image + + + Parses the samples of the image from the underlying content parser, ignoring all filters. + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + This is primarily useful if no filters have been applied. + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Parses the samples of the image from the underlying content parser, accounting for filters + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + Note:This implementation does not actually apply the filters at this time + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Represents a pattern. Can be used in high-level constructs (Paragraph, Cell, etc.). + + + The actual pattern. + + + Creates a color representing a pattern. + @param painter the actual pattern + + + Gets the pattern. + @return the pattern + + + Each PDF document can contain maximum 1 AcroForm. + + + This is a map containing FieldTemplates. + + + This is an array containing DocumentFields. + + + This is an array containing the calculationorder of the fields. + + + Contains the signature flags. + + + Creates new PdfAcroForm + + + Adds fieldTemplates. + + + Adds documentFields. + + + Closes the AcroForm. + + + Adds an object to the calculationOrder. + + + Sets the signature flags. + + + Adds a formfield to the AcroForm. + + + @param field + @param name + @param llx + @param lly + @param urx + @param ury + + + @param field + @param llx + @param lly + @param urx + @param ury + + + A PdfAction defines an action that can be triggered from a PDF file. + + @see PdfDictionary + + + A named action to go to the first page. + + + A named action to go to the previous page. + + + A named action to go to the next page. + + + A named action to go to the last page. + + + A named action to open a print dialog. + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + Create an empty action. + + + Constructs a new PdfAction of Subtype URI. + + @param url the Url to go to + + + Constructs a new PdfAction of Subtype URI. + + @param url the url to go to + + + Constructs a new PdfAction of Subtype GoTo. + @param destination the destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param name the named destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param page the page destination to go to + + + Implements name actions. The action can be FIRSTPAGE, LASTPAGE, + NEXTPAGE and PREVPAGE. + @param named the named action + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + @return a Launch action + + + Creates a Rendition action + @param file + @param fs + @param mimeType + @param ref + @return a Media Clip action + @throws IOException + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be placed as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + @return the JavaScript action + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be place as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @return the JavaScript action + + + Add a chained action. + @param na the next action + + + Creates a GoTo action to an internal page. + @param page the page to go. First page is 1 + @param dest the destination for the page + @param writer the writer for this action + @return a GoTo action + + + Creates a GoTo action to a named destination. + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToR action + + + Creates a GoToR action to a named destination. + @param filename the file name to go to + @param dest the destination name + @param isName if true sets the destination as a name, if false sets it as a String + @param newWindow open the document in a new window if true, if false the current document is replaced by the new document. + @return a GoToR action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToE action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param target a path to the target document of this action + @param dest the destination inside the target document, can be of type PdfDestination, PdfName, or PdfString + @param newWindow if true, the destination document should be opened in a new window + @return a GoToE action + + + + A PdfAnnotation is a note that is associated with a page. + + @see PdfDictionary + + + flagvalue PDF 1.7 + + + attributevalue + + + Holds value of property used. + + + Holds value of property placeInPage. + + + Constructs a new PdfAnnotation of subtype text. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates a screen PdfAnnotation + @param writer + @param rect + @param clipTitle + @param fs + @param mimeType + @param playOnDisplay + @return a screen PdfAnnotation + @throws IOException + + + Creates a file attachment annotation. + @param writer the PdfWriter + @param rect the dimensions in the page of the annotation + @param contents the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + @return the annotation + + + Creates a file attachment annotation + @param writer + @param rect + @param contents + @param fs + @return the annotation + @throws IOException + + + Creates a polygon or -line annotation + @param writer the PdfWriter + @param rect the annotation position + @param contents the textual content of the annotation + @param polygon if true, the we're creating a polygon annotation, if false, a polyline + @param vertices an array with the vertices of the polygon or -line + @since 5.0.2 + + + Sets the annotation's highlighting mode. The values can be + HIGHLIGHT_NONE, HIGHLIGHT_INVERT, + HIGHLIGHT_OUTLINE and HIGHLIGHT_PUSH; + @param highlight the annotation's highlighting mode + + + Getter for property form. + @return Value of property form. + + + Getter for property annotation. + @return Value of property annotation. + + + Getter for property placeInPage. + @return Value of property placeInPage. + + + Sets the layer this annotation belongs to. + @param layer the layer this annotation belongs to + + + Sets the name of the annotation. + With this name the annotation can be identified among + all the annotations on a page (it has to be unique). + + + This class processes links from imported pages so that they may be active. The following example code reads a group + of files and places them all on the output PDF, four pages in a single page, keeping the links active. +
    +            String[] files = new String[] {"input1.pdf", "input2.pdf"};
    +            String outputFile = "output.pdf";
    +            int firstPage=1;
    +            Document document = new Document();
    +            PdfWriter writer = PdfWriter.GetInstance(document, new FileOutputStream(outputFile));
    +            document.SetPageSize(PageSize.A4);
    +            float W = PageSize.A4.GetWidth() / 2;
    +            float H = PageSize.A4.GetHeight() / 2;
    +            document.Open();
    +            PdfContentByte cb = writer.GetDirectContent();
    +            for (int i = 0; i < files.length; i++) {
    +               PdfReader currentReader = new PdfReader(files[i]);
    +               currentReader.ConsolidateNamedDestinations();
    +               for (int page = 1; page <= currentReader.GetNumberOfPages(); page++) {
    +                   PdfImportedPage importedPage = writer.GetImportedPage(currentReader, page);
    +                   float a = 0.5f;
    +                   float e = (page % 2 == 0) ? W : 0;
    +                   float f = (page % 4 == 1 || page % 4 == 2) ? H : 0;
    +                   ArrayList links = currentReader.GetLinks(page);
    +                   cb.AddTemplate(importedPage, a, 0, 0, a, e, f);
    +                   for (int j = 0; j < links.Size(); j++) {
    +                       PdfAnnotation.PdfImportedLink link = (PdfAnnotation.PdfImportedLink)links.Get(j);
    +                       if (link.IsInternal()) {
    +                           int dPage = link.GetDestinationPage();
    +                           int newDestPage = (dPage-1)/4 + firstPage;
    +                           float ee = (dPage % 2 == 0) ? W : 0;
    +                           float ff = (dPage % 4 == 1 || dPage % 4 == 2) ? H : 0;
    +                           link.SetDestinationPage(newDestPage);
    +                           link.TransformDestination(a, 0, 0, a, ee, ff);
    +                       }
    +                       link.TransformRect(a, 0, 0, a, e, f);
    +                       writer.AddAnnotation(link.CreateAnnotation(writer));
    +                   }
    +                   if (page % 4 == 0)
    +                   document.NewPage();
    +               }
    +               if (i < files.length - 1)
    +               document.NewPage();
    +               firstPage += (currentReader.GetNumberOfPages()+3)/4;
    +            }
    +            document.Close();
    +            
    +
    + + Returns a String representation of the link. + @return a String representation of the imported link + @since 2.1.6 + + + Implements the appearance stream to be used with form fields.. + + + Creates a PdfAppearance. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + + this is the actual array of PdfObjects + + + Constructs an empty PdfArray-object. + + + Constructs an PdfArray-object, containing 1 PdfObject. + + @param object a PdfObject that has to be added to the array + + + Constructs a PdfArray with the elements of an ArrayList. + Throws a ClassCastException if the ArrayList contains something + that isn't a PdfObject. + @param l an ArrayList with PdfObjects + @since 2.1.3 + + + Constructs an PdfArray-object, containing all the PdfObjects in a given PdfArray. + + @param array a PdfArray that has to be added to the array + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + Overwrites a specified location of the array. + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Returns the PdfObject with the specified index. + + A possible indirect references is not resolved, so the returned + PdfObject may be either a direct object or an indirect + reference, depending on how the object is stored in the + PdfArray. + + @param idx The index of the PdfObject to be returned + @return A PdfObject + + + Overwrites a specified location of the array, returning the previous + value + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Remove the element at the specified position from the array. + + Shifts any subsequent elements to the left (subtracts one from their + indices). + + @param idx The index of the element to be removed. + @throws IndexOutOfBoundsException the specified position doesn't exist + @since 2.1.5 + + + Returns an ArrayList containing PdfObjects. + + @return an ArrayList + + + Returns the number of entries in the array. + + @return the size of the ArrayList + + + Returns true if the array is empty. + + @return true if the array is empty + @since 2.1.5 + + + Adds a PdfObject to the PdfArray. + + @param object PdfObject to add + @return true + + + Inserts the specified element at the specified position. + + Shifts the element currently at that position (if any) and + any subsequent elements to the right (adds one to their indices). + + @param index The index at which the specified element is to be inserted + @param element The element to be inserted + @throws IndexOutOfBoundsException if the specified index is larger than the + last position currently set, plus 1. + @since 2.1.5 + + + Inserts a PdfObject at the beginning of the + PdfArray. + + The PdfObject will be the first element, any other elements + will be shifted to the right (adds one to their indices). + + @param object The PdfObject to add + + + Checks if the PdfArray already contains a certain PdfObject. + + @param object PdfObject to check + @return true + + + + @return this PdfArray's values as a long[] + @since 5.3.5 + + + + @return this PdfArray's values as a double[] + @since 5.5.6 + + + + A possible value of PdfBoolean + + + A possible value of PdfBoolean + + + the bool value of this object + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject, represented as a string + + @throws BadPdfFormatException thrown if the value isn't 'true' or 'false' + + + Returns the primitive value of the PdfBoolean-object. + + @return the actual value of the object. + + + A PdfBorderArray defines the border of a PdfAnnotation. + + @see PdfArray + + + Constructs a new PdfBorderArray. + + + Constructs a new PdfBorderArray. + + + A PdfBorderDictionary define the appearance of a Border (Annotations). + + @see PdfDictionary + + + Constructs a PdfBorderDictionary. + + + + The allowed attributes in variable attributes. + + + The allowed attributes in variable noStroke. + + + The value of this object. + + + The encoding. + + + The font for this PdfChunk. + + + + + true if the chunk split was cause by a newline. + + + The image in this PdfChunk, if it has one + + + The offset in the x direction for the image + + + The offset in the y direction for the image + + + Indicates if the height and offset of the Image has to be taken into account + + + The leading that can overrule the existing leading. + + + Constructs a PdfChunk-object. + + @param string the content of the PdfChunk-object + @param font the PdfFont + @param attributes the metrics attributes + @param noStroke the non metric attributes + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + @param tabSettings the Phrase tab settings + + + + + + Returns the font of this Chunk. + + @return a PdfFont + + + Returns the color of this Chunk. + + @return a BaseColor + + + Returns the width of this PdfChunk. + + @return a width + + + Checks if the PdfChunk split was caused by a newline. + @return true if the PdfChunk split was caused by a newline. + + + Gets the width of the PdfChunk taking into account the + extra character and word spacing. + @param charSpacing the extra character spacing + @param wordSpacing the extra word spacing + @return the calculated width + + + Gets the text displacement relatiev to the baseline. + @return a displacement in points + + + Trims the last space. + @return the width of the space trimmed, otherwise 0 + + + Gets an attribute. The search is made in attributes + and noStroke. + @param name the attribute key + @return the attribute value or null if not found + + + Checks if the attribute exists. + @param name the attribute key + @return true if the attribute exists + + + Checks if this PdfChunk needs some special metrics handling. + @return true if this PdfChunk needs some special metrics handling. + + + Checks if this PdfChunk is a Separator Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Checks if this PdfChunk is a horizontal Separator Chunk. + @return true if this chunk is a horizontal separator. + @since 2.1.2 + + + Checks if this PdfChunk is a tab Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Correction for the tab position based on the left starting position. + @param newValue the new value for the left X. + @since 2.1.2 + + + Checks if there is an image in the PdfChunk. + @return true if an image is present + + + Gets the image in the PdfChunk. + @return the image or null + + + Returns a scalePercentage in case the image needs to be scaled. + Sets a scale percentage in case the image needs to be scaled. + + + Gets the image offset in the x direction + @return the image offset in the x direction + + + Gets the image offset in the y direction + @return Gets the image offset in the y direction + + + sets the value. + + + Tells you if this string is in Chinese, Japanese, Korean or Identity-H. + + + Gets the encoding of this string. + + @return a string + + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + Constructs a new PdfColor. + + @param red a value between 0 and 255 + @param green a value between 0 and 255 + @param blue a value between 0 and 255 + + + PdfContentByte is an object containing the user positioned + text and graphic contents of a page. It knows how to apply the proper + font encoding. + + + This class keeps the graphic state of the current page + + + This is the font in use + + + This is the color in use + + + This is the font size in use + + + The x position of the text line matrix. + + + The y position of the text line matrix. + + + The current text leading. + + + The current horizontal scaling + + + The current character spacing + + + The current word spacing + + + The alignement is center + + + The alignement is left + + + The alignement is right + + + A possible line cap value + + + A possible line cap value + + + A possible line cap value + + + A possible line join value + + + A possible line join value + + + A possible line join value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + This is the actual content + + + This is the writer + + + This is the PdfDocument + + + This is the GraphicState in use + + + The list were we save/restore the layer depth + + + The list were we save/restore the state + + + The separator between commands. + + + Constructs a new PdfContentByte-object. + + @param wr the writer associated to this content + + + Returns the string representation of this PdfContentByte-object. + + @return a string + + + [SUP-1395] If set, prevents iText from marking content and creating structure tags for items added to this content stream. + (By default, iText automatically marks content using BDC/EMC operators, and adds a structure tag for the new content + at the end of the page.) + + + Checks if the content needs to be tagged. + @return false if no tags need to be added + + + Gets the internal buffer. + @return the internal buffer + + + Returns the PDF representation of this PdfContentByte-object. + + @param writer the PdfWriter + @return a byte array with the representation + + + Adds the content of another PdfContent-object to this object. + + @param other another PdfByteContent-object + + + Gets the x position of the text line matrix. + + @return the x position of the text line matrix + + + Gets the y position of the text line matrix. + + @return the y position of the text line matrix + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current word spacing. + + @return the current word spacing + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current text leading. + + @return the current text leading + + + + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + + + + + + + + + + + + + + Modify the current clipping path by intersecting it with the current path, using the + nonzero winding number rule to determine which regions lie inside the clipping + path. + + + Modify the current clipping path by intersecting it with the current path, using the + even-odd rule to determine which regions lie inside the clipping path. + + + Changes the currentgray tint for filling paths (device dependent colors!). +

    + Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for filling paths.

    + + @param gray a value between 0 (black) and 1 (white) +
    + + Changes the current gray tint for filling paths to black. + + + Changes the currentgray tint for stroking paths (device dependent colors!). +

    + Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for stroking paths.

    + + @param gray a value between 0 (black) and 1 (white) +
    + + Changes the current gray tint for stroking paths to black. + + + Helper to validate and write the RGB color components + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

    + Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

    +

    + Following the PDF manual, each operand must be a number between 0 (minimum intensity) and + 1 (maximum intensity).

    + + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 +
    + + Changes the current color for filling paths to black. + + + + Changes the current color for stroking paths to black. + + + + Helper to validate and write the CMYK color components. + + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

    + Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

    +

    + Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink).

    + + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 +
    + + Changes the current color for filling paths to black. + + + + + Changes the current color for stroking paths to black. + + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a variable width border to the current path. + Only use if {@link com.lowagie.text.Rectangle#isUseVariableBorders() Rectangle.isUseVariableBorders} + = true. + @param rect a Rectangle + + + Adds a border (complete or partially) to the current path.. + + @param rectangle a Rectangle + + + Closes the current subpath by appending a straight line segment from the current point + to the starting point of the subpath. + + + Ends the path without filling or stroking it. + + + Strokes the path. + + + Closes the path and strokes it. + + + Fills the path, using the non-zero winding number rule to determine the region to fill. + + + Fills the path, using the even-odd rule to determine the region to fill. + + + Fills the path using the non-zero winding number rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it. + + + Fills the path, using the even-odd rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it. + + + Adds an Image to the page. The Image must have + absolute positioning. + @param image the Image object + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The Image must have + absolute positioning. The image can be placed inline. + @param image the Image object + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @param isMCBlockOpened true not to open MCBlock, false otherwise + @throws DocumentException on error + + + Makes this PdfContentByte empty. + Calls reset( true ) + + + Makes this PdfContentByte empty. + @param validateContent will call sanityCheck() if true. + @since 2.1.6 + + + Starts the writing of text. + @param restoreTM indicates if to restore text matrix of the previous text block. + + + Starts the writing of text. + + + Ends the writing of text and makes the current font invalid. + + + Saves the graphic state. saveState and + restoreState must be balanced. + + + Restores the graphic state. saveState and + restoreState must be balanced. + + + Sets the character spacing parameter. + + @param charSpace a parameter + + + Sets the word spacing parameter. + + @param wordSpace a parameter + + + Sets the horizontal scaling parameter. + + @param scale a parameter + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + Sets the text rendering parameter. + + @param rendering a parameter + + + Sets the text rise parameter. +

    + This allows to write text in subscript or basescript mode.

    + + @param rise a parameter +
    + + Sets the text rise parameter. +

    + This allows to write text in subscript or basescript mode.

    + + @param rise a parameter +
    + + A helper to insert into the content stream the text + converted to bytes according to the font's encoding. + + @param text the text to write + + + Shows the text. + + @param text the text to write + + + Constructs a kern array for a text in a certain font + @param text the text + @param font the font + @return a PdfTextArray + + + Shows the text kerned. + + @param text the text to write + + + Moves to the next line and shows text. + + @param text the text to write + + + Moves to the next line and shows text string, using the given values of the character and word spacing parameters. + + @param wordSpacing a parameter + @param charSpacing a parameter + @param text the text to write + + + Changes the text matrix. +

    + Remark: this operation also initializes the current point position.

    + + @param a operand 1,1 in the matrix + @param b operand 1,2 in the matrix + @param c operand 2,1 in the matrix + @param d operand 2,2 in the matrix + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
    + + + + Changes the text matrix. The first four parameters are {1,0,0,1}. +

    + Remark: this operation also initializes the current point position.

    + + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
    + + Moves to the start of the next line, offset from the start of the current line. + + @param x x-coordinate of the new current point + @param y y-coordinate of the new current point + + + Moves to the start of the next line, offset from the start of the current line. +

    + As a side effect, this sets the leading parameter in the text state.

    + + @param x offset of the new current point + @param y y-coordinate of the new current point +
    + + Moves to the start of the next line. + + + Gets the size of this content. + + @return the size of the content + + + Adds a named outline to the document. + + @param outline the outline + @param name the name for the local destination + + + Gets the root outline. + + @return the root outline + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The additional spacing is not computed for the last character + of the string. + @param text the string to get width of + @param kerned the kerning option + @return the width + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The spacing for the last character is also computed. + It also takes into account kerning that can be specified within TJ operator (e.g. [(Hello) 123 (World)] TJ) + @param text the string to get width of + @param kerned the kerning option + @param kerning the kerning option from TJ array + @return the width + + + Shows text right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + Shows text kerned right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + @since 5.0.1 + + + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Create a new colored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @return the PdfPatternPainter where the pattern will be created + + + Create a new colored tiling pattern. Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Adds a PostScript XObject to this content. + + @param psobject the object + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Changes the current color for filling paths (device dependent colors!). +

    + Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

    +

    + This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

    +

    + Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink). This method however accepts only ints between 0x00 and 0xFF.

    + + @param cyan the intensity of cyan + @param magenta the intensity of magenta + @param yellow the intensity of yellow + @param black the intensity of black +
    + + Changes the current color for stroking paths (device dependent colors!). +

    + Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for stroking paths.

    +

    + This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

    + Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param cyan the intensity of red + @param magenta the intensity of green + @param yellow the intensity of blue + @param black the intensity of black +
    + + Changes the current color for filling paths (device dependent colors!). +

    + Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

    +

    + This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

    +

    + Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF.

    + + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
    + + Changes the current color for stroking paths (device dependent colors!). +

    + Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for stroking paths.

    +

    + This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

    + Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
    + + Sets the stroke color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the stroke color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the fill color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Outputs the color values to the content. + @param color The color + @param tint the tint if it is a spot color, ignored otherwise + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Paints using a shading object. + @param shading the shading object + + + Paints using a shading pattern. + @param shading the shading pattern + + + Sets the shading fill pattern. + @param shading the shading pattern + + + Sets the shading stroke pattern + @param shading the shading pattern + + + Check if we have a valid PdfWriter. + + + + Show an array of text. + @param text array of text + + + Gets the PdfWriter in use by this object. + @return the PdfWriter in use by this object + + + Gets the PdfDocument in use by this object. + @return the PdfDocument in use by this object + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + The local destination to where a local goto with the same + name will jump. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already exists + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Outputs a string directly to the content. + @param s the string + + + Outputs a char directly to the content. + @param c the char + + + Outputs a float directly to the content. + @param n the float + + + Throws an error if it is a pattern. + @param t the object to check + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a button. + + + Draws a button. + + + Sets the graphic state + @param gstate the graphic state + + + + Ends a layer controled graphic block. It will end the most recent open block. + + + Sets the default colorspace. + @param name the name of the colorspace. It can be PdfName.DEFAULTGRAY, PdfName.DEFAULTRGB + or PdfName.DEFAULTCMYK + @param obj the colorspace. A null or PdfNull removes any colorspace with the same name + + + Concatenates a transformation to the current transformation + matrix. + @param af the transformation + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Ends a marked content sequence + + + Begins a marked content sequence. If property is null the mark will be of the type + BMC otherwise it will be BDC. + @param tag the tag + @param property the property + @param inline true to include the property in the content or false + to include the property in the resource dictionary with the possibility of reusing + + + This is just a shorthand to beginMarkedContentSequence(tag, null, false). + @param tag the tag + + + Checks for any dangling state: Mismatched save/restore state, begin/end text, + begin/end layer, or begin/end marked content sequence. + If found, this function will throw. This function is called automatically + during a Reset() (from Document.NewPage() for example), and before writing + itself out in ToPdf(). + One possible cause: not calling myPdfGraphics2D.Dispose() will leave dangling + SaveState() calls. + @since 2.1.6 + @throws IllegalPdfSyntaxException (a runtime exception) + + + Parses the page or template content. + @author Paulo Soares + + + Commands have this type. + + + Holds value of property tokeniser. + + + Creates a new instance of PdfContentParser + @param tokeniser the tokeniser with the content + + + Parses a single command from the content. Each command is output as an array of arguments + having the command itself as the last element. The returned array will be empty if the + end of content was reached. + @param ls an ArrayList to use. It will be cleared before using. If it's + null will create a new ArrayList + @return the same ArrayList given as argument or a new one + @throws IOException on error + + + Gets the tokeniser. + @return the tokeniser. + + + Sets the tokeniser. + @param tokeniser the tokeniser + + + Reads a dictionary. The tokeniser must be positioned past the "<<" token. + @return the dictionary + @throws IOException on error + + + Reads an array. The tokeniser must be positioned past the "[" token. + @return an array + @throws IOException on error + + + Reads a pdf object. + @return the pdf object + @throws IOException on error + + + Reads the next token skipping over the comments. + @return true if a token was read, false if the end of content was reached + @throws IOException on error + + + PdfContents is a PdfStream containing the contents (text + graphics) of a PdfPage. + + + Constructs a PdfContents-object, containing text and general graphics. + + @param under the direct content that is under all others + @param content the graphics in a page + @param text the text in a page + @param secondContent the direct content that is over all others + @throws BadPdfFormatException on error + + + Make copies of PDF documents. Documents can be edited after reading and + before writing them out. + @author Mark Thompson + + + This class holds information about indirect references, since they are + renumbered by iText. + + + Holds value of property rotateContents. + + + Constructor + @param document + @param os outputstream + + + Setting page events isn't possible with Pdf(Smart)Copy. + Use the PageStamp class if you want to add content to copied pages. + @see com.itextpdf.text.pdf.PdfWriter#setPageEvent(com.itextpdf.text.pdf.PdfPageEvent) + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Grabs a page from the input document + @param reader the reader of the document + @param pageNumber which page to get + @return the page + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRStream to a PdfStream. The data part copies itself. + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PR-object to a Pdf-object + + + Translate a PR-object to a Pdf-object + + + convenience method. Given an importedpage, set our "globals" + + + convenience method. Given a reader, set our "globals" + + + Add an imported page to our output + @param iPage an imported page + @throws IOException, BadPdfFormatException + + + Adds a blank page. + @param rect The page dimension + @param rotation The rotation angle in degrees + @since 2.1.5 + @throws DocumentException + + + Copy document fields to a destination document. + @param reader a document where fields are copied from. + @throws DocumentException + @throws IOException + + + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Concatenates PDF documents including form fields. The rules for the form field + concatenation are the same as in Acrobat. All the documents are kept in memory unlike + PdfCopy. + @author Paulo Soares + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + @throws IOException on error + + + Creates a new instance. + @param os the output stream + @param pdfVersion the pdf version the output will have + @throws DocumentException on error + @throws IOException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as AddDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + + @author psoares + + + Sets a reference to "visited" in the copy process. + @param ref the reference that needs to be set to "visited" + @return true if the reference was set to visited + + + Checks if a reference has already been "visited" in the copy process. + @param ref the reference that needs to be checked + @return true if the reference was already visited + + + Checks if a reference refers to a page object. + @param ref the reference that needs to be checked + @return true is the reference refers to a page object. + + + Allows you to add one (or more) existing PDF document(s) to + create a new PDF and add the form of another PDF document to + this new PDF. + @since 2.1.5 + @deprecated since 5.5.2 + + + The class with the actual implementations. + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Copies the form fields of this PDFDocument onto the PDF-Document which was added + @param reader the PDF document + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as addDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + SimpleBookmark#. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + Allows you to add one (or more) existing PDF document(s) + and add the form(s) of (an)other PDF document(s). + @since 2.1.5 + @deprecated since 5.5.2 + + + This sets up the output document + @param os The Outputstream pointing to the output document + @throws DocumentException + + + This method feeds in the source document + @param reader The PDF reader containing the source document + @throws DocumentException + + + This merge fields is slightly different from the mergeFields method + of PdfCopyFields. + + + A PdfDashPattern defines a dash pattern as described in + the PDF Reference Manual version 1.3 p 325 (section 8.4.3). + + @see PdfArray + + + This is the length of a dash. + + + This is the length of a gap. + + + This is the phase. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + + Constructs a PdfDate-object. + + @param d the date that has to be turned into a PdfDate-object + + + Constructs a PdfDate-object, representing the current day and time. + + + Adds a number of leading zeros to a given string in order to get a string + of a certain length. + + @param i a given number + @param length the length of the resulting string + @return the resulting string + + + Gives the W3C format of the PdfDate. + @return a formatted date + + + Gives the W3C format of the PdfDate. + @param d the date in the format D:YYYYMMDDHHmmSSOHH'mm' + @return a formatted date + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + Is the indirect reference to a page already added? + + + + + + + Creates a PdfDestination based on a String. + Valid Strings are for instance the values returned by SimpleNamedDestination: + "Fit", "XYZ 36 806 0",... + @param dest a String notation of a destination. + @since iText 5.0 + + + Checks if an indirect reference to a page has been added. + + @return true or false + + + Adds the indirect reference of the destination page. + + @param page an indirect reference + @return true if the page reference was added + + + Beginning with BaseVersion 1.7, the extensions dictionary lets developers + designate that a given document contains extensions to PDF. The presence + of the extension dictionary in a document indicates that it may contain + developer-specific PDF properties that extend a particular base version + of the PDF specification. + The extensions dictionary enables developers to identify their own extensions + relative to a base version of PDF. Additionally, the convention identifies + extension levels relative to that base version. The intent of this dictionary + is to enable developers of PDF-producing applications to identify company-specific + specifications (such as this one) that PDF-consuming applications use to + interpret the extensions. + @since 2.1.6 + + + An instance of this class for Adobe 1.7 Extension level 3. + + + An instance of this class for ETSI 1.7 Extension level 2. + + + An instance of this class for ETSI 1.7 Extension level 5. + + + The prefix used in the Extensions dictionary added to the Catalog. + + + The base version. + + + The extension level within the baseversion. + + + Creates a PdfDeveloperExtension object. + @param prefix the prefix referring to the developer + @param baseversion the number of the base version + @param extensionLevel the extension level within the baseverion. + + + Gets the prefix name. + @return a PdfName + + + Gets the baseversion name. + @return a PdfName + + + Gets the extension level within the baseversion. + @return an integer + + + Generations the developer extension dictionary corresponding + with the prefix. + @return a PdfDictionary + + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is the type of this dictionary + + + This is the hashmap that contains all the values and keys of the dictionary + + + Constructs an empty PdfDictionary-object. + + + Constructs a PdfDictionary-object of a certain type. + + @param type a PdfName + + + Returns the PDF representation of this PdfDictionary. + + @return an array of byte + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null or PdfNull the key is deleted. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null it does nothing. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Copies all of the mappings from the specified PdfDictionary + to this PdfDictionary. + + These mappings will replace any mappings previously contained in this + PdfDictionary. + + @param dic The PdfDictionary with the mappings to be + copied over + + + Removes a PdfObject and its key from the PdfDictionary. + + @param key key of the entry (a PdfName) + + + Removes all the PdfObjects and its keys from the + PdfDictionary. + @since 5.0.2 + + + + Checks if a Dictionary is of the type FONT. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGE. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGES. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type CATALOG. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type OUTLINES. + + @return true if it is, false if it isn't. + + + Checks the type of the dictionary. + @param type the type you're looking for + @return true if the type of the dictionary corresponds with the type you're looking for + + + This function behaves the same as 'get', but will never return an indirect reference, + it will always look such references up and return the actual object. + @param key + @return null, or a non-indirect object + + + All the getAs functions will return either null, or the specified object type + This function will automatically look up indirect references. There's one obvious + exception, the one that will only return an indirect reference. All direct objects + come back as a null. + Mark A Storer (2/17/06) + @param key + @return the appropriate object in its final type, or null + + + + + Construct a PdfInfo-object. + + + Constructs a PdfInfo-object. + + @param author name of the author of the document + @param title title of the document + @param subject subject of the document + + + Adds the title of the document. + + @param title the title of the document + + + Adds the subject to the document. + + @param subject the subject of the document + + + Adds some keywords to the document. + + @param keywords the keywords of the document + + + Adds the name of the author to the document. + + @param author the name of the author + + + Adds the name of the creator to the document. + + @param creator the name of the creator + + + Adds the name of the producer to the document. + + + Adds the date of creation to the document. + + + + Constructs a PdfCatalog. + + @param pages an indirect reference to the root of the document's Pages tree. + @param writer the writer the catalog applies to + + + Adds the names of the named destinations to the catalog. + @param localDestinations the local destinations + @param documentJavaScript the javascript used in the document + @param writer the writer the catalog applies to + + + Sets the document level additional actions. + @param actions dictionary of actions + + + Constructs a new PDF document. + @throws DocumentException on error + + + The PdfWriter. + + + Adds a PdfWriter to the PdfDocument. + + @param writer the PdfWriter that writes everything + what is added to this document to an outputstream. + @throws DocumentException on error + + + This is the PdfContentByte object, containing the text. + + + This is the PdfContentByte object, containing the borders and other Graphics. + + + This represents the leading of the lines. + + + Getter for the current leading. + @return the current leading + @since 2.1.2 + + + This is the current height of the document. + + + Signals that onParagraph is valid (to avoid that a Chapter/Section title is treated as a Paragraph). + @since 2.1.2 + + + This represents the current alignment of the PDF Elements. + + + The current active PdfAction when processing an Anchor. + + + The current tab settings. + @return the current + @since 5.4.0 + + + Signals that the current leading has to be subtracted from a YMark object when positive + and save current leading + @since 2.1.2 + + + Save current @leading + + + Restore @leading from leadingStack + + + Getter and setter for the current tab stops. + @since 5.4.0 + + + Signals that an Element was added to the Document. + + @param element the element to add + @return true if the element was added, false if not. + @throws DocumentException when a document isn't open yet, or has been closed + + + + + Use this method to set the XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + @throws IOException + + + Makes a new page and sends it to the PdfWriter. + + @return true if new page was added + @throws DocumentException on error + + + Sets the pagesize. + + @param pageSize the new pagesize + @return true if the page size was set + + + margin in x direction starting from the left. Will be valid in the next page + + + margin in x direction starting from the right. Will be valid in the next page + + + margin in y direction starting from the top. Will be valid in the next page + + + margin in y direction starting from the bottom. Will be valid in the next page + + + Sets the margins. + + @param marginLeft the margin on the left + @param marginRight the margin on the right + @param marginTop the margin on the top + @param marginBottom the margin on the bottom + @return a bool + + + @see com.lowagie.text.DocListener#setMarginMirroring(bool) + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + Sets the page number. + + @param pageN the new page number + + + Sets the page number to 0. + + + Signals that OnOpenDocument should be called. + + + + The line that is currently being written. + + + The lines that are written until now. + + + Adds the current line to the list of lines and also adds an empty line. + @throws DocumentException on error + + + line.height() is usually the same as the leading + We should take leading into account if it is not the same as the line.height + + @return float combined height of the line + @since 5.5.1 + + + If the current line is not empty or null, it is added to the arraylist + of lines and a new empty line is added. + @throws DocumentException on error + + + Gets the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Holds the type of the last element, that has been added to the document. + + + Ensures that a new line has been started. + + + Writes all the lines to the text-object. + + @return the displacement that was caused + @throws DocumentException on error + + + The characters to be applied the hanging punctuation. + + + + This represents the current indentation of the PDF Elements on the left side. + + + Indentation to the left caused by a section. + + + This represents the current indentation of the PDF Elements on the left side. + + + This is the indentation caused by an image on the left. + + + This represents the current indentation of the PDF Elements on the right side. + + + Indentation to the right caused by a section. + + + This is the indentation caused by an image on the right. + + + This represents the current indentation of the PDF Elements on the top side. + + + This represents the current indentation of the PDF Elements on the bottom side. + + + Gets the indentation on the left side. + + @return a margin + + + Gets the indentation on the right side. + + @return a margin + + + Gets the indentation on the top side. + + @return a margin + + + Gets the indentation on the bottom side. + + @return a margin + + + Calls addSpacing(float, float, Font, boolean (false)). + + + Adds extra space. + + + some meta information about the Document. + + + + Gets the PdfCatalog-object. + + @param pages an indirect reference to this document pages + @return PdfCatalog + + + This is the root outline of the document. + + + This is the current PdfOutline in the hierarchy of outlines. + + + Adds a named outline to the document . + @param outline the outline to be added + @param name the name of this local destination + + + Gets the root outline. All the outlines must be created with a parent. + The first level is created with this outline. + @return the root outline + + + Contains the Viewer preferences of this PDF document. + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Stores the destinations keyed by name. Value is + Object[]{PdfAction,PdfIndirectReference,PdfDestintion}. + + + The local destination to where a local goto with the same + name will jump to. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already existed + + + Stores a list of document level JavaScript actions. + + + Sets the collection dictionary. + @param collection a dictionary of type PdfCollection + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + This is the size of the next page. + + + This is the size of the several boxes of the current Page. + + + This is the size of the several boxes that will be used in + the next page. + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + This checks if the page is empty. + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the PdfTransition object + + + This are the page resources of the current Page. + + + Holds value of property strictImageSequence. + + + Setter for property strictImageSequence. + @param strictImageSequence New value of property strictImageSequence. + + + + This is the position where the image ends. + + + Method added by Pelikan Stephan + @see com.lowagie.text.DocListener#clearTextWrap() + + + This is the image that could not be shown on a previous page. + + + Adds an image to the document. + @param image the Image to add + @throws PdfException on error + @throws DocumentException on error + + + Adds a PdfPTable to the document. + @param ptable the PdfPTable to be added to the document. + @throws DocumentException on error + + + @since 5.0.1 + + + Extends PdfStream and should be used to create Streams for Embedded Files + (file attachments). + @since 2.1.3 + + + Creates a Stream object using an InputStream and a PdfWriter object + @param in the InputStream that will be read to get the Stream object + @param writer the writer to which the stream will be added + + + Creates a Stream object using a byte array + @param fileStore the bytes for the stream + + + @see com.lowagie.text.pdf.PdfDictionary#toPdf(com.lowagie.text.pdf.PdfWriter, java.io.OutputStream) + + + Supports fast encodings for winansi and PDFDocEncoding. + + @author Paulo Soares + + + + + Checks is text only has PdfDocEncoding characters. + @param text the String to test + @return true if only PdfDocEncoding characters are present + + + Adds an extra encoding. + @param name the name of the encoding. The encoding recognition is case insensitive + @param enc the conversion class + + + + @author Paulo Soares + + + The encryption key for a particular object/generation + + + The encryption key length for a particular object/generation + + + The global encryption key + + + Work area to prepare the object/generation bytes + + + The message digest algorithm MD5 + + + The encryption key for the owner + + + The encryption key for the user + + + The public key security handler for certificate encryption + + + The generic key length. It may be 40 or 128. + + + Indicates if the encryption is only necessary for embedded files. + @since 2.1.3 + + + Indicates if only the embedded files have to be encrypted. + @return if true only the embedded files will be encrypted + @since 2.1.3 + + + + + + ownerKey, documentID must be setuped + + + + mkey must be setuped + + + + + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 algorithm (Revision 2 - 4). + + @param ownerPassword owner password of the encrypted document. + @return user password, or null if revision 5 (AES256) or greater of standard encryption handler was used. + + + This class takes any PDF and returns exactly the same but + encrypted. All the content, links, outlines, etc, are kept. + It is also possible to change the info dictionary. + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Give you a verbose analysis of the permissions. + @param permissions the permissions value of a PDF file + @return a String that explains the meaning of the permissions value + + + Tells you if printing is allowed. + @param permissions the permissions value of a PDF file + @return true if printing is allowed + + @since 2.0.7 + + + Tells you if modifying content is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying content is allowed + + @since 2.0.7 + + + Tells you if copying is allowed. + @param permissions the permissions value of a PDF file + @return true if copying is allowed + + @since 2.0.7 + + + Tells you if modifying annotations is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying annotations is allowed + + @since 2.0.7 + + + Tells you if filling in fields is allowed. + @param permissions the permissions value of a PDF file + @return true if filling in fields is allowed + + @since 2.0.7 + + + Tells you if repurposing for screenreaders is allowed. + @param permissions the permissions value of a PDF file + @return true if repurposing for screenreaders is allowed + + @since 2.0.7 + + + Tells you if document assembly is allowed. + @param permissions the permissions value of a PDF file + @return true if document assembly is allowed + + @since 2.0.7 + + + Tells you if degraded printing is allowed. + @param permissions the permissions value of a PDF file + @return true if degraded printing is allowed + + @since 2.0.7 + + + Signals that an unspecified problem while constructing a PDF document. + + @see BadPdfFormatException + + + Specifies a file or an URL. The file can be extern or embedded. + + @author Paulo Soares + + + Creates a new instance of PdfFileSpecification. The static methods are preferred. + + + Creates a file specification of type URL. + @param writer the PdfWriter + @param url the URL + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compressionLevel the compression level to be used for compressing the file + it takes precedence over filePath + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @param compressionLevel the level of compression + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification for an external file. + @param writer the PdfWriter + @param filePath the file path + @return the file specification + + + Gets the indirect reference to this file specification. + Multiple invocations will retrieve the same value. + @throws IOException on error + @return the indirect reference + + + Sets the file name (the key /F) string as an hex representation + to support multi byte file names. The name must have the slash and + backslash escaped according to the file specification rules + @param fileName the file name as a byte array + + + Adds the unicode file name (the key /UF). This entry was introduced + in PDF 1.7. The filename must have the slash and backslash escaped + according to the file specification rules. + @param filename the filename + @param unicode if true, the filename is UTF-16BE encoded; otherwise PDFDocEncoding is used; + + + Sets a flag that indicates whether an external file referenced by the file + specification is volatile. If the value is true, applications should never + cache a copy of the file. + @param volatile_file if true, the external file should not be cached + + + Adds a description for the file that is specified here. + @param description some text + @param unicode if true, the text is added as a unicode string + + + Adds the Collection item dictionary. + + + + the font metrics. + + + the size. + + + Compares this PdfFont with another + + @param object the other PdfFont + @return a value + + + Returns the size of this font. + + @return a size + + + Returns the approximative width of 1 character of this font. + + @return a width in Text Space + + + Returns the width of a certain character of this font. + + @param character a certain character + @return a width in Text Space + + + Implements form fields. + + @author Paulo Soares + + + Allows text fields to support rich text. + @since 5.0.6 + + + Holds value of property parent. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates new PdfFormField + + + Getter for property parent. + @return Value of property parent. + + + Sets the rich value for this field. + It is suggested that the regular value of this field be set to an + equivalent value. Rich text values are only supported since PDF 1.5, + and require that the FF_RV flag be set. See PDF Reference chapter + 12.7.3.4 for details. + @param rv HTML markup for the rich value of this field + @since 5.0.6 + + + PdfFormObject is a type of XObject containing a template-object. + + + This is a PdfNumber representing 0. + + + This is a PdfNumber representing 1. + + + This is the 1 - matrix. + + + Constructs a PdfFormXObject-object. + + @param template the template + @param compressionLevel the compression level for the stream + @since 2.1.3 (Replacing the existing constructor with param compressionLevel) + + + Implements PDF functions. + + @author Paulo Soares + + + Creates new PdfFunction + + + The graphic state dictionary. + + @author Paulo Soares + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + Sets the flag whether to apply overprint for stroking. + @param ov + + + Sets the flag whether to apply overprint for non stroking painting operations. + @param ov + + + Sets the flag whether to toggle knockout behavior for overprinted objects. + @param ov - accepts 0 or 1 + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for stroking operations in the transparent + imaging model. + @param n + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for nonstroking operations in the transparent + imaging model. + @param n + + + The alpha source flag specifying whether the current soft mask + and alpha constant are to be interpreted as shape values (true) + or opacity values (false). + @param v + + + Determines the behaviour of overlapping glyphs within a text object + in the transparent imaging model. + @param v + + + The current blend mode to be used in the transparent imaging model. + @param bm + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + A PdfICCBased defines a ColorSpace + + @see PdfStream + + + Creates an ICC stream. + @param profile an ICC profile + + + Creates an ICC stream. + + @param compressionLevel the compressionLevel + + @param profile an ICC profile + @since 2.1.3 (replacing the constructor without param compressionLevel) + + + PdfImage is a PdfStream containing an image-Dictionary and -stream. + + + This is the PdfName of the image. + + + Constructs a PdfImage-object. + + @param image the Image-object + @param name the PdfName for this image + @throws BadPdfFormatException on error + + + Returns the PdfName of the image. + + @return the name + + + Called when no resource name is provided in our constructor. This generates a + name that is required to be unique within a given resource dictionary. + @since 5.0.1 + + + Represents an imported page. + + @author Paulo Soares + + + True if the imported page has been copied to a writer. + @since iText 5.0.4 + + + Reads the content from this PdfImportedPage-object from a reader. + + @return self + + + + Always throws an error. This operation is not allowed. + @param image dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + @throws DocumentException dummy + + + Always throws an error. This operation is not allowed. + @param template dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + + + Always throws an error. This operation is not allowed. + @return dummy + + + Gets the stream representing this page. + + @param compressionLevel the compressionLevel + @return the stream representing this page + @since 2.1.3 (replacing the method without param compressionLevel) + + + Always throws an error. This operation is not allowed. + @param bf dummy + @param size dummy + + + Checks if the page has to be copied. + @return true if the page has to be copied. + @since iText 5.0.4 + + + Indicate that the resources of the imported page have been copied. + @since iText 5.0.4 + + + + The object number + + + the generation number + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param objecti the direct objecti + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param generation the generation number + @param objecti the direct objecti + + + Returns a PdfIndirectReference to this PdfIndirectObject. + + @return a PdfIndirectReference + + + Writes eficiently to a stream + + @param os the stream to write to + @throws IOException on write error + + + + the object number + + + the generation number + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + + + Returns the number of the object. + + @return a number. + + + Returns the generation of the object. + + @return a number. + + + An optional content group is a dictionary representing a collection of graphics + that can be made visible or invisible dynamically by users of viewer applications. + In iText they are referenced as layers. + + @author Paulo Soares + + + Holds value of property on. + + + Holds value of property onPanel. + + + Creates a title layer. A title layer is not really a layer but a collection of layers + under the same title heading. + @param title the title text + @param writer the PdfWriter + @return the title layer + + + Creates a new layer. + @param name the name of the layer + @param writer the writer + + + Adds a child layer. Nested layers can only have one parent. + @param child the child layer + + + Gets the parent layer. + @return the parent layer or null if the layer has no parent + + + Gets the children layers. + @return the children layers or null if the layer has no children + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Sets the name of this layer. + @param name the name of this layer + + + Gets the dictionary representing the layer. It just returns this. + @return the dictionary representing the layer + + + Gets the initial visibility of the layer. + @return the initial visibility of the layer + + + Used by the creating application to store application-specific + data associated with this optional content group. + @param creator a text string specifying the application that created the group + @param subtype a string defining the type of content controlled by the group. Suggested + values include but are not limited to Artwork, for graphic-design or publishing + applications, and Technical, for technical designs such as building plans or + schematics + + + Specifies the language of the content controlled by this + optional content group + @param lang a language string which specifies a language and possibly a locale + (for example, es-MX represents Mexican Spanish) + @param preferred used by viewer applications when there is a partial match but no exact + match between the system language and the language strings in all usage dictionaries + + + Specifies the recommended state for content in this + group when the document (or part of it) is saved by a viewer application to a format + that does not support optional content (for example, an earlier version of + PDF or a raster image format). + @param export the export state + + + Specifies a range of magnifications at which the content + in this optional content group is best viewed. + @param min the minimum recommended magnification factors at which the group + should be ON. A negative value will set the default to 0 + @param max the maximum recommended magnification factor at which the group + should be ON. A negative value will set the largest possible magnification supported by the + viewer application + + + Specifies that the content in this group is intended for + use in printing + @param subtype a name specifying the kind of content controlled by the group; + for example, Trapping, PrintersMarks and Watermark + @param printstate indicates that the group should be + set to that state when the document is printed from a viewer application + + + Indicates that the group should be set to that state when the + document is opened in a viewer application. + @param view the view state + + + Indicates that the group contains a pagination artifact. + @param pe one of the following names: "HF" (Header Footer), + "FG" (Foreground), "BG" (Background), or "L" (Logo). + @since 5.0.2 + + + One of more users for whom this optional content group is primarily intended. + @param type should be "Ind" (Individual), "Ttl" (Title), or "Org" (Organization). + @param names one or more names + @since 5.0.2 + + + Gets the layer visibility in Acrobat's layer panel + @return the layer visibility in Acrobat's layer panel + Sets the visibility of the layer in Acrobat's layer panel. If false + the layer cannot be directly manipulated by the user. Note that any children layers will + also be absent from the panel. + @param onPanel the visibility of the layer in Acrobat's layer panel + + + Content typically belongs to a single optional content group, + and is visible when the group is ON and invisible when it is OFF. To express more + complex visibility policies, content should not declare itself to belong to an optional + content group directly, but rather to an optional content membership dictionary + represented by this class. + + @author Paulo Soares + + + Visible only if all of the entries are ON. + + + Visible if any of the entries are ON. + + + Visible if any of the entries are OFF. + + + Visible only if all of the entries are OFF. + + + Creates a new, empty, membership layer. + @param writer the writer + + + Gets the PdfIndirectReference that represents this membership layer. + @return the PdfIndirectReference that represents this layer + + + Adds a new member to the layer. + @param layer the new member to the layer + + + Gets the member layers. + @return the member layers + + + Sets the visibility policy for content belonging to this + membership dictionary. Possible values are ALLON, ANYON, ANYOFF and ALLOFF. + The default value is ANYON. + @param type the visibility policy + + + Sets the visibility expression for content belonging to this + membership dictionary. + @param ve A (nested) array of which the first value is /And, /Or, or /Not + followed by a series of indirect references to OCGs or other visibility + expressions. + @since 5.0.2 + + + Gets the dictionary representing the membership layer. It just returns this. + @return the dictionary representing the layer + + + PdfLine defines an array with PdfChunk-objects + that fit into 1 line. + + + The arraylist containing the chunks. + + + The left indentation of the line. + + + The width of the line. + + + The alignment of the line. + + + The heigth of the line. + + + true if the chunk splitting was caused by a newline. + + + The original width. + + + Constructs a new PdfLine-object. + + @param left the limit of the line at the left + @param right the limit of the line at the right + @param alignment the alignment of the line + @param height the height of the line + + + Creates a PdfLine object. + @param left the left offset + @param originalWidth the original width of the line + @param remainingWidth bigger than 0 if the line isn't completely filled + @param alignment the alignment of the line + @param newlineSplit was the line splitted (or does the paragraph end with this line) + @param line an array of PdfChunk objects + @param isRTL do you have to read the line from Right to Left? + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @param currentLeading new value for the height of the line + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Returns the number of chunks in the line. + + @return a value + + + Returns an iterator of PdfChunks. + + @return an Iterator + + + Returns the height of the line. + + @return a value + + + Returns the left indentation of the line taking the alignment of the line into account. + + @return a value + + + Checks if this line has to be justified. + + @return true if the alignment equals ALIGN_JUSTIFIED and there is some width left. + + + + Adds extra indentation to the left (for Paragraph.setFirstLineIndent). + + + Returns the width that is left, after a maximum of characters is added to the line. + + @return a value + + + Returns the number of space-characters in this line. + + @return a value + + + + Returns the listsymbol of this line. + + @return a PdfChunk if the line has a listsymbol; null otherwise + + + Return the indentation needed to show the listsymbol. + + @return a value + + + Get the string representation of what is in this line. + + @return a string + + + Checks if a newline caused the line split. + @return true if a newline caused the line split + + + Gets the index of the last PdfChunk with metric attributes + @return the last PdfChunk with metric attributes + + + Gets a PdfChunk by index. + @param idx the index + @return the PdfChunk or null if beyond the array + + + Gets the original width of the line. + @return the original width of the line + + + Gets the difference between the "normal" leading and the maximum + size (for instance when there are images in the chunk and the leading + has to be taken into account). + @return an extra leading for images + @since 2.1.5 + + + Gets the number of separators in the line. + Returns -1 if there's a tab in the line. + @return the number of separators in the line + @since 2.1.2 + + + Gets the maximum size of the ascender for all the fonts used + in this line. + @return maximum size of all the ascenders used in this line + + + Gets the biggest descender for all the fonts used + in this line. Note that this is a negative number. + @return maximum size of all the ascenders used in this line + + + a Literal + + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from ABSOLUTECALORIMETRIC + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + a name used in PDF structure + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 5.0.3 + + + A name + + + A name + + + A name + + + Use ALT to specify alternate texts in Tagged PDF. + For alternate ICC profiles, use {@link #ALTERNATE} + + + Use ALTERNATE only in ICC profiles. It specifies an alternative color + space, in case the primary one is not supported, for legacy purposes. + For various types of alternate texts in Tagged PDF, use {@link #ALT} + + + A name + @since 5.5.8 + + + A name + @since 5.4.5 + + + A name + @since 5.4.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.0.7 + + + A name + + + A name + + + A name + + + A name + @since 5.3.2 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 renamed from DEFAULTCRYPTFILER + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + @since 5.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 2.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + @since 5.4.0 + + + A name of an attribute. + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.5 + + + A name + @since 2.1.5 + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.4 + + + An entry specifying the natural language, and optionally locale. Use this + to specify the Language attribute on a Tagged Pdf element. + For the content usage dictionary, use {@link #LANGUAGE} + + + A dictionary type, strictly for use in the content usage dictionary. For + dictionary entries in Tagged Pdf, use {@link #LANG} + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.2 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + @since 2.1.6 + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 renamed from MAX + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 renamed from MIN + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name used with Document Structure + @since 2.1.5 + + + a name used with Document Structure + @since 2.1.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name used in defining Document Structure. + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.0.2 + + + A name + @since 5.0.2 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from RELATIVECALORIMETRIC + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + @since 5.4.4 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.3 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + T is very commonly used for various dictionary entries, including title + entries in a Tagged PDF element dictionary, and target dictionaries. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + @since 5.4.3 + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.4 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + Use Title for the document's top level title (optional), and for document + outline dictionaries, which can store bookmarks. + For all other uses of a title entry, including Tagged PDF, use {@link #T} + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.2.1 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.0.2 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an encoding + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name of an encoding + + + A name + @since 5.4.3 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name + + + map strings to all known static names + @since 2.1.6 + + + Use reflection to cache all the static public readonly names so + future PdfName additions don't have to be "added twice". + A bit less efficient (around 50ms spent here on a 2.2ghz machine), + but Much Less error prone. + @since 2.1.6 + + + Constructs a new PdfName. The name length will be checked. + @param name the new name + + + Constructs a new PdfName. + @param name the new name + @param lengthCheck if true check the lenght validity, if false the name can + have any length + + + + Indicates whether some other object is "equal to" this one. + + @param obj the reference object with which to compare. + @return true if this object is the same as the obj + argument; false otherwise. + + + Returns a hash code value for the object. This method is + supported for the benefit of hashtables such as those provided by + java.util.Hashtable. + + @return a hash code value for this object. + + + Encodes a plain name given in the unescaped form "AB CD" into "/AB#20CD". + + @param name the name to encode + @return the encoded name + @since 2.1.5 + + + Decodes an escaped name in the form "/AB#20CD" into "AB CD". + @param name the name to decode + @return the decoded name + + + Creates a name tree. + @author Paulo Soares + + + Creates a name tree. + @param items the item of the name tree. The key is a String + and the value is a PdfObject. Note that although the + keys are strings only the lower byte is used and no check is made for chars + with the same lower byte and different upper byte. This will generate a wrong + tree name. + @param writer the writer + @throws IOException on error + @return the dictionary with the name tree. This dictionary is the one + generally pointed to by the key /Dests, for example + + + + This is an instance of the PdfNull-object. + + + + + actual value of this PdfNumber, represented as a double + + + Constructs a PdfNumber-object. + + @param content value of the new PdfNumber-object + + + Constructs a new int PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new long PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Returns the primitive int value of this object. + + @return a value + + + Returns the primitive long value of this object. + + @return a value + + + Returns the primitive double value of this object. + + @return a value + + + Increments the value of the PdfNumber-object with 1. + + + Creates a number tree. + @author Paulo Soares + + + Creates a number tree. + @param items the item of the number tree. The key is an Integer + and the value is a PdfObject. + @param writer the writer + @throws IOException on error + @return the dictionary with the number tree. + + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + This is an empty string used for the PdfNull-object and for an empty PdfString-object. + + + This is the default encoding to be used for converting strings into bytes and vice versa. + The default encoding is PdfDocEcoding. + + + This is the encoding to be used to output text in Unicode. + + + the content of this PdfObject + + + the type of this PdfObject + + + Holds value of property indRef. + + + Hash code of the PdfObject instance. + Unfortunately, default C# behavior does not generate unique hash code. + + + Used for generating hash code. + + + Making hash code generation thread safe. + + + Constructs a PdfObject of a certain type without any content. + + @param type type of the new PdfObject + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param content content of the new PdfObject as a String. + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param bytes content of the new PdfObject as an array of byte. + + + Writes the PDF representation of this PdfObject as an array of bytes to the writer. + @param writer for backwards compatibility + @param os the outputstream to write the bytes to. + @throws IOException + + + Gets the presentation of this object in a byte array + @return a byte array + + + Can this object be in an object stream? + @return true if this object can be in an object stream. + + + Returns the String-representation of this PdfObject. + + @return a String + + + Returns the length of the actual content of the PdfObject. +

    + In some cases, namely for PdfString and PdfStream, + this method differs from the method pdfLength because pdfLength + returns the length of the PDF representation of the object, not of the actual content + as does the method length.

    +

    + Remark: the actual content of an object is in some cases identical to its representation. + The following statement is always true: Length() >= PdfLength().

    + + @return a length +
    + + Changes the content of this PdfObject. + + @param content the new content of this PdfObject + + + Returns the type of this PdfObject. + + @return a type + + + Checks if this PdfObject is of the type PdfNull. + + @return true or false + + + Checks if this PdfObject is of the type PdfBoolean. + + @return true or false + + + Checks if this PdfObject is of the type PdfNumber. + + @return true or false + + + Checks if this PdfObject is of the type PdfString. + + @return true or false + + + Checks if this PdfObject is of the type PdfName. + + @return true or false + + + Checks if this PdfObject is of the type PdfArray. + + @return true or false + + + Checks if this PdfObject is of the type PdfDictionary. + + @return true or false + + + Checks if this PdfObject is of the type PdfStream. + + @return true or false + + + Checks if this is an indirect object. + @return true if this is an indirect object + + + + the PdfIndirectReference of this object + + + value of the Count-key + + + value of the Parent-key + + + value of the Destination-key + + + The PdfAction for this outline. + + + Holds value of property tag. + + + Holds value of property open. + + + Holds value of property color. + + + Holds value of property style. + + + + + + + + + + + + + + + + Helper for the constructors. + @param parent the parent outline + @param title the title for this outline + @param open true if the children are visible + + + Gets the indirect reference of this PdfOutline. + + @return the PdfIndirectReference to this outline. + + + Gets the parent of this PdfOutline. + + @return the PdfOutline that is the parent of this outline. + + + Set the page of the PdfDestination-object. + + @param pageReference indirect reference to the page + @return true if this page was set as the PdfDestination-page. + + + Gets the destination for this outline. + @return the destination + + + returns the level of this outline. + + @return a level + + + Returns the PDF representation of this PdfOutline. + + @param writer the encryption information + @param os + @throws IOException + + + Getter for property tag. + @return Value of property tag. + + + Setter for property open. + @param open New value of property open. + + + + value of the Rotate key for a page in PORTRAIT + + + value of the Rotate key for a page in LANDSCAPE + + + value of the Rotate key for a page in INVERTEDPORTRAIT + + + value of the Rotate key for a page in SEASCAPE + + + value of the MediaBox key + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @param rotate a value for the Rotate key + @throws DocumentException + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @throws DocumentException + + + + Adds an indirect reference pointing to a PdfContents-object. + + @param contents an indirect reference to a PdfContents-object + + + Rotates the mediabox, but not the text in it. + + @return a PdfRectangle + + + Returns the MediaBox of this Page. + + @return a PdfRectangle + + + Helps the use of PdfPageEvent by implementing all the interface methods. + A class can extend PdfPageEventHelper and only implement the + needed methods. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + Page labels are used to identify each + page visually on the screen or in print. + @author Paulo Soares + + + Logical pages will have the form 1,2,3,... + + + Logical pages will have the form I,II,III,IV,... + + + Logical pages will have the form i,ii,iii,iv,... + + + Logical pages will have the form of uppercase letters + (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on) + + + Logical pages will have the form of uppercase letters + (a to z for the first 26 pages, aa to zz for the next 26, and so on) + + + No logical page numbers are generated but fixed text may + still exist + + + Dictionary values to set the logical page styles + + + The sequence of logical pages. Will contain at least a value for page 1 + + + Creates a new PdfPageLabel with a default logical page 1 + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + @param includeFirstPage If true, the page label will be added to the first page if it is page 1. + If the first page is not page 1 or this value is false, the value will not be added to the dictionary. + + + Adds or replaces a page label. The first logical page has the default + of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + + + Adds or replaces a page label. There is no text prefix and the first + logical page has the default of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + + + Adds or replaces a page label. + + + Removes a page label. The first page lagel can not be removed, only changed. + @param page the real page to remove + + + Gets the page label dictionary to insert into the document. + @return the page label dictionary + + + Retrieves the page labels from a PDF as an array of String objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a String array or null if no page labels are present + + + Retrieves the page labels from a PDF as an array of {@link PdfPageLabelFormat} objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a PdfPageLabelEntry array, containing an entry for each format change + or null if no page labels are present + + + Creates a page label format. + @param physicalPage the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param prefix the text to prefix the number. Can be null or empty + @param logicalPage the first logical page number + + + + Constructs a PdfPages-object. + + + A PdfPattern defines a ColorSpace + + @see PdfStream + + + Creates a PdfPattern object. + @param painter a pattern painter instance + + + Creates a PdfPattern object. + @param painter a pattern painter instance + @param compressionLevel the compressionLevel for the stream + @since 2.1.3 + + + Implements the pattern. + + + Creates a PdfPattern. + + + Creates new PdfPattern + + @param wr the PdfWriter + + + Gets the stream representing this pattern + @return the stream representing this pattern + + + Gets the stream representing this pattern + @param compressionLevel the compression level of the stream + @return the stream representing this pattern + @since 2.1.3 + + + Gets a duplicate of this PdfPatternPainter. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPatternPainter + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayFill(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayStroke(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFillF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStrokeF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFillF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStrokeF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#addImage(com.lowagie.text.Image, float, float, float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFill(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStroke(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFill(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStroke(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter) + + + A cell in a PdfPTable. + + + Holds value of property verticalAlignment. + + + Holds value of property paddingLeft. + + + Holds value of property paddingLeft. + + + Holds value of property paddingTop. + + + Holds value of property paddingBottom. + + + Holds value of property fixedHeight. + + + Fixed height of the cell. + + + Holds value of property noWrap. + + + Holds value of property table. + + + Holds value of property minimumHeight. + + + This field is used to cache the height which is calculated on getMaxHeight() method call; + this helps to avoid unnecessary recalculations on table drawing. + + + Holds value of property colspan. + + + Holds value of property rowspan. + @since 2.1.6 + + + Holds value of property image. + + + Holds value of property cellEvent. + + + Holds value of property useDescender. + + + Increases padding to include border if true + + + The text in the cell. + + + The rotation of the cell. Possible values are + 0, 90, 180 and 270. + + + Constructs an empty PdfPCell. + The default padding is 2. + + + Constructs a PdfPCell with a Phrase. + The default padding is 2. + @param phrase the text + + + Constructs a PdfPCell with an Image. + The default padding is 0. + @param image the Image + + + Constructs a PdfPCell with an Image. + The default padding is 0.25 for a border width of 0.5. + @param image the Image + @param fit true to fit the image to the cell + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + The default padding is 0. + @param table The PdfPTable + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + + @param table The PdfPTable + @param style The style to apply to the cell (you could use getDefaultCell()) + @since 2.1.0 + + + Constructs a deep copy of a PdfPCell. + @param cell the PdfPCell to duplicate + + + Adds an iText element to the cell. + @param element + + + Gets the Phrase from this cell. + @return the Phrase + + + Gets the horizontal alignment for the cell. + @return the horizontal alignment for the cell + + + Gets the vertical alignment for the cell. + @return the vertical alignment for the cell + + + Gets the effective left padding. This will include + the left border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingLeft. + + + @return Value of property paddingLeft. + + + Gets the effective right padding. This will include + the right border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingRight. + + + Getter for property paddingRight. + @return Value of property paddingRight. + + + Gets the effective top padding. This will include + the top border width if {@link #isUseBorderPadding()} is true. + @return effective value of property paddingTop. + + + Getter for property paddingTop. + @return Value of property paddingTop. + + + /** Gets the effective bottom padding. This will include + * the bottom border width if {@link #UseBorderPadding} is true. + * @return effective value of property paddingBottom. + + + Getter for property paddingBottom. + @return Value of property paddingBottom. + + + Sets the padding of the contents in the cell (space between content and border). + @param padding + + + Adjusts effective padding to include border widths. + @param use adjust effective padding if true + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the first paragraph line indent. + @return the indent + + + Gets the extra space between paragraphs. + @return the extra space between paragraphs + + + Getter for property fixedHeight. + @return Value of property fixedHeight. + + + Tells you whether the cell has a fixed height. + + @return true is a fixed height was set. + @since 2.1.5 + + + Gets the height which was calculated on last call of getMaxHeight(). + If cell's bBox and content wasn't changed this value is actual maxHeight of the cell. + @return max height which was calculated on last call of getMaxHeight(); if getMaxHeight() wasn't called the return value is 0 + + + Setter for property noWrap. + @param noWrap New value of property noWrap. + + + Getter for property table. + @return Value of property table. + + + Getter for property minimumHeight. + @return Value of property minimumHeight. + + + Tells you whether the cell has a minimum height. + + @return true if a minimum height was set. + @since 2.1.5 + + + Getter for property colspan. + @return Value of property colspan. + + + Getter for property rowspan. + @return Value of property rowspan. + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction of the text content in the cell + @return One of the following values: PdfWriter.RUN_DIRECTION_DEFAULT, PdfWriter.RUN_DIRECTION_NO_BIDI, PdfWriter.RUN_DIRECTION_LTR or PdfWriter.RUN_DIRECTION_RTL. + + + Getter for property image. + @return Value of property image. + + + + Gets the cell event for this cell. + @return the cell event + + + + Gets the arabic shaping options. + @return the arabic shaping options + + + Gets state of first line height based on max ascender + @return true if an ascender is to be used. + + + Getter for property useDescender. + @return Value of property useDescender. + + + + Gets the ColumnText with the content of the cell. + @return a columntext object + + + Returns the list of composite elements of the column. + @return a List object. + @since 2.1.1 + + + Sets the rotation of the cell. Possible values are + 0, 90, 180 and 270. + @param rotation the rotation of the cell + + + Returns the height of the cell. + @return the height of the cell + @since 3.0.0 + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + A row in a PdfPTable. + + @author Paulo Soares + + + True if the table may not break after this row. + + + the bottom limit (bottom right y) + + + the right limit + @since 2.1.5 + + + extra heights that needs to be added to a cell because of rowspans. + @since 2.1.6 + + + Constructs a new PdfPRow with the cells in the array that was passed + as a parameter. + + @param cells + + + Makes a copy of an existing row. + + @param row + + + Sets the widths of the columns in the row. + + @param widths + @return true if everything went right + + + Initializes the extra heights array. + @since 2.1.6 + + + Sets an extra height for a cell. + @param cell the index of the cell that needs an extra height + @param height the extra height + @since 2.1.6 + + + Calculates the heights of each cell in the row. + + @return the maximum height of the row. + + + Writes the border and background of one cell in the row. + + @param xPos The x-coordinate where the table starts on the canvas + @param yPos The y-coordinate where the table starts on the canvas + @param currentMaxHeight The height of the cell to be drawn. + @param cell + @param canvases + @since 2.1.6 extra parameter currentMaxHeight + + + @since 2.1.6 private is now protected + + + @since 2.1.6 private is now protected + + + @since 3.0.0 protected is now public static + + + * Writes a number of cells (not necessarily all cells). + * + * @param colStart The first column to be written. + * Remember that the column index starts with 0. + * @param colEnd The last column to be written. + * Remember that the column index starts with 0. + * If -1, all the columns to the end are written. + * @param xPos The x-coordinate where the table starts on the canvas + * @param yPos The y-coordinate where the table starts on the canvas + * @param reusable if set to false, the content in the cells is "consumed"; + * if true, you can reuse the cells, the row, the parent table as many times you want. + * @since 5.1.0 added the reusable parameter + + + Checks if the dimensions of the columns were calculated. + + @return true if the dimensions of the columns were calculated + + + Gets the maximum height of the row (i.e. of the 'highest' cell). + @return the maximum height of the row + + + Copies the content of a specific row in a table to this row. + Don't do this if the rows have a different number of cells. + @param table the table from which you want to copy a row + @param idx the index of the row that needs to be copied + @since 5.1.0 + + + Splits a row to newHeight. + The returned row is the remainder. It will return null if the newHeight + was so small that only an empty row would result. + + @param new_height the new height + @return the remainder row or null if the newHeight was so small that only + an empty row would result + + + Split rowspan of cells with rowspan on next page by inserting copies with the remaining rowspan + and reducing the previous rowspan appropriately, i.e. if a cell with rowspan 7 gets split after 3 rows + of that rowspan have been laid out, its column on the next page should start with an empty cell + having the same attributes and rowspan 7 - 3 = 4. + + @since iText 5.4.3 + + + Returns the array of cells in the row. + Please be extremely careful with this method. + Use the cells as read only objects. + + @return an array of cells + @since 2.1.1 + + + Checks if a cell in the row has a rowspan greater than 1. + @since 5.1.0 + + + Implements the PostScript XObject. + + + Creates a new instance of PdfPSXObject + + + Constructs a PSXObject + @param wr + + + Gets the stream representing this object. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + @throws IOException + + + Gets a duplicate of this PdfPSXObject. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPSXObject + + + This is a table that can be put at an absolute position but can also + be added to the document as the class Table. + In the last case when crossing pages the table always break at full rows; if a + row is bigger than the page it is dropped silently to avoid infinite loops. +

    + A PdfPTableEvent can be associated to the table to do custom drawing + when the table is rendered. + @author Paulo Soares + + + The index of the original PdfcontentByte. + + + The index of the duplicate PdfContentByte where the background will be drawn. + + + The index of the duplicate PdfContentByte where the border lines will be drawn. + + + The index of the duplicate PdfContentByte where the text will be drawn. + + + The current column index. + + @since 5.1.0 renamed from currentColIdx + + + Holds value of property headerRows. + + + Holds value of property widthPercentage. + + + Holds value of property horizontalAlignment. + + + Holds value of property skipFirstHeader. + + + Holds value of property skipLastFooter. + + @since 2.1.6 + + + Holds value of property lockedWidth. + + + Holds value of property splitRows. + + + The spacing before the table. + + + The spacing after the table. + + + Holds value of property extendLastRow. + + + Holds value of property headersInEvent. + + + Holds value of property splitLate. + + + Defines if the table should be kept + on one page if possible + + + Indicates if the PdfPTable is complete once added to the document. + @since iText 2.0.8 + + + Keeps track of the completeness of the current row. + + @since 2.1.6 + + + Constructs a PdfPTable with the relative column widths. + @param relativeWidths the relative column widths + + + Constructs a PdfPTable with numColumns columns. + @param numColumns the number of columns + + + Constructs a copy of a PdfPTable. + @param table the PdfPTable to be copied + + + Makes a shallow copy of a table (format without content). + @param table + @return a shallow copy of the table + + + Copies the format of the sourceTable without copying the content. + @param sourceTable + @since 2.1.6 private is now protected + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + @since 2.1.6 private is now protected + + + Sets the full width of the table from the absolute column width. + @param columnWidth the absolute width of each column + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the percentage width of the table from the absolute column width. Warning: Don't use this with setLockedWidth(true). These two settings don't mix. + @param columnWidth the absolute width of each column + @param pageSize the page size + @throws DocumentException + + + Gets the full width of the table. + @return the full width of the table + + + Calculates the heights of the table. + + @return the total height of the table. Note that it will be 0 if you didn't + specify the width of the table with SetTotalWidth(). + and made it public + + + Changes the number of columns. Any existing rows will be deleted. + + @param the new number of columns + + + Gets the default PdfPCell that will be used as + reference for all the addCell methods except + addCell(PdfPCell). + @return default PdfPCell + + + Adds a cell element. + + @param cell the cell element + + + When updating the row index, cells with rowspan should be taken into account. + This is what happens in this method. + + @since 2.1.6 + + + Added by timmo3. This will return the correct cell taking it's cellspan into account + + @param row the row index + @param col the column index + @return PdfPCell at the given row and position or null otherwise + + + Checks if there are rows above belonging to a rowspan. + @param currRow the current row to check + @param currCol the current column to check + @return true if there's a cell above that belongs to a rowspan + @since 2.1.6 + + + Adds a cell element. + @param text the text for the cell + + + Adds a nested table. + @param table the table to be added to the cell + + + Adds an Image as Cell. + @param image the Image to add to the table. + This image will fit in the cell + + + Adds a cell element. + @param phrase the Phrase to be added to the cell + + + + + Writes the selected rows and columns to the document. + This method does not clip the columns; this is only important + if there are columns with colspan at boundaries. + canvases is obtained from beginWritingRows(). + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvases an array of 4 PdfContentByte obtained from + beginWritingRows() + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @return the y coordinate position of the bottom of the last row + @see #beginWritingRows(com.itextpdf.text.pdf.PdfContentByte) + @since 5.1.0 added the reusable parameter + + + Writes the selected rows to the document. + + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coodinate + @param yPos the y write coodinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + + + + Writes the selected rows and columns to the document. + This method clips the columns; this is only important + if there are columns with colspan at boundaries. + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @since 5.1.0 added the reusable parameter + + + + Finishes writing the table. + @param canvases the array returned by beginWritingRows() + + + Gets the number of rows in this table. + @return the number of rows in this table + + + Gets the total height of the table. + @return the total height of the table + + + Gets the height of a particular row. + @param idx the row index (starts at 0) + @return the height of a particular row + + + Gets the height of a particular row. + + @param idx the row index (starts at 0) + @param firsttime is this the first time the row heigh is calculated? + @return the height of a particular row + @since 5.0.0 + + + Gets the maximum height of a cell in a particular row (will only be different + from getRowHeight is one of the cells in the row has a rowspan > 1). + + @param rowIndex the row index + @param cellIndex the cell index + @return the height of a particular row including rowspan + @since 2.1.6 + + + Checks if a cell in a row has a rowspan greater than 1. + + @since 5.1.0 + + + Makes sure the footers value is lower than the headers value. + + @since 5.0.1 + + + Gets the height of the rows that constitute the header as defined by + setHeaderRows(). + @return the height of the rows that constitute the header and footer + + + Gets the height of the rows that constitute the header as defined by + setFooterRows(). + @return the height of the rows that constitute the footer + @since 2.1.1 + + + Deletes a row from the table. + @param rowNumber the row to be deleted + @return true if the row was deleted + + + Deletes the last row in the table. + @return true if the last row was deleted + + + Removes all of the rows except headers + + + Returns the number of columns. + @return the number of columns. + @since 2.1.1 + + + Gets all the chunks in this element. + + @return an List + + + Gets the type of the text element. + + @return a type + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isContent() + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isNestable() + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets a row with a given index. + + @param idx + @return the row at position idx + + + Returns the index of the last completed row. + + @return the index of a row + + + Defines where the table may be broken (if necessary). + + @param breakPoints int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines which rows should not allow a page break (if possible). + + @param rows int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows that should not allow a page break (if possible). + + @param start int + @param end int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows (from the parameter to the last row) that should not allow a page break (if possible). + The equivalent of calling {@link #keepRowsTogether(int,int) keepRowsTogether(start, rows.size()}. + + @param start int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Gets an arraylist with all the rows in the table. + @return an arraylist + + + Gets an arraylist with a selection of rows. + @param start the first row in the selection + @param end the first row that isn't part of the selection + @return a selection of rows + @since 2.1.6 + + + Calculates the extra height needed in a row because of rowspans. + @param start the index of the start row (the one to adjust) + @param end the index of the end row on the page + @since 2.1.6 + + + Sets the table event for this table. + + @param event the table event for this table + + + Gets the absolute sizes of each column width. + @return he absolute sizes of each column width + + + Tells you if the last footer needs to be skipped + (for instance if the footer says "continued on the next page") + + @return Value of property skipLastFooter. + @since 2.1.6 + + + When set the last row on every page will be extended to fill + all the remaining space to the bottom boundary; except maybe the + row. + + @param extendLastRows true to extend the last row on each page; false otherwise + @param extendFinalRow false if you don't want to extend the row of the complete table + @since iText 5.0.0 + + + * Gets the value of the last row extension, taking into account + * if the row is reached or not. + * + * @return true if the last row will extend; + * false otherwise + * @since iText 5.0.0 + + + If true the table will be kept on one page if it fits, by forcing a + new page if it doesn't fit on the current page. The default is to + split the table over multiple pages. + + @param p_KeepTogether whether to try to keep the table on one page + + + Completes the current row with the default cell. An incomplete row will be dropped + but calling this method will make sure that it will be present in the table. + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Gets row index where cell overlapping (rowIdx, colIdx) starts + @param rowIdx + @param colIdx + @return row index + @since iText 5.4.3 + + + + @since iText 5.4.3 + + + Correct chosen last fitting row so that the content of all cells with open rowspans will fit on the page, + i.e. the cell content won't be split. + (Only to be used with splitLate == true) + + + + @since iText 5.4.3 + + + Determine which rows fit on the page, respecting isSplitLate(). + Note: sets max heights of the inspected rows as a side effect, + just like PdfPTable.getRowHeight(int, boolean) does. + Respect row.getMaxHeights() if it has been previously set (which might be independent of the height of + individual cells). + The last row written on the page will be chosen by the caller who might choose not + the calculated one but an earlier one (due to mayNotBreak settings on the rows). + The height of the chosen last row has to be corrected if splitLate == true + by calling FittingRows.correctLastRowChosen() by the caller to avoid splitting the content of + cells with open rowspans. + + @since iText 5.4.3 + + + + @author Aiken Sam (aikensam@ieee.org) + + + Reads a PDF document. + @author Paulo Soares + @author Kazuya Ujihara + + + The iText developers are not responsible if you decide to change the + value of this static parameter. + @since 5.0.2 + + + Handler which will be used for decompression of pdf streams. + + + Holds value of property appendable. + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param partialRead if true, the reader is opened in partial mode (PDF is parsed on demand), if false, the entire PDF is parsed into memory as the reader opens + @param ownerPassword the password or null if no password is required + @param certificate the certificate or null if no certificate is required + @param certificateKey the key or null if no certificate key is required + @param certificateKeyProvider the name of the key provider, or null if no key is required + @param closeSourceOnConstructorError if true, the byteSource will be closed if there is an error during construction of this reader + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param properties the properties which will be used to create the reader + + + Reads and parses a PDF document. + @param filename the file name of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param properties the properties which will be used to create the reader + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param certificate the certificate to read the document + @param certificateKey the private key of the certificate + @param certificateKeyProvider the security provider for certificateKey + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param properties the properties which will be used to create the reader + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a PDF document. + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a pdf document. Contrary to the other constructors only the xref is read + into memory. The reader is said to be working in "partial" mode as only parts of the pdf + are read as needed. + @param raf the document location + @param ownerPassword the password or null for no password + @throws IOException on error + + + Reads and parses a pdf document. + @param raf the document location + @param ownerPassword the password or null for no password + @param partial indicates if the reader needs to read the document only partially. See {@link PdfReader#PdfReader(RandomAccessFileOrArray, byte[])} + @throws IOException on error + + + Creates an independent duplicate. + @param reader the PdfReader to duplicate + + + Utility method that checks the provided byte source to see if it has junk bytes at the beginning. If junk bytes + are found, construct a tokeniser that ignores the junk. Otherwise, construct a tokeniser for the byte source as it is + @param byteSource the source to check + @return a tokeniser that is guaranteed to start at the PDF header + @throws IOException if there is a problem reading the byte source + + + Gets a new file instance of the original PDF + document. + @return a new file instance of the original PDF document + + + Gets the number of pages in the document. + @return the number of pages in the document + + + Returns the document's catalog. This dictionary is not a copy, + any changes will be reflected in the catalog. + @return the document's catalog + + + Returns the document's acroform, if it has one. + @return the document's acroform + + + Gets the page rotation. This value can be 0, 90, 180 or 270. + @param index the page number. The first page is 1 + @return the page rotation + + + Gets the page size, taking rotation into account. This + is a Rectangle with the value of the /MediaBox and the /Rotate key. + @param index the page number. The first page is 1 + @return a Rectangle + + + Gets the rotated page from a page dictionary. + @param page the page dictionary + @return the rotated page + + + Gets the page size without taking rotation into account. This + is the value of the /MediaBox key. + @param index the page number. The first page is 1 + @return the page size + + + Gets the page from a page dictionary + @param page the page dictionary + @return the page + + + Gets the crop box without taking rotation into account. This + is the value of the /CropBox key. The crop box is the part + of the document to be displayed or printed. It usually is the same + as the media box but may be smaller. If the page doesn't have a crop + box the page size will be returned. + @param index the page number. The first page is 1 + @return the crop box + + + Gets the box size. Allowed names are: "crop", "trim", "art", "bleed" and "media". + @param index the page number. The first page is 1 + @param boxName the box name + @return the box rectangle or null + + + Returns the content of the document information dictionary as a Hashtable + of String. + @return content of the document information dictionary + + + Normalizes a Rectangle so that llx and lly are smaller than urx and ury. + @param box the original rectangle + @return a normalized Rectangle + + + Checks if the PDF is a tagged PDF. + + + Parses the entire PDF + + + @throws IOException + + + @param obj + @return a PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. + @param obj the PdfObject to read + @return the resolved PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. If the reader was opened in partial mode the object will be released + to save memory. + @param obj the PdfObject to read + @param parent + @return a PdfObject + + + @param obj + @param parent + @return a PdfObject + + + @param idx + @return a PdfObject + + + @param idx + @return aPdfObject + + + + + + + + + @param obj + + + @param obj + @return an indirect reference + + + @return the percentage of the cross reference table that has been read + + + Eliminates the reference to the object freeing the memory used by it and clearing + the xref entry. + @param obj the object. If it's an indirect reference it will be eliminated + @return the object or the already erased dereferenced object + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + @param in + @param dicPar + @return a byte array + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + @param in the input data + @return the decoded data + + + Checks if the document had errors and was rebuilt. + @return true if rebuilt. + + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a Dictionary object + + + @param pageNum + + + + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @param file the location of the PDF document + @throws IOException on error + @return the content + + + Gets the content from the page dictionary. + @param page the page dictionary + @throws IOException on error + @return the content + @since 5.0.6 + + + Retrieve the given page's resource dictionary + @param pageNum 1-based page number from which to retrieve the resource dictionary + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Retrieve the given page's resource dictionary + @param pageDict the given page + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @throws IOException on error + @return the content + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @throws IOException on error + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @since 2.1.3 (the method already existed without param compressionLevel) + + + Decode a byte[] applying the filters specified in the provided dictionary using default filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @param filterHandlers the map used to look up a handler for each type of filter + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Get the content from a stream applying the required filters. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream applying the required filters. + @param stream the stream + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @throws IOException on error + @return the stream content + + + Eliminates shared streams if they exist. + + + Sets the tampered state. A tampered PdfReader cannot be reused in PdfStamper. + @param tampered the tampered state + + + Gets the XML metadata. + @throws IOException on error + @return the XML metadata + + + Gets the byte address of the last xref table. + @return the byte address of the last xref table + + + Gets the number of xref objects. + @return the number of xref objects + + + Gets the byte address of the %%EOF marker. + @return the byte address of the %%EOF marker + + + Gets the PDF version. Only the last version char is returned. For example + version 1.4 is returned as '4'. + @return the PDF version + + + Returns true if the PDF is encrypted. + @return true if the PDF is encrypted + + + Gets the encryption permissions. It can be used directly in + PdfWriter.SetEncryption(). + @return the encryption permissions + + + Returns true if the PDF has a 128 bit key encryption. + @return true if the PDF has a 128 bit key encryption + + + Gets the trailer dictionary + @return the trailer dictionary + + + Finds all the font subsets and changes the prefixes to some + random values. + @return the number of font subsets altered + + + Finds all the fonts not subset but embedded and marks them as subset. + @return the number of fonts altered + + + Gets all the named destinations as an Hashtable. The key is the name + and the value is the destinations array. + @return gets all the named destinations + + + Gets all the named destinations as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets all the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Dests key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Gets the named destinations from the /Dests key in the catalog as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Names key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Removes all the fields from the document. + + + Removes all the annotations and fields from the document. + + + Replaces remote named links with local destinations that have the same name. + @since 5.0 + + + Converts a remote named destination GoToR with a local named destination + if there's a corresponding name. + @param obj an annotation that needs to be screened for links to external named destinations. + @param names a map with names of local named destinations + @since iText 5.0 + + + Replaces all the local named links with the actual destinations. + + + Closes the reader, and any underlying stream or data source used to create the reader + + + Removes all the unreachable objects. + @return the number of indirect objects removed + + + Gets a read-only version of AcroFields. + @return a read-only version of AcroFields + + + Gets the global document JavaScript. + @param file the document file + @throws IOException on error + @return the global document JavaScript + + + Gets the global document JavaScript. + @throws IOException on error + @return the global document JavaScript + + + Selects the pages to keep in the document. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param ranges the comma separated ranges as described in {@link SequenceList} + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + @param removeUnused indicate if to remove unsed objects. @see removeUnusedObjects + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param key a key for a viewer preference + @param value a value for the viewer preference + @see PdfViewerPreferences#addViewerPreference + + + Returns a bitset representing the PageMode and PageLayout viewer preferences. + Doesn't return any information about the ViewerPreferences dictionary. + @return an int that contains the Viewer Preferences. + + + Getter for property newXrefType. + @return Value of property newXrefType. + + + Getter for property fileLength. + @return Value of property fileLength. + + + Getter for property hybridXref. + @return Value of property hybridXref. + + + Keeps track of all pages nodes to avoid circular references. + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a dictionary object + + + @param pageNum + @return an indirect reference + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + @param pageNum + + + + + + Checks if this PDF has usage rights enabled. + + @return true if usage rights are present; false otherwise + + + Removes any usage rights that this PDF may have. Only Adobe can grant usage rights + and any PDF modification with iText will invalidate them. Invalidated usage rights may + confuse Acrobat and it's advisabe to remove them altogether. + + + Gets the certification level for this document. The return values can be PdfSignatureAppearance.NOT_CERTIFIED, + PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED, + PdfSignatureAppearance.CERTIFIED_FORM_FILLING and + PdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS. +

    + No signature validation is made, use the methods availabe for that in AcroFields. +

    + @return gets the certification level for this document +
    + + Checks if the document was opened with the owner password so that the end application + can decide what level of access restrictions to apply. If the document is not encrypted + it will return true. + @return true if the document was opened with the owner password or if it's not encrypted, + false if the document was opened with the user password + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 encryption algorithm. + + @return user password, or null if not a standard encryption handler was used, + if standard encryption handler was used with AES256 encryption algorithm, + or if ownerPasswordUsed wasn't use to open the document. + + + Instance of PdfReader in each output document. + + @author Paulo Soares + + + Gets the content stream of a page as a PdfStream object. + @param pageNumber the page of which you want the stream + @param compressionLevel the compression level you want to apply to the stream + @return a PdfStream object + @since 2.1.3 (the method already existed without param compressionLevel) + + + + lower left x + + + lower left y + + + upper right x + + + upper right y + + + Constructs a PdfRectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + + @since rugPdf0.10 + + + Constructs a PdfRectangle-object starting from the origin (0, 0). + + @param urx upper right x + @param ury upper right y + + + Constructs a PdfRectangle-object with a Rectangle-object. + + @param rectangle a Rectangle + + + Returns the high level version of this PdfRectangle + @return this PdfRectangle translated to class Rectangle + + + Overrides the add-method in PdfArray in order to prevent the adding of extra object to the array. + + @param object PdfObject to add (will not be added here) + @return false + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param object Ignored. + @since 2.1.5 + + + Returns the lower left x-coordinate. + + @return the lower left x-coordinaat + + + Returns the upper right x-coordinate. + + @return the upper right x-coordinate + + + Returns the upper right y-coordinate. + + @return the upper right y-coordinate + + + Returns the lower left y-coordinate. + + @return the lower left y-coordinate + + + Returns the lower left x-coordinate, considering a given margin. + + @param margin a margin + @return the lower left x-coordinate + + + Returns the upper right x-coordinate, considering a given margin. + + @param margin a margin + @return the upper right x-coordinate + + + Returns the upper right y-coordinate, considering a given margin. + + @param margin a margin + @return the upper right y-coordinate + + + Returns the lower left y-coordinate, considering a given margin. + + @param margin a margin + @return the lower left y-coordinate + + + Returns the width of the rectangle. + + @return a width + + + Returns the height of the rectangle. + + @return a height + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + @return a PdfRectangle + + + A Rendition dictionary (pdf spec 1.5) + + + + Constructs a PDF ResourcesDictionary. + + + Implements the shading dictionary (or stream). + + @author Paulo Soares + + + Holds value of property bBox. + + + Holds value of property antiAlias. + + + Creates new PdfShading + + + Implements the shading pattern dictionary. + + @author Paulo Soares + + + Creates new PdfShadingPattern + + + Implements the signature dictionary. + + @author Paulo Soares + + + Creates new PdfSignature + + + Sets the signature creator name in the + {@link PdfSignatureBuildProperties} dictionary. + + @param name + + + Gets the {@link PdfSignatureBuildProperties} instance if it exists, if + not it adds a new one and returns this. + + @return {@link PdfSignatureBuildProperties} + + + Class that takes care of the cryptographic options + and appearances that form a signature. + + + Constructs a PdfSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Approval signature + + + Author signature, no changes allowed + + + Author signature, form filling allowed + + + Author signature, form filling and annotations allowed + + + The certification level + + + Sets the document type to certified instead of simply signed. + @param certificationLevel the values can be: NOT_CERTIFIED, CERTIFIED_NO_CHANGES_ALLOWED, + CERTIFIED_FORM_FILLING and CERTIFIED_FORM_FILLING_AND_ANNOTATIONS + + + The caption for the reason for signing. + + + The caption for the location of signing. + + + The reason for signing. + + + Holds value of property location. + + + Holds value of property signDate. + + + Gets and setsthe signing reason. + @return the signing reason + + + Sets the caption for signing reason. + @param reasonCaption the signing reason caption + + + Gets and sets the signing location. + @return the signing location + + + Sets the caption for the signing location. + @param locationCaption the signing location caption + + + Holds value of the application that creates the signature + + + Gets the signature creator. + @return the signature creator + + Sets the name of the application used to create the signature. + @param signatureCreator the name of the signature creating application + + + The contact name of the signer. + + + Gets the signing contact. + @return the signing contact + + + Gets the signature date. + @return the signature date + + + The file right before the signature is added (can be null). + + + The bytes of the file right before the signature is added (if raf is null) + + + Array containing the byte positions of the bytes that need to be hashed. + + + + @return the underlying source + @throws IOException + + + The signing certificate + + + Adds the appropriate developer extension. + + + The crypto dictionary + + + Gets the user made signature dictionary. This is the dictionary at the /V key. + @return the user made signature dictionary + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + An interface to retrieve the signature dictionary for modification. + + + Allows modification of the signature dictionary. + @param sig the signature dictionary + + + Holds value of property signatureEvent. + + + Sets the signature event to allow modification of the signature dictionary. + @param signatureEvent the signature event + + + The name of the field + + + Gets the field name. + @return the field name + + + Gets a new signature field name that + doesn't clash with any existing name. + @return a new signature field name + + + The page where the signature will appear. + + + Gets the page number of the field. + @return the page number of the field + + + The coordinates of the rectangle for a visible signature, + or a zero-width, zero-height rectangle for an invisible signature. + + + Gets the rectangle representing the signature dimensions. + @return the rectangle representing the signature dimensions. It may be null + or have zero width or height for invisible signatures + + + rectangle that represent the position and dimension of the signature in the page. + + + Gets the rectangle that represent the position and dimension of the signature in the page. + @return the rectangle that represent the position and dimension of the signature in the page + + + Gets the visibility status of the signature. + @return the visibility status of the signature + + + Sets the signature to be visible. It creates a new visible signature field. + @param pageRect the position and dimension of the field in the page + @param page the page to place the field. The fist page is 1 + @param fieldName the field name or null to generate automatically a new field name + + + Sets the signature to be visible. An empty signature field with the same name must already exist. + @param fieldName the existing empty signature field name + + + Signature rendering modes + @since 5.0.1 + + + The rendering mode is just the description. + + + The rendering mode is the name of the signer and the description. + + + The rendering mode is an image and the description. + + + The rendering mode is just an image. + + + The rendering mode chosen for visible signatures + + + Gets the rendering mode for this signature. + @return the rendering mode for this signature + @since 5.0.1 + + + The image that needs to be used for a visible signature + + + Sets the Image object to render when Render is set to RenderingMode.GRAPHIC + or RenderingMode.GRAPHIC_AND_DESCRIPTION. + @param signatureGraphic image rendered. If null the mode is defaulted + to RenderingMode.DESCRIPTION + + + Appearance compliant with the recommendations introduced in Acrobat 6? + + + Acrobat 6.0 and higher recommends that only layer n0 and n2 be present. + Use this method with value false if you want to ignore this recommendation. + @param acro6Layers if true only the layers n0 and n2 will be present + @deprecated Adobe no longer supports Adobe Acrobat / Reader versions older than 9 + + + Layers for a visible signature. + + + + Indicates if we need to reuse the existing appearance as layer 0. + + + Indicates that the existing appearances needs to be reused as layer 0. + + + An appearance that can be used for layer 1 (if acro6Layers is false). + + + A background image for the text in layer 2. + + + Gets the background image for the layer 2. + @return the background image for the layer 2 + + + the scaling to be applied to the background image.t + + + Sets the scaling to be applied to the background image. If it's zero the image + will fully fill the rectangle. If it's less than zero the image will fill the rectangle but + will keep the proportions. If it's greater than zero that scaling will be applied. + In any of the cases the image will always be centered. It's zero by default. + @param imageScale the scaling to be applied to the background image + + + The text that goes in Layer 2 of the signature appearance. + + + Sets the signature text identifying the signer. + @param text the signature text identifying the signer. If null or not set + a standard description will be used + + + Font for the text in Layer 2. + + + Sets the n2 and n4 layer font. If the font size is zero, auto-fit will be used. + @param layer2Font the n2 and n4 font + + + Run direction for the text in layers 2 and 4. + + + Sets the run direction in the n2 and n4 layer. + @param runDirection the run direction + + + The text that goes in Layer 4 of the appearance. + + + Sets the text identifying the signature status. Will be ignored if acro6Layers is true. + @param text the text identifying the signature status. If null or not set + the description "Signature Not Verified" will be used + + + Template containing all layers drawn on top of each other. + + + + extra space at the top. + + + margin for the content inside the signature rectangle. + + + + The PdfStamper that creates the signed PDF. + + + Gets the PdfStamper associated with this instance. + @return the PdfStamper associated with this instance + + + Sets the PdfStamper + @param stamper PdfStamper + + + The PdfStamperImp object corresponding with the stamper. + + + A byte buffer containing the bytes of the Stamper. + + + Getter for the byte buffer. + + + OutputStream for the bytes of the stamper. + + + Temporary file in case you don't want to sign in memory. + + + Gets the temporary file. + @return the temporary file or null is the document is created in memory + + + Name and content of keys that can only be added in the close() method. + + + Length of the output. + + + Indicates if the stamper has already been pre-closed. + + + + Signature field lock dictionary. + + + + + Signature field lock dictionary. + + + If a signature is created on an existing signature field, then its /Lock dictionary + takes the precedence (if it exists). + + + + Checks if the document is in the process of closing. + @return true if the document is in the process of closing, + false otherwise + + + + Adds keys to the signature dictionary that define + the certification level and the permissions. + This method is only used for Certifying signatures. + @param crypto the signature dictionary + + + Adds keys to the signature dictionary that define + the field permissions. + This method is only used for signatures that lock fields. + @param crypto the signature dictionary + + + + PdfSmartCopy has the same functionality as PdfCopy, + but when resources (such as fonts, images,...) are + encountered, a reference to these resources is saved + in a cache, so that they can be reused. + This requires more memory, but reduces the file size + of the resulting PDF document. + + + the cache with the streams and references. + + + Creates a PdfSmartCopy instance. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file if it wasn't available + in the cache yet. If it's in the cache, the reference to + the already used stream is returned. + + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + A PdfSpotColor defines a ColorSpace + + @see PdfDictionary + + + Constructs a new PdfSpotColor. + + @param name a string value + @param tint a tint value between 0 and 1 + @param altcs a altnative colorspace value + + + + The writer + + + + + + Gets the optional String map to add or change values in + the info dictionary. + @return the map or null + + An optional String map to add or change values in + the info dictionary. Entries with null + values delete the key in the original info dictionary + @param moreInfo additional entries to the info dictionary + + + + Replaces a page from this document with a page from other document. Only the content + is replaced not the fields and annotations. This method must be called before + getOverContent() or getUndercontent() are called for the same page. + @param r the PdfReader from where the new page will be imported + @param pageImported the page number of the imported page + @param pageReplaced the page to replace in this document + + + Inserts a blank page. All the pages above and including pageNumber will + be shifted up. If pageNumber is bigger than the total number of pages + the new page will be the last one. + @param pageNumber the page number position where the new page will be inserted + @param mediabox the size of the new page + + + Gets the signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + Gets the xml signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + + Gets a PdfContentByte to write under the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write under the page of + the original document + + + Gets a PdfContentByte to write over the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write over the page of + the original document + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the encryption was set too late + + + Gets a page from other PDF document. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the underlying PdfReader. + @return the underlying PdfReader + + + Gets the AcroFields object that allows to get and set field values + and to merge FDF forms. + @return the AcroFields object + + + Determines if the fields are flattened on close. The fields added with + {@link #addAnnotation(PdfAnnotation,int)} will never be flattened. + @param flat true to flatten the fields, false + to keep the fields + + + Determines if the FreeText annotations are flattened on close. + @param flat true to flatten the FreeText annotations, false + (the default) to keep the FreeText annotations as active content. + + + Flatten annotations with an appearance stream on close(). + + @param flat boolean to indicate whether iText should flatten annotations or not. + + + Adds an annotation of form field in a specific page. This page number + can be overridden with {@link PdfAnnotation#setPlaceInPage(int)}. + @param annot the annotation + @param page the page + + + Adds an empty signature. + @param name the name of the signature + @param page the page number + @param llx lower left x coordinate of the signature's position + @param lly lower left y coordinate of the signature's position + @param urx upper right x coordinate of the signature's position + @param ury upper right y coordinate of the signature's position + @return a signature form field + @since 2.1.4 + + + Adds the comments present in an FDF file. + @param fdf the FDF file + @throws IOException on error + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Sets the thumbnail image for a page. + @param image the image + @param page the page + @throws PdfException on error + @throws DocumentException on error + + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param js the JavaScript code + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param name the name for the JavaScript snippet in the name tree + @param js the JavaScript code + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fs the file specification + + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Sets the XMP metadata. + @param xmp + @see PdfWriter#setXmpMetadata(byte[]) + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. Be attentive!!! If you want set full compression , you should set immediately after creating PdfStamper, + before editing the document.It can be set once and it can't be unset. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + Integer(page number) -> PageStamp + + + Holds value of property rotateContents. + + + Creates new PdfStamperImp. + @param reader the read PDF + @param os the output destination + @param pdfVersion the new pdf version or '\0' to keep the same version as the original + document + @param append + @throws DocumentException on error + @throws IOException + + + @param reader + @param openFile + @throws IOException + + + @param reader + + + @param fdf + @throws IOException + + + If true, annotations with an appearance stream will be flattened. + + @since 5.5.3 + @param flatAnnotations boolean + + + @see com.lowagie.text.pdf.PdfWriter#getPageReference(int) + + + @see com.lowagie.text.pdf.PdfWriter#addAnnotation(com.lowagie.text.pdf.PdfAnnotation) + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfWriter#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + Always throws an UnsupportedOperationException. + @param actionType ignore + @param action ignore + @throws PdfException ignore + @see PdfStamper#setPageAction(PdfName, PdfAction, int) + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Always throws an UnsupportedOperationException. + @param seconds ignore + + + Always throws an UnsupportedOperationException. + @param transition ignore + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + Getter for property append. + @return Value of property append. + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(com.lowagie.text.pdf.PdfAction) + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(java.lang.String) + + + @see com.lowagie.text.pdf.PdfWriter#setThumbnail(com.lowagie.text.Image) + + + Reads the OCProperties dictionary from the catalog of the existing document + and fills the documentOCG, documentOCGorder and OCGRadioGroup variables in PdfWriter. + Note that the original OCProperties of the existing document can contain more information. + @since 2.1.2 + + + Recursive method to reconstruct the documentOCGorder variable in the writer. + @param parent a parent PdfLayer (can be null) + @param arr an array possibly containing children for the parent PdfLayer + @param ocgmap a Hashtable with indirect reference Strings as keys and PdfLayer objects as values. + @since 2.1.2 + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + is the stream compressed? + + + The level of compression. + @since 2.1.3 + + + Constructs a PdfStream-object. + + @param bytes content of the new PdfObject as an array of byte. + + + Creates an efficient stream. No temporary array is ever created. The InputStream + is totally consumed but is not closed. The general usage is: +
    +            InputStream in = ...;
    +            PdfStream stream = new PdfStream(in, writer);
    +            stream.FlateCompress();
    +            writer.AddToBody(stream);
    +            stream.WriteLength();
    +            in.Close();
    +            
    + @param inputStream the data to write to this stream + @param writer the PdfWriter for this stream +
    + + Constructs a PdfStream-object. + + + Writes the stream length to the PdfWriter. +

    + This method must be called and can only be called if the contructor {@link #PdfStream(InputStream,PdfWriter)} + is used to create the stream. +

    + @throws IOException on error + @see #PdfStream(InputStream,PdfWriter) +
    + + Compresses the stream. + + + Compresses the stream. + @param compressionLevel the compression level (0 = best speed, 9 = best compression, -1 is default) + @since 2.1.3 + + + Writes the data content to an Stream. + @param os the destination to write to + @throws IOException on error + + + @see com.lowagie.text.pdf.PdfObject#toString() + + + + The value of this object. + + + The encoding. + + + Constructs an empty PdfString-object. + + + Constructs a PdfString-object. + + @param value the content of the string + + + Constructs a PdfString-object. + + @param value the content of the string + @param encoding an encoding + + + Constructs a PdfString-object. + + @param bytes an array of byte + + + Returns the PDF representation of this PdfString. + + @return an array of bytes + + + Returns the string value of the PdfString-object. + + @return a string + + + Gets the encoding of this string. + + @return a string + + + This is a node in a document logical structure. It may contain a mark point or it may contain + other nodes. + @author Paulo Soares + + + Holds value of property kids. + + + Holds value of property reference. + + + Creates a new instance of PdfStructureElement. + @param parent the parent of this node + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Creates a new instance of PdfStructureElement. + @param root the structure tree root + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Gets the parent of this node. + @return the parent of this node + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + The structure tree root corresponds to the highest hierarchy level in a tagged PDF. + @author Paulo Soares + + + Holds value of property writer. + + + Creates a new instance of PdfStructureTreeRoot + + + Maps the user tags to the standard tags. The mapping will allow a standard application to make some sense of the tagged + document whatever the user tags may be. + @param used the user tag + @param standard the standard tag + + + Gets the writer. + @return the writer + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + Implements the form XObject. + + + The indirect reference to this template + + + The resources used by this template + + + The bounding box of this template + + + A dictionary with additional information + @since 5.1.0 + + + Creates a PdfTemplate. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + + Gets the bounding width of this template. + + @return width the bounding width + + + Gets the bounding heigth of this template. + + @return heigth the bounding height + + + Gets the layer this template belongs to. + @return the layer this template belongs to or null for no layer defined + + + Gets the indirect reference to this template. + + @return the indirect reference to this template + + + Constructs the resources used by this template. + + @return the resources used by this template + + + Gets the stream representing this template. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + + + Gets a duplicate of this PdfTemplate. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfTemplate + + + Sets/gets a dictionary with extra entries, for instance /Measure. + + @param additional + a PdfDictionary with additional information. + @since 5.1.0 + + + + Adds a PdfNumber to the PdfArray. + + @param number displacement of the string + + + Out Vertical Split + + + Out Horizontal Split + + + In Vertical Split + + + IN Horizontal Split + + + Vertical Blinds + + + Vertical Blinds + + + Inward Box + + + Outward Box + + + Left-Right Wipe + + + Right-Left Wipe + + + Bottom-Top Wipe + + + Top-Bottom Wipe + + + Dissolve + + + Left-Right Glitter + + + Top-Bottom Glitter + + + Diagonal Glitter + + + duration of the transition effect + + + type of the transition effect + + + Constructs a Transition. + + + + Constructs a Transition. + + @param type type of the transition effect + + + Constructs a Transition. + + @param type type of the transition effect + @param duration duration of the transition effect + + + The transparency group dictionary. + + @author Paulo Soares + + + Constructs a transparencyGroup. + + + Determining the initial backdrop against which its stack is composited. + @param isolated + + + Determining whether the objects within the stack are composited with one another or only with the group's backdrop. + @param knockout + + + An array specifying a visibility expression, used to compute visibility + of content based on a set of optional content groups. + @since 5.0.2 + + + A boolean operator. + + + A boolean operator. + + + A boolean operator. + + + Creates a visibility expression. + @param type should be AND, OR, or NOT + + + @see com.itextpdf.text.pdf.PdfArray#add(int, com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#addFirst(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(float[]) + + + @see com.itextpdf.text.pdf.PdfArray#add(int[]) + + + A DocWriter class for PDF. +

    + When this PdfWriter is added + to a certain PdfDocument, the PDF representation of every Element + added to this Document will be written to the outputstream.

    +
    + + The highest generation number possible. + @since iText 2.1.6 + + + + PdfCrossReference is an entry in the PDF Cross-Reference table. + + + Byte offset in the PDF file. + + + generation of the object. + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + @param generation generationnumber of the object + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + + + Returns the PDF representation of this PdfObject. + @param os + @throws IOException + + + Writes PDF syntax to the Stream + @param midSize + @param os + @throws IOException + + + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @see java.lang.Object#equals(java.lang.Object) + + + array containing the cross-reference table of the normal objects. + + + the current byteposition in the body. + + + Constructs a new PdfBody. + @param writer + + + + Gets a PdfIndirectReference for an object that will be created in the future. + @return a PdfIndirectReference + + + + Returns the offset of the Cross-Reference table. + + @return an offset + + + Returns the total number of objects contained in the CrossReferenceTable of this Body. + + @return a number of objects + + + Returns the CrossReferenceTable of the Body. + @param os + @param root + @param info + @param encryption + @param fileID + @param prevxref + @throws IOException + + + + Constructs a PDF-Trailer. + + @param size the number of entries in the PdfCrossReferenceTable + @param offset offset of the PdfCrossReferenceTable + @param root an indirect reference to the root of the PDF document + @param info an indirect reference to the info object of the PDF document + @param encryption + @param fileID + @param prevxref + + + Returns the PDF representation of this PdfObject. + @param writer + @param os + @throws IOException + + + Constructs a PdfWriter. + + + + Use this method to get an instance of the PdfWriter. + + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @return a new PdfWriter + + @throws DocumentException on error + + + Use this method to get an instance of the PdfWriter. + + @return a new PdfWriter + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @param listener A DocListener to pass to the PdfDocument. + @throws DocumentException on error + + + the pdfdocument object. + + + Gets the PdfDocument associated with this writer. + @return the PdfDocument + + + Use this method to get the info dictionary if you want to + change it directly (add keys and values to the info dictionary). + @return the info dictionary + + + Use this method to get the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Sets the initial leading for the PDF document. + This has to be done before the document is opened. + @param leading the initial leading + @since 2.1.6 + @throws DocumentException if you try setting the leading after the document was opened. + + + The direct content in this document. + + + The direct content under in this document. + + + Use this method to get the direct content for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Use this method to get the direct content under for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Resets all the direct contents to empty. + This happens when a new page is started. + + + body of the PDF document + + + Adds the local destinations to the body of the document. + @param dest the Hashtable containing the destinations + @throws IOException on error + + + Adds an object to the PDF body. + @param object + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Use this method for caching objects. + @param iobj @see PdfIndirectObject + + + Gets a PdfIndirectReference for an object that + will be created in the future. + @return the PdfIndirectReference + + + Returns the outputStreamCounter. + @return the outputStreamCounter + + + Holds value of property extraCatalog. + + + Sets extra keys to the catalog. + @return the catalog to change + + + The root of the page tree. + + + The PdfIndirectReference to the pages. + + + The current page number. + + + The value of the Tabs entry in the page dictionary. + @since 2.1.5 + + + Additional page dictionary entries. + @since 5.1.0 + + + Adds an additional entry for the page dictionary. + @since 5.1.0 + + + Gets the additional pageDictEntries. + @since 5.1.0 + + + Resets the additional pageDictEntries. + @since 5.1.0 + + + Use this method to make sure the page tree has a lineair structure + (every leave is attached directly to the root). + Use this method to allow page reordering with method reorderPages. + + + Use this method to reorder the pages in the document. + A null argument value only returns the number of pages to process. + It is advisable to issue a Document.NewPage() before using this method. + @return the total number of pages + @param order an array with the new page sequence. It must have the + same size as the number of pages. + @throws DocumentException if all the pages are not present in the array + + + Use this method to get a reference to a page existing or not. + If the page does not exist yet the reference will be created + in advance. If on closing the document, a page number greater + than the total number of pages was requested, an exception + is thrown. + @param page the page number. The first page is 1 + @return the reference to the page + + + Gets the pagenumber of this document. + This number can be different from the real pagenumber, + if you have (re)set the page number previously. + @return a page number + + + Sets the Viewport for the next page. + @param viewport an array consisting of Viewport dictionaries. + @since 5.1.0 + + + Sets the value for the Tabs entry in the page tree. + @param tabs Can be PdfName.R, PdfName.C or PdfName.S. + Since the Adobe Extensions Level 3, it can also be PdfName.A + or PdfName.W + @since 2.1.5 + + + + The PdfPageEvent for this document. + + + Gets the PdfPageEvent for this document or null + if none is set. + @return the PdfPageEvent for this document or null + if none is set + + + A number refering to the previous Cross-Reference Table. + + + The original file ID (if present). + + + + + Use this method to get the root outline + and construct bookmarks. + @return the root outline + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + Stores the version information for the header and the catalog. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Returns the version information. + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Use this method to add page labels + @param pageLabels the page labels + + + Adds named destinations in bulk. + Valid keys and values of the map can be found in the map + that is created by SimpleNamedDestination. + @param map a map with strings as keys for the names, + and structured strings as values for the destinations + @param page_offset number of pages that has to be added to + the page numbers in the destinations (useful if you + use this method in combination with PdfCopy). + @since iText 5.0 + + + Adds one named destination. + @param name the name for the destination + @param page the page number where you want to jump to + @param dest an explicit destination + @since iText 5.0 + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param js The JavaScript action + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param js The JavaScript action + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Use this method to adds a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + + + Adds a file attachment at the document level. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. + @param description the file description + @param fs the file specification + + + Adds a file attachment at the document level. + @param fs the file specification + + + action value + + + action value + + + action value + + + action value + + + action value + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + Sets the Collection dictionary. + @param collection a dictionary of type PdfCollection + + + signature value + + + signature value + + + Gets the AcroForm object. + @return the PdfAcroForm + + + Adds a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Adds the PdfAnnotation to the calculation order + array. + @param annot the PdfAnnotation to be added + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + XMP Metadata for the document. + + + Sets XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to set the XMP Metadata for each page. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to creates XMP Metadata based + on the metadata in the PdfDocument. + @since 5.4.4 just creates XmpWriter instance which will be serialized in close. + + + PDF/X level + + + PDF/X level + + + PDF/X level + + + Stores the PDF ISO conformance. + + + Sets the PDFX conformance level. Allowed values are PDFX1A2001 and PDFX32002. It + must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#isPdfX() + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + @param outputConditionIdentifier a value + @param outputCondition a value + @param registryName a value + @param info a value + @param destOutputProfile a value + @throws IOException on error + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + + Prefer the ICC_Profile-based version of this method. + @param outputConditionIdentifier a value + @param outputCondition a value, "PDFA/A" to force GTS_PDFA1, otherwise cued by pdfxConformance. + @param registryName a value + @param info a value + @param destOutputProfile a value + @since 1.x + + @throws IOException + + + Copies the output intent dictionary from other document to this one. + @param reader the other document + @param checkExistence true to just check for the existence of a valid output intent + dictionary, false to insert the dictionary if it exists + @throws IOException on error + @return true if the output intent dictionary exists, false + otherwise + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Mask to separate the encryption type from the encryption mode. + + + Add this to the mode to keep the metadata in clear text + + + Add this to the mode to keep encrypt only the embedded files. + @since 2.1.3 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_CONTENTS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_COPY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_ANNOTATIONS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_FILL_IN} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_SCREENREADERS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_ASSEMBLY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_DEGRADED_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_40} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_128} instead. Scheduled for removal at or after 2.2.0 + + + Contains the business logic for cryptography. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Holds value of property fullCompression. + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + The compression level of the content streams. + @since 2.1.3 + + + Sets the compression level to be used for streams written by this writer. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + The fonts of this document + + + The font number counter for the fonts in the document. + + + Adds a BaseFont to the document but not to the page resources. + It is used for templates. + @param bf the BaseFont to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The form XObjects in this document. The key is the xref and the value + is Object[]{PdfName, template}. + + + The name counter for the form XObjects name. + + + Adds a template to the document but not to the page resources. + @param template the template to add + @param forcedName the template name, rather than a generated one. Can be null + @return the PdfName for this template + + + Releases the memory used by a template by writing it to the output. The template + can still be added to any content but changes to the template itself won't have + any effect. + @param tp the template to release + @throws IOException on error + + + Gets a page from other PDF document. The page can be used as + any other PdfTemplate. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Returns the PdfReaderInstance associated with the specified reader. + Multiple calls with the same reader object will return the same + PdfReaderInstance. + @param reader the PDF reader that you want an instance for + @return the instance for the provided reader + @since 5.0.3 + + + Writes the reader to the document and frees the memory used by it. + The main use is when concatenating multiple documents to keep the + memory usage restricted to the current appending document. + @param reader the PdfReader to free + @throws IOException on error + + + Gets the current document size. This size only includes + the data already writen to the output stream, it does not + include templates or fonts. It is usefull if used with + freeReader() when concatenating many documents + and an idea of the current size is needed. + @return the approximate size without fonts or templates + + + The colors of this document + + + The color number counter for the colors in the document. + + + Adds a SpotColor to the document but not to the page resources. + @param spc the SpotColor to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The patterns of this document + + + The patten number counter for the colors in the document. + + + Mark this document for tagging. It must be called before open. + + + Check if the document is marked for tagging. + @return true if the document is marked for tagging + + + Fix structure of tagged document: remove unused objects, remove unused items from class map, + fix xref table due to removed objects. + + + Flushes merged AcroFields to document (if any). + + + Gets the structure tree root. If the document is not marked for tagging it will return null. + @return the structure tree root + + + Gets the Optional Content Properties Dictionary. Each call fills the dictionary with the current layer + state. It's advisable to only call this method right before close and do any modifications + at that time. + @return the Optional Content Properties Dictionary + + + Sets a collection of optional content groups whose states are intended to follow + a "radio button" paradigm. That is, the state of at most one optional + content group in the array should be ON at a time: if one group is turned + ON, all others must be turned OFF. + @param group the radio group + + + Use this method to lock an optional content group. + The state of a locked group cannot be changed through the user interface + of a viewer application. Producers can use this entry to prevent the visibility + of content that depends on these groups from being changed by users. + @param layer the layer that needs to be added to the array of locked OCGs + @since 2.1.2 + + + Gives the size of the media box. + @return a Rectangle + + + Sets the crop box. The crop box should not be rotated even if the + page is rotated. This change only takes effect in the next + page. + @param crop the crop box + + + Sets the page box sizes. Allowed names are: "crop", "trim", "art" and "bleed". + @param boxName the box size + @param size the size + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + Returns the intersection between the crop, trim art or bleed box and the parameter intersectingRectangle. + This method returns null when + - there is no intersection + - any of the above boxes are not defined + - the parameter intersectingRectangle is null + + @param boxName crop, trim, art, bleed + @param intersectingRectangle the rectangle that intersects the rectangle associated to the boxName + @return the intersection of the two rectangles + + + Use this method to make sure a page is added, + even if it's empty. If you use SetPageEmpty(false), + invoking NewPage() after a blank page will add a newPage. + SetPageEmpty(true) won't have any effect. + @param pageEmpty the state + + + action value + + + action value + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the the thumbnail image for the current page. + @param image the image + @throws PdfException on error + @throws DocumentException or error + + + A group attributes dictionary specifying the attributes + of the page�s page group for use in the transparent + imaging model + + + The default space-char ratio. + + + Disable the inter-character spacing. + + + The ratio between the extra word spacing and the extra character spacing. + Extra word spacing will grow ratio times more than extra character spacing. + + + Sets the ratio between the extra word spacing and the extra character spacing + when the text is fully justified. + Extra word spacing will grow spaceCharRatio times more than extra character spacing. + If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO then the extra character spacing + will be zero. + @param spaceCharRatio the ratio between the extra word spacing and the extra character spacing + + + Use the default run direction. + + + Do not use bidirectional reordering. + + + Use bidirectional reordering with left-to-right + preferential run direction. + + + Use bidirectional reordering with right-to-left + preferential run direction. + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + A UserUnit is a value that defines the default user space unit. + The minimum UserUnit is 1 (1 unit = 1/72 inch). + The maximum UserUnit is 75,000. + Remark that this userunit only works starting with PDF1.6! + + + Gets the default colorspaces. + @return the default colorspaces + + + + Sets the image sequence to follow the text in strict order. + @param strictImageSequence new value of property strictImageSequence + + + + Clears text wrapping around images (if applicable). + Method suggested by Pelikan Stephan + @throws DocumentException + + + Dictionary, containing all the images of the PDF document + + + This is the list with all the images in the document. + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @param fixedRef the reference to used. It may be null, + a PdfIndirectReference or a PRIndirectReference. + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Writes a PdfImage to the outputstream. + + @param pdfImage the image to be added + @return a PdfIndirectReference to the encapsulated image + @throws PdfException when a document isn't open yet, or has been closed + + + return the PdfIndirectReference to the image with a given name. + + @param name the name of the image + @return a PdfIndirectReference + + + A Hashtable with Stream objects containing JBIG2 Globals + @since 2.1.5 + + + Gets an indirect reference to a JBIG2 Globals stream. + Adds the stream if it hasn't already been added to the writer. + @param content a byte array that may already been added to the writer inside a stream object. + @since 2.1.5 + + + A flag indicating the presence of structure elements that contain user properties attributes. + + + Sets the flag indicating the presence of structure elements that contain user properties attributes. + @param userProperties the user properties flag + + + Holds value of property RGBTranparency. + + + Sets the transparency blending colorspace to RGB. The default blending colorspace is + CMYK and will result in faded colors in the screen and in printing. Calling this method + will return the RGB colors to what is expected. The RGB blending will be applied to all subsequent pages + until other value is set. + Note that this is a generic solution that may not work in all cases. + @param rgbTransparencyBlending true to set the transparency blending colorspace to RGB, false + to use the default blending colorspace + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param rect + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param title + @param content + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param action + @param subtype + @return + + + Gets the list of the standard structure element names (roles). + @return + + + + @author psoares + + + Creates a new instance of PdfXConformanceException. + + + Creates a new instance of PdfXConformanceException. + @param s + + + Converts a PFM file into an AFM file. + + + Creates a new instance of Pfm2afm + + + Converts a PFM file into an AFM file. + @param inp the PFM file + @param outp the AFM file + @throws IOException on error + + + Translate table from 1004 to psstd. 1004 is an extension of the + Windows translate table used in PM. + + + Character class. This is a minor attempt to overcome the problem that + in the pfm file, all unused characters are given the width of space. + Note that this array isn't used in iText. + + + Windows character names. Give a name to the used locations + for when the all flag is specified. + + + This class captures an AcroForm on input. Basically, it extends Dictionary + by indexing the fields of an AcroForm + @author Mark Thompson + + + This class holds the information for a single field + + + Returns the name of the widget annotation (the /NM entry). + @return a String or null (if there's no /NM key) + + + Constructor + @param reader reader of the input file + + + Number of fields found + @return size + + + Given the title (/T) of a reference, return the associated reference + @param name a string containing the path + @return a reference to the field, or null + + + Read, and comprehend the acroform + @param root the docment root + + + After reading, we index all of the fields. Recursive. + @param fieldlist An array of fields + @param fieldDict the last field dictionary we encountered (recursively) + @param parentPath the pathname of the field, up to this point or null + + + merge field attributes from two dictionaries + @param parent one dictionary + @param child the other dictionary + @return a merged dictionary + + + stack a level of dictionary. Merge in a dictionary from this level + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + + + Creates a new PDF stream object that will replace a stream + in a existing PDF file. + @param reader the reader that holds the existing PDF + @param conts the new content + @param compressionLevel the compression level for the content + @since 2.1.3 (replacing the existing constructor without param compressionLevel) + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @since iText 2.1.1 + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @param compressionLevel a value between -1 and 9 (ignored if compress == false) + @since iText 2.1.3 + + + Sets the data associated with the stream, as-is. This method will not + remove or change any existing filter: the data has to match an existing + filter or an appropriate filter has to be set. + + @param data data, possibly encrypted and/or compressed + @since 5.5.0 + + + Sets the data associated with the stream + @param data raw data, decrypted and uncompressed. + + + + @author Paulo Soares + + + Creates a PRTokeniser for the specified {@link RandomAccessSource}. + The beginning of the file is read to determine the location of the header, and the data source is adjusted + as necessary to account for any junk that occurs in the byte source before the header + @param file the source + + + Is a certain character a whitespace? Currently checks on the following: '0', '9', '10', '12', '13', '32'. +
    The same as calling {@link #isWhitespace(int, boolean) isWhiteSpace(ch, true)}. + @param ch int + @return boolean + @since 5.5.1 +
    + + Checks whether a character is a whitespace. Currently checks on the following: '0', '9', '10', '12', '13', '32'. + @param ch int + @param isWhitespace boolean + @return boolean + @since 5.5.1 + + + Gets current reference number. If parsing was failed with NumberFormatException -1 will be return. + + + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. +
    The same as calling {@link #readLineSegment(byte[], boolean) readLineSegment(input, true)}. + + @param input byte[] + @return boolean + @throws IOException + @since 5.5.1 +
    + + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. + + @param input byte[] + @param isNullWhitespace boolean to indicate whether '0' is whitespace or not. + If in doubt, use true or overloaded method {@link #readLineSegment(byte[]) readLineSegment(input)} + @return boolean + @throws IOException + @since 5.5.1 + + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + Holds value of property layout. + + + Holds value of property image. + + + Holds value of property template. + + + Holds value of property scaleIcon. + + + Holds value of property proportionalIcon. + + + Holds value of property iconVerticalAdjustment. + + + Holds value of property iconHorizontalAdjustment. + + + Holds value of property iconFitToBounds. + + + Creates a new instance of PushbuttonField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the icon and label layout. Possible values are LAYOUT_LABEL_ONLY, + LAYOUT_ICON_ONLY, LAYOUT_ICON_TOP_LABEL_BOTTOM, + LAYOUT_LABEL_TOP_ICON_BOTTOM, LAYOUT_ICON_LEFT_LABEL_RIGHT, + LAYOUT_LABEL_LEFT_ICON_RIGHT and LAYOUT_LABEL_OVER_ICON. + The default is LAYOUT_LABEL_ONLY. + @param layout New value of property layout. + + + Sets the icon as an image. + @param image the image + + + Sets the icon as a template. + @param template the template + + + Sets the way the icon will be scaled. Possible values are + SCALE_ICON_ALWAYS, SCALE_ICON_NEVER, + SCALE_ICON_IS_TOO_BIG and SCALE_ICON_IS_TOO_SMALL. + The default is SCALE_ICON_ALWAYS. + @param scaleIcon the way the icon will be scaled + + + Sets the way the icon is scaled. If true the icon is scaled proportionally, + if false the scaling is done anamorphicaly. + @param proportionalIcon the way the icon is scaled + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon. + A value of 0 positions the icon at the bottom of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconVerticalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon. + A value of 0 positions the icon at the left of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconHorizontalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon + + + Gets the button appearance. + @throws IOException on error + @throws DocumentException on error + @return the button appearance + + + Gets the pushbutton field. + @throws IOException on error + @throws DocumentException on error + @return the pushbutton field + + + If true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account. The default + is false. + @param iconFitToBounds if true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account + + + Holds value of property iconReference. + + + Sets the reference to an existing icon. + @param iconReference the reference to an existing icon + + +

    A simple, fast array of bits, represented compactly by an array of ints internally.

    + + @author Sean Owen +
    + + @param i bit to get + @return true iff bit i is set + + + Sets bit i. + + @param i bit to set + + + Flips bit i. + + @param i bit to set + + + Sets a block of 32 bits, starting at bit i. + + @param i first bit to set + @param newBits the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + @param start start of range, inclusive. + @param end end of range, exclusive + @param value if true, checks that bits in range are set, otherwise checks that they are not set + @return true iff all bits are set or not set in range, according to value argument + @throws IllegalArgumentException if end is less than or equal to start + + + @return underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + Reverses all bits in the array. + + +

    Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

    + +

    Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

    + +

    The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

    + + @author Sean Owen + @author dswitkin@google.com (Daniel Switkin) +
    + +

    Gets the requested bit, where true means black.

    + + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) + @return value of given bit in matrix +
    + +

    Sets the given bit to true.

    + + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
    + +

    Flips the given bit.

    + + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
    + + Clears all bits (sets to false). + + +

    Sets a square region of the bit matrix to true.

    + + @param left The horizontal position to begin at (inclusive) + @param top The vertical position to begin at (inclusive) + @param width The width of the region + @param height The height of the region +
    + + A fast method to retrieve one row of data from the matrix as a BitArray. + + @param y The row to retrieve + @param row An optional caller-allocated BitArray, will be allocated if null or too small + @return The resulting BitArray - this reference should always be used even when passing + your own row + + + @return The width of the matrix + + + @return The height of the matrix + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + @return row/column dimension of this matrix + + + JAVAPORT: This should be combined with BitArray in the future, although that class is not yet + dynamically resizeable. This implementation is reasonable but there is a lot of function calling + in loops I'd like to get rid of. + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This class implements an array of unsigned bytes. + + @author dswitkin@google.com (Daniel Switkin) + + + Access an unsigned byte at location index. + @param index The index in the array to access. + @return The unsigned value of the byte as an int. + + + + Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 + of ISO 18004. + + @author Sean Owen + + + @param name character set ECI encoding name + @return {@link CharacterSetECI} representing ECI for character encoding, or null if it is legal + but unsupported + + + These are a set of hints that you may pass to Writers to specify their behavior. + + @author dswitkin@google.com (Daniel Switkin) + + + Specifies what degree of error correction to use, for example in QR Codes (type Integer). + + + Specifies what character encoding to use where applicable (type String) + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Encode "bytes" with the error correction level "ecLevel". The encoding mode will be chosen + internally by ChooseMode(). On success, store the result in "qrCode". + + We recommend you to use QRCode.EC_LEVEL_L (the lowest level) for + "getECLevel" since our primary use is to show QR code on desktop screens. We don't need very + strong error correction for this purpose. + + Note that there is no way to encode bytes in MODE_KANJI. We might want to add EncodeWithMode() + with which clients can specify the encoding mode. For now, we don't need the functionality. + + + @return the code point of the table used in alphanumeric mode or + -1 if there is no corresponding code in the table. + + + Choose the best mode by examining the content. Note that 'encoding' is used as a hint; + if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}. + + + Initialize "qrCode" according to "numInputBytes", "ecLevel", and "mode". On success, + modify "qrCode". + + + Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24). + + + Get number of data bytes and number of error correction bytes for block id "blockID". Store + the result in "numDataBytesInBlock", and "numECBytesInBlock". See table 12 in 8.5.1 of + JISX0510:2004 (p.30) + + + Interleave "bits" with corresponding error correction bytes. On success, store the result in + "result". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details. + + + Append mode info. On success, store the result in "bits". + + + Append length info. On success, store the result in "bits". + + + Append "bytes" in "mode" mode (encoding) into "bits". On success, store the result in "bits". + + +

    See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels + defined by the QR code standard.

    + + @author Sean Owen +
    + + L = ~7% correction + + + M = ~15% correction + + + Q = ~25% correction + + + H = ~30% correction + + + @param bits int containing the two bits encoding a QR Code's error correction level + @return {@link ErrorCorrectionLevel} representing the encoded error correction level + + +

    Encapsulates a QR Code's format information, including the data mask used and + error correction level.

    + + @author Sean Owen + @see ErrorCorrectionLevel +
    + + See ISO 18004:2006, Annex C, Table C.1 + + + Offset i holds the number of 1 bits in the binary representation of i + + + @param maskedFormatInfo1 format info indicator, with mask still applied + @param maskedFormatInfo2 second copy of same info; both are checked at the same time + to establish best match + @return information about the format it specifies, or null + if doesn't seem to match any known pattern + + +

    This class contains utility methods for performing mathematical operations over + the Galois Field GF(256). Operations use a given primitive polynomial in calculations.

    + +

    Throughout this package, elements of GF(256) are represented as an int + for convenience and speed (but at the cost of memory). + Only the bottom 8 bits are really used.

    + + @author Sean Owen +
    + + Create a representation of GF(256) using the given primitive polynomial. + + @param primitive irreducible polynomial whose coefficients are represented by + the bits of an int, where the least-significant bit represents the constant + coefficient + + + @return the monomial representing coefficient * x^degree + + + Implements both addition and subtraction -- they are the same in GF(256). + + @return sum/difference of a and b + + + @return 2 to the power of a in GF(256) + + + @return base 2 log of a in GF(256) + + + @return multiplicative inverse of a + + + @param a + @param b + @return product of a and b in GF(256) + + +

    Represents a polynomial whose coefficients are elements of GF(256). + Instances of this class are immutable.

    + +

    Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

    + + @author Sean Owen +
    + + @param field the {@link GF256} instance representing the field to use + to perform computations + @param coefficients coefficients as ints representing elements of GF(256), arranged + from most significant (highest-power term) coefficient to least significant + @throws IllegalArgumentException if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + @return degree of this polynomial + + + @return true iff this polynomial is the monomial "0" + + + @return coefficient of x^degree term in this polynomial + + + @return evaluation of this polynomial at a given point + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + +

    See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which + data can be encoded to bits in the QR code standard.

    + + @author Sean Owen +
    + + @param bits four bits encoding a QR Code data mode + @return {@link Mode} encoded by these bits + @throws IllegalArgumentException if bits do not correspond to a known mode + + + @param version version in question + @return number of bits used, in this QR Code symbol {@link Version}, to encode the + count of characters that will follow encoded in this {@link Mode} + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This object renders a QR Code as a ByteMatrix 2D array of greyscale values. + + @author dswitkin@google.com (Daniel Switkin) + + +

    Implements Reed-Solomon enbcoding, as the name implies.

    + + @author Sean Owen + @author William Rucklidge +
    + +

    Thrown when an exception occurs during Reed-Solomon decoding, such as when + there are too many errors to correct.

    + + @author Sean Owen +
    + + See ISO 18004:2006 Annex D + + @author Sean Owen + + + See ISO 18004:2006 Annex D. + Element i represents the raw version bits that specify version i + 7 + + +

    Deduces version information purely from QR Code dimensions.

    + + @param dimension dimension in modules + @return {@link Version} for a QR Code of that dimension + @throws FormatException if dimension is not 1 mod 4 +
    + + See ISO 18004:2006 Annex E + + +

    Encapsulates a set of error-correction blocks in one symbol version. Most versions will + use blocks of differing sizes within one version, so, this encapsulates the parameters for + each set of blocks. It also holds the number of error-correction codewords per block since it + will be the same across all blocks within one version.

    +
    + +

    Encapsualtes the parameters for one error-correction block in one symbol version. + This includes the number of data codewords, and the number of times a block with these + parameters is used consecutively in the QR code version's format.

    +
    + + See ISO 18004:2006 6.5.1 Table 9 + + + A base class which covers the range of exceptions which may occur when encoding a barcode using + the Writer framework. + + @author dswitkin@google.com (Daniel Switkin) + + + + A field with the symbol check + + + A field with the symbol circle + + + A field with the symbol cross + + + A field with the symbol diamond + + + A field with the symbol square + + + A field with the symbol star + + + Holds value of property checkType. + + + Holds value of property onValue. + + + Holds value of property checked. + + + Creates a new instance of RadioCheckField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. It must not be null + @param onValue the value when the field is checked + + + Sets the checked symbol. It can be + TYPE_CHECK, + TYPE_CIRCLE, + TYPE_CROSS, + TYPE_DIAMOND, + TYPE_SQUARE and + TYPE_STAR. + @param checkType the checked symbol + + + Sets the value when the field is checked. + @param onValue the value when the field is checked + + + Sets the state of the field to checked or unchecked. + @param checked the state of the field, true for checked + and false for unchecked + + + Gets the field appearance. + @param isRadio true for a radio field and false + for a check field + @param on true for the checked state, false + otherwise + @throws IOException on error + @throws DocumentException on error + @return the appearance + + + Gets the special field appearance for the radio circle. + @param on true for the checked state, false + otherwise + @return the appearance + + + Gets a radio group. It's composed of the field specific keys, without the widget + ones. This field is to be used as a field aggregator with {@link PdfFormField#addKid(PdfFormField) AddKid()}. + @param noToggleToOff if true, exactly one radio button must be selected at all + times; clicking the currently selected button has no effect. + If false, clicking + the selected button deselects it, leaving no button selected. + @param radiosInUnison if true, a group of radio buttons within a radio button field that + use the same value for the on state will turn on and off in unison; that is if + one is checked, they are all checked. If false, the buttons are mutually exclusive + (the same behavior as HTML radio buttons) + @return the radio group + + + Gets the radio field. It's only composed of the widget keys and must be used + with {@link #getRadioGroup(bool,bool)}. + @return the radio field + @throws IOException on error + @throws DocumentException on error + + + Gets the check field. + @return the check field + @throws IOException on error + @throws DocumentException on error + + + Gets a radio or check field. + @param isRadio true to get a radio field, false to get + a check field + @throws IOException on error + @throws DocumentException on error + @return the field + + + Intended to be layered on top of a low level RandomAccessSource object. Provides + functionality useful during parsing: +
      +
    • tracks current position in the file
    • +
    • allows single byte pushback
    • +
    • allows reading of multi-byte data structures (int, long, String) for both Big and Little Endian representations
    • +
    • allows creation of independent 'views' of the underlying data source
    • +
    + + @author Paulo Soares, Kevin Day +
    + + The source that backs this object + + + The physical location in the underlying byte source. + + + the pushed back byte, if any + + + Whether there is a pushed back byte + + + @deprecated use {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + @param filename + @throws IOException + + + Creates an independent view of the specified source. Closing the new object will not close the source. + Closing the source will have adverse effect on the behavior of the new view. + @deprecated use {@link RandomAccessFileOrArray#createView()} instead + @param source the source for the new independent view + + + Creates an independent view of this object (with it's own file pointer and pushback queue). Closing the new object will not close this object. + Closing this object will have adverse effect on the view. + @return the new view + + + Creates a RandomAccessFileOrArray that wraps the specified byte source. The byte source will be closed when + this RandomAccessFileOrArray is closed. + @param byteSource the byte source to wrap + + + Constructs a new RandomAccessFileOrArrayObject + @param filename the file to open (can be a file system file or one of the following url strings: file://, http://, https://, jar:, wsjar:, vfszip: + @param forceRead if true, the entire file will be read into memory + @param plainRandomAccess if true, a regular RandomAccessFile is used to access the file contents. If false, a memory mapped file will be used, unless the file cannot be mapped into memory, in which case regular RandomAccessFile will be used + @throws IOException if there is a failure opening or reading the file + @deprecated use {@link RandomAccessSourceFactory#createBestSource(String)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param url + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(URL)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param is + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(InputStream)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param arrayIn + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(byte[])} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + Pushes a byte back. The next get() will return this byte instead of the value from the underlying data source + @param b the byte to push + + + Reads a single byte + @return the byte, or -1 if EOF is reached + @throws IOException + + + + + + + + + This class allows you to sign with either an RSACryptoServiceProvider/DSACryptoServiceProvider from a X509Certificate2, + or from manually created RSACryptoServiceProvider/DSACryptoServiceProvider. + Depending on the certificate's CSP, sometimes you will not be able to sign with SHA-256/SHA-512 hash algorithm with + RSACryptoServiceProvider taken directly from the certificate. + This class allows you to use a workaround in this case and sign with certificate's private key and SHA-256/SHA-512 anyway. + + An example of a workaround for CSP that does not support SHA-256/SHA-512: + + if (certificate.PrivateKey is RSACryptoServiceProvider) + { + RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PrivateKey; + + // Modified by J. Arturo + // Workaround for SHA-256 and SHA-512 + + if (rsa.CspKeyContainerInfo.ProviderName == "Microsoft Strong Cryptographic Provider" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Enhanced Cryptographic Provider v1.0" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Base Cryptographic Provider v1.0") + { + string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider"; + int providerType = 24; + + Type CspKeyContainerInfo_Type = typeof(CspKeyContainerInfo); + + FieldInfo CspKeyContainerInfo_m_parameters = CspKeyContainerInfo_Type.GetField("m_parameters", BindingFlags.NonPublic | BindingFlags.Instance); + CspParameters parameters = (CspParameters)CspKeyContainerInfo_m_parameters.GetValue(rsa.CspKeyContainerInfo); + + var cspparams = new CspParameters(providerType, providerName, rsa.CspKeyContainerInfo.KeyContainerName); + cspparams.Flags = parameters.Flags; + + using (var rsaKey = new RSACryptoServiceProvider(cspparams)) + { + // use rsaKey now + } + } + else + { + // Use rsa directly + } + } + + + + + + + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + Interface to sign a document. The signing is fully done externally, including the container composition. + @author Paulo Soares + + + Produces the container with the signature. + @param data the data to sign + @return a container with the signature and other objects, like CRL and OCSP. The container will generally be a PKCS7 one. + @throws GeneralSecurityException + + + Modifies the signature dictionary to suit the container. At least the keys PdfName.FILTER and + PdfName.SUBFILTER will have to be set. + @param signDic the signature dictionary + + + Helps to locate xml stream + + + Constructor for XPath2 expression + + + Get XPath2 expression + + + Get XmlNamespaceManager to resolve namespace conflicts + + + Class that signs your XML. + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param keyInfo KeyInfo for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param includeSignaturePolicy if true SignaturePolicyIdentifier will be included (XAdES-EPES) + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param publicKey PublicKey for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + A dictionary that stores the name of the application that signs the PDF. + + + Creates new PdfSignatureAppDictionary + + + Sets the signature created property in the Prop_Build dictionary's App + dictionary + + @param name + + + Dictionary that stores signature build properties. + @author Kwinten Pisman + + + Creates new PdfSignatureBuildProperties + + + Sets the signatureCreator property in the underlying + {@link PdfSignatureAppDictionary} dictionary. + + @param name + + + Gets the {@link PdfSignatureAppDictionary} from this dictionary. If it + does not exist, it adds a new {@link PdfSignatureAppDictionary} and + returns this instance. + + @return {@link PdfSignatureAppDictionary} + + + Class that encapsulates the signature policy information + @author J. Arturo + + Sample: + + SignaturePolicyInfo spi = new SignaturePolicyInfo("2.16.724.1.3.1.1.2.1.9", + "G7roucf600+f03r/o0bAOQ6WAs0=", "SHA-1", "https://sede.060.gob.es/politica_de_firma_anexo_1.pdf"); + + + Class containing static methods that allow you to get information from + an X509 Certificate: the issuer and the subject. + + + a class that holds an X509 name + + + country code - StringType(SIZE(2)) + + + organization - StringType(SIZE(1..64)) + + + organizational unit name - StringType(SIZE(1..64)) + + + Title + + + common name - StringType(SIZE(1..64)) + + + device serial number name - StringType(SIZE(1..64)) + + + locality name - StringType(SIZE(1..64)) + + + state, or province name - StringType(SIZE(1..64)) + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + + email address in Verisign certificates + + + object identifier + + + LDAP User id. + + + A Hashtable with default symbols + + + A Hashtable with values + + + Constructs an X509 name + @param seq an Asn1 Sequence + + + Constructs an X509 name + @param dirName a directory name + + + gets a field array from the values Hashmap + @param name + @return an ArrayList + + + getter for values + @return a Hashtable with the fields of the X509 name + + + @see java.lang.Object#toString() + + + class for breaking up an X500 Name into it's component tokens, ala + java.util.StringTokenizer. We need this class as some of the + lightweight Java environment don't support classes like + StringTokenizer. + + + Get the issuer fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "issuer" from the TBSCertificate bytes that are passed in + @param enc a TBSCertificate in a byte array + @return a DERObject + + + Get the subject fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "subject" from the TBSCertificate bytes that are passed in + @param enc A TBSCertificate in a byte array + @return a DERObject + + + This class contains a series of static methods that + allow you to retrieve information from a Certificate. + + + Gets the URL of the Certificate Revocation List for a Certificate + @param certificate the Certificate + @return the String where you can check if the certificate was revoked + @throws CertificateParsingException + @throws IOException + + + Retrieves the OCSP URL from the given certificate. + @param certificate the certificate + @return the URL or null + @throws IOException + + + Gets the URL of the TSA if it's available on the certificate + @param certificate a certificate + @return a TSA URL + @throws IOException + + + @param certificate the certificate from which we need the ExtensionValue + @param oid the Object Identifier value for the extension. + @return the extension value as an ASN1Primitive object + @throws IOException + + + Gets a String from an ASN1Primitive + @param names the ASN1Primitive + @return a human-readable String + @throws IOException + + + This class consists of some methods that allow you to verify certificates. + + + Verifies a single certificate. + @param cert the certificate to verify + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return a String with the error description or null + if no error + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies an OCSP response against a KeyStore. + @param ocsp the OCSP response + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + Verifies a time stamp against a KeyStore. + @param ts the time stamp + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + The previous CertificateVerifier in the chain of verifiers. + + + Indicates if going online to verify a certificate is allowed. + + + Creates the CertificateVerifier in a chain of verifiers. + @param verifier the previous verifier in the chain + + + Decide whether or not online checking is allowed. + @param onlineCheckingAllowed + + + Checks the validity of the certificate, and calls the next + verifier in the chain, if any. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @param signDate the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + + + An implementation of the CrlClient that handles offline + Certificate Revocation Lists. + @author Paulo Soares + + + The CRL as a byte array. + + + Creates an instance of a CrlClient in case you + have a local cache of the Certificate Revocation List. + @param crlEncoded the CRL bytes + + + Returns the CRL bytes (the parameters are ignored). + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + An implementation of the CrlClient that fetches the CRL bytes + from an URL. + @author Paulo Soares + + + The Logger instance. + + + The URLs of the CRLs. + + + Creates a CrlClientOnline instance that will try to find + a single CRL by walking through the certificate chain. + + + Creates a CrlClientOnline instance using one or more URLs. + + + Creates a CrlClientOnline instance using a certificate chain. + + + Adds an URL to the list of CRL URLs + @param url an URL in the form of a String + + + Fetches the CRL bytes from an URL. + If no url is passed as parameter, the url will be obtained from the certificate. + If you want to load a CRL from a local file, subclass this method and pass an + URL with the path to the local file to this method. An other option is to use + the CrlClientOffline class. + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + The Logger instance + + + The list of CRLs to check for revocation date. + + + Creates a CRLVerifier instance. + @param verifier the next verifier in the chain + @param crls a list of CRLs + + + Verifies if a a valid CRL is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any CRL that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single CRL. + @param crl the Certificate Revocation List + @param signCert a certificate that needs to be verified + @param issuerCert its issuer + @param signDate the sign date + @return true if the verification succeeded + @throws GeneralSecurityException + + + Fetches a CRL for a specific certificate online (without further checking). + @param signCert the certificate + @param issuerCert its issuer + @return an X509CRL object + + + Checks if a CRL verifies against the issuer certificate or a trusted anchor. + @param crl the CRL + @param crlIssuer the trusted anchor + @return true if the CRL can be trusted + + + Class that contains a map with the different message digest algorithms. + + + Algorithm available for signatures since PDF 1.3 + + + Algorithm available for signatures since PDF 1.6 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Maps the digest IDs with the human-readable name of the digest algorithm. + + + Maps the name of a digest algorithm with its ID. + + + Creates a MessageDigest object that can be used to create a hash. + @param hashAlgorithm the algorithm you want to use to create a hash + @param provider the provider you want to use to create the hash + @return a MessageDigest object + @throws NoSuchAlgorithmException + @throws NoSuchProviderException + @throws GeneralSecurityException + + + Creates a hash using a specific digest algorithm and a provider. + @param data the message of which you want to create a hash + @param hashAlgorithm the algorithm used to create the hash + @param provider the provider used to create the hash + @return the hash + @throws GeneralSecurityException + @throws IOException + + + Gets the digest name for a certain id + @param oid an id (for instance "1.2.840.113549.2.5") + @return a digest name (for instance "MD5") + + + Returns the id of a digest algorithms that is allowed in PDF, + or null if it isn't allowed. + @param name the name of the digest algorithm + @return an oid + + + Class that contains a map with the different encryption algorithms. + + + Maps IDs of encryption algorithms with its human-readable name. + + + Gets the algorithm name for a certain id. + @param oid an id (for instance "1.2.840.113549.1.1.1") + @return an algorithm name (for instance "RSA") + @since 2.1.6 + + + Interface that needs to be implemented if you want to embed + Certificate Revocation Lists into your PDF. + @author Paulo Soares + + + Gets a collection of byte array each representing a crl. + @param checkCert the certificate from which a CRL URL can be obtained + @param url a CRL url if you don't want to obtain it from the certificate + @return a collection of byte array each representing a crl. It may return null or an empty collection + + + Interface that needs to be implemented to do the actual signing. + For instance: you'll have to implement this interface if you want + to sign a PDF using a smart card. + @author Paulo Soares + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + + + Signs it using the encryption algorithm in combination with + the digest algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @throws GeneralSecurityException + + + Interface for the OCSP Client. + @since 2.1.6 + + + * Gets an encoded byte array with OCSP validation. The method should not throw an exception. + * @param checkCert to certificate to check + * @param rootCert the parent certificate + * @param url the url to get the verification. It it's null it will be taken + * from the check cert or from other implementation specific source + * @return a byte array with the validation or null if the validation could not be obtained + + + + Get the time stamp token size estimate. + Implementation must return value large enough to accomodate the entire token + returned by getTimeStampToken() _prior_ to actual getTimeStampToken() call. + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint byte[] - data imprint to be time-stamped + @return byte[] - encoded, TSA signed data of the timeStampToken + @throws Exception - TSA request failed + + + PAdES-LTV Timestamp + @author Pulo Soares + + + Signs a document with a PAdES-LTV Timestamp. The document is closed at the end. + @param sap the signature appearance + @param tsa the timestamp generator + @param signatureName the signature name or null to have a name generated + automatically + @throws Exception + + + Add verification according to PAdES-LTV (part 4) + @author psoares + + + What type of verification to include + + + Include only OCSP + + + Include only CRL + + + Include both OCSP and CRL + + + Include CRL only if OCSP can't be read + + + Options for how many certificates to include + + + Include verification just for the signing certificate + + + Include verification for the whole chain of certificates + + + Certificate inclusion in the DSS and VRI dictionaries in the CERT and CERTS + keys + + + Include certificates in the DSS and VRI dictionaries + + + Do not include certificates in the DSS and VRI dictionaries + + + The verification constructor. This class should only be created with + PdfStamper.getLtvVerification() otherwise the information will not be + added to the Pdf. + @param stp the PdfStamper to apply the validation to + + + Add verification for a particular signature + @param signatureName the signature to validate (it may be a timestamp) + @param ocsp the interface to get the OCSP + @param crl the interface to get the CRL + @param certOption + @param level the validation options to include + @param certInclude + @return true if a validation was generated, false otherwise + @throws Exception + + + Returns the issuing certificate for a child certificate. + @param cert the certificate for which we search the parent + @param certs an array with certificates that contains the parent + @return the partent certificate + + + Alternative addVerification. + I assume that inputs are deduplicated. + + @throws IOException + @throws GeneralSecurityException + + + + Merges the validation with any validation already in the document or creates + a new one. + @throws IOException + + + The Logger instance + + + Do we need to check all certificate, or only the signing certificate? + + + Verify root. + + + A reader object for the revision that is being verified. + + + The fields in the revision that is being verified. + + + The date the revision was signed, or null for the highest revision. + + + The signature that covers the revision. + + + The PdfPKCS7 object for the signature. + + + Indicates if we're working with the latest revision. + + + The document security store for the revision that is being verified + + + Creates a VerificationData object for a PdfReader + @param reader a reader for the document we want to verify. + @throws GeneralSecurityException + + + Sets an extra verifier. + @param verifier the verifier to set + + + Sets the certificate option. + @param option Either CertificateOption.SIGNING_CERTIFICATE (default) or CertificateOption.WHOLE_CHAIN + + + Set the verifyRootCertificate to false if you can't verify the root certificate. + + + Checks if the signature covers the whole document + and throws an exception if the document was altered + @return a PdfPKCS7 object + @throws GeneralSecurityException + + + Verifies all the document-level timestamps and all the signatures in the document. + @throws IOException + @throws GeneralSecurityException + + + Verifies a document level timestamp. + @throws GeneralSecurityException + @throws IOException + + + Checks the certificates in a certificate chain: + are they valid on a specific date, and + do they chain up correctly? + @param chain + @throws GeneralSecurityException + + + Verifies certificates against a list of CRLs and OCSP responses. + @param signingCert + @param issuerCert + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate) + + + Switches to the previous revision. + @throws IOException + @throws GeneralSecurityException + + + Gets a list of X509CRL objects from a Document Security Store. + @return a list of CRLs + @throws GeneralSecurityException + @throws IOException + + + Gets OCSP responses from the Document Security Store. + @return a list of BasicOCSPResp objects + @throws IOException + @throws GeneralSecurityException + + + Class that signs your PDF. + @author Paulo Soares + + + The Logger instance. + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Processes a CRL list. + @param cert a Certificate if one of the CrlList implementations needs to retrieve the CRL URL from it. + @param crlList a list of CrlClient implementations + @return a collection of CRL bytes that can be embedded in a PDF. + + + Sign the document using an external container, usually a PKCS7. The signature is fully composed + externally, iText will just put the container inside the document. + @param sap the PdfSignatureAppearance + @param externalSignatureContainer the interface providing the actual signing + @param estimatedSize the reserved size for the signature + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs a PDF where space was already reserved. + @param reader the original PDF + @param fieldName the field to sign. It must be the last field + @param outs the output PDF + @param externalSignatureContainer the signature container doing the actual signing. Only the + method ExternalSignatureContainer.sign is used + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + + + OcspClient implementation using BouncyCastle. + @author Paulo Soares + + + Create default implemention of {@code OcspClient}. + Note, if you use this constructor, OCSP response will not be verified. + + + Create {@code OcspClient} + @param verifier will be used for response verification. {@see OCSPVerifier}. + + + Gets OCSP response. If {@see OCSPVerifier} was set, the response will be checked. + + + Gets an encoded byte array with OCSP validation. The method should not throw an exception. + + @param checkCert to certificate to check + @param rootCert the parent certificate + @param url to get the verification. It it's null it will be taken + from the check cert or from other implementation specific source + @return a byte array with the validation or null if the validation could not be obtained + + + Generates an OCSP request using BouncyCastle. + @param issuerCert certificate of the issues + @param serialNumber serial number + @return an OCSP request + @throws OCSPException + @throws IOException + + + The Logger instance + + + The list of OCSP responses. + + + Creates an OCSPVerifier instance. + @param verifier the next verifier in the chain + @param ocsps a list of OCSP responses + + + Verifies if a a valid OCSP response is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any OCSP response that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single OCSP response + @param ocspResp the OCSP response + @param signCert the certificate that needs to be checked + @param issuerCert the certificate of CA + @param signDate sign date + @return {@code true}, in case successful check, otherwise false. + @throws GeneralSecurityException + @throws IOException + + + Verifies if an OCSP response is genuine + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + @param ocspResp the OCSP response + @param issuerCert the issuer certificate + @throws GeneralSecurityException + @throws IOException + + + Verifies if the response is valid. + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + NOTE. Use {@code isValidResponse()} instead. + @param ocspResp the response object + @param issuerCert the issuer certificate + @return true if the response can be trusted + + + Checks if an OCSP response is genuine + @param ocspResp the OCSP response + @param responderCert the responder certificate + @return true if the OCSP response verifies against the responder certificate + + + Gets an OCSP response online and returns it if the status is GOOD + (without further checking). + @param signCert the signing certificate + @param issuerCert the issuer certificate + @return an OCSP response + + + This class does all the processing related to signing + and verifying a PKCS#7 signature. + + + Assembles all the elements needed to create a signature, except for the data. + @param privKey the private key + @param certChain the certificate chain + @param interfaceDigest the interface digest + @param hashAlgorithm the hash algorithm + @param provider the provider or null for the default provider + @param hasRSAdata true if the sub-filter is adbe.pkcs7.sha1 + @throws InvalidKeyException on error + @throws NoSuchProviderException on error + @throws NoSuchAlgorithmException on error + + + Use this constructor if you want to verify a signature using the sub-filter adbe.x509.rsa_sha1. + @param contentsKey the /Contents key + @param certsKey the /Cert key + + + Use this constructor if you want to verify a signature. + @param contentsKey the /Contents key + @param filterSubtype the filtersubtype + @param provider the provider or null for the default provider + + + Holds value of property signName. + + + Holds value of property reason. + + + Holds value of property location. + + + Holds value of property signDate. + + + Getter/setter for property sigName. + @return Value of property sigName. + + + Getter for property reason. + @return Value of property reason. + + + Getter for property location. + @return Value of property location. + + + Getter for property signDate. + @return Value of property signDate. + + + Version of the PKCS#7 object + + + Version of the PKCS#7 "SignerInfo" object. + + + Get the version of the PKCS#7 object. + @return the version of the PKCS#7 object. + + + Get the version of the PKCS#7 "SignerInfo" object. + @return the version of the PKCS#7 "SignerInfo" object. + + + The ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + + + The object that will create the digest + + + The digest algorithms + + + The digest attributes + + + Getter for the ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1" + + + Returns the name of the digest algorithm, e.g. "SHA256". + @return the digest algorithm name, e.g. "SHA256" + + + The encryption algorithm. + + + Getter for the digest encryption algorithm + + + Get the algorithm used to calculate the message digest, e.g. "SHA1withRSA". + @return the algorithm used to calculate the message digest + + + The signed digest if created outside this class + + + External RSA data + + + Sets the digest/signature to an external calculated value. + @param digest the digest. This is the actual signature + @param RSAdata the extra data that goes into the data tag in PKCS#7 + @param digestEncryptionAlgorithm the encryption algorithm. It may must be null if the digest + is also null. If the digest is not null + then it may be "RSA" or "DSA" + + + Class from the Java SDK that provides the functionality of a digital signature algorithm. + + + The signed digest as calculated by this class (or extracted from an existing PDF) + + + The RSA data + + + Update the digest with the specified bytes. + This method is used both for signing and verifying + @param buf the data buffer + @param off the offset in the data buffer + @param len the data length + @throws SignatureException on error + + + Gets the bytes for the PKCS#1 object. + @return a byte array + + + Gets the bytes for the PKCS7SignedData object. + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set. If either of the parameters is null, none will be used. + @param secondDigest the digest in the authenticatedAttributes + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set, OR a time-stamp-authority client + may be provided. + @param secondDigest the digest in the authenticatedAttributes + @param tsaClient TSAClient - null or an optional time stamp authority client + @return byte[] the bytes for the PKCS7SignedData object + @since 2.1.6 + + + Added by Aiken Sam, 2006-11-15, modifed by Martin Brunecky 07/12/2007 + to start with the timeStampToken (signedData 1.2.840.113549.1.7.2). + Token is the TSA response without response status, which is usually + handled by the (vendor supplied) TSA request/response interface). + @param timeStampToken byte[] - time stamp token, DER encoded signedData + @return ASN1EncodableVector + @throws IOException + + + + This method provides that encoding and the parameters must be + exactly the same as in {@link #getEncodedPKCS7(byte[],Calendar)}. + + @param secondDigest the content digest + @return the byte array representation of the authenticatedAttributes ready to be signed + + + Signature attributes + + + Signature attributes (maybe not necessary, but we use it as fallback) + + + encrypted digest + + + Indicates if a signature has already been verified + + + The result of the verification + + + Verify the digest. + @throws SignatureException on error + @return true if the signature checks out, false otherwise + + + Checks if the timestamp refers to this document. + @throws java.security.NoSuchAlgorithmException on error + @return true if it checks false otherwise + @since 2.1.6 + + + All the X.509 certificates in no particular order. + + + All the X.509 certificates used for the main signature. + + + The X.509 certificate that is used to sign the digest. + + + Get all the X.509 certificates associated with this PKCS#7 object in no particular order. + Other certificates, from OCSP for example, will also be included. + @return the X.509 certificates associated with this PKCS#7 object + + + Get the X.509 sign certificate chain associated with this PKCS#7 object. + Only the certificates used for the main signature will be returned, with + the signing certificate first. + @return the X.509 certificates associated with this PKCS#7 object + @since 2.1.6 + + + Get the X.509 certificate actually used to sign the digest. + @return the X.509 certificate actually used to sign the digest + + + Helper method that creates the collection of certificates + used for the main signature based on the complete list + of certificates and the sign certificate. + + + Get the X.509 certificate revocation lists associated with this PKCS#7 object + @return the X.509 certificate revocation lists associated with this PKCS#7 object + + + Helper method that tries to construct the CRLs. + + + BouncyCastle BasicOCSPResp + + + Gets the OCSP basic response if there is one. + @return the OCSP basic response or null + @since 2.1.6 + + + Checks if OCSP revocation refers to the document signing certificate. + @return true if it checks, false otherwise + @since 2.1.6 + + + Helper method that creates the BasicOCSPResp object. + @param seq + @throws IOException + + + True if there's a PAdES LTV time stamp. + + + BouncyCastle TimeStampToken. + + + Check if it's a PAdES-LTV time stamp. + @return true if it's a PAdES-LTV time stamp, false otherwise + + + Gets the timestamp token if there is one. + @return the timestamp token or null + @since 2.1.6 + + + Gets the timestamp date + @return a date + @since 2.1.6 + + + Returns the filter subtype. + + + Returns the encryption algorithm + @return the name of an encryption algorithm + + + Implementation of the ExternalSignature interface that can be used + when you have a PrivateKey object. + @author Paulo Soares + + + The private key object. + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Creates an ExternalSignature instance + @param pk a PrivateKey object + @param hashAlgorithm the hash algorithm (e.g. "SHA-1", "SHA-256",...) + @param provider the security provider (e.g. "BC") + + + Creates a message digest using the hash algorithm + and signs it using the encryption algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @see com.itextpdf.text.pdf.security.ExternalSignature#sign(byte[]) + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + The Logger instance + + + A key store against which certificates can be verified. + + + Creates a RootStoreVerifier in a chain of verifiers. + + @param verifier + the next verifier in the chain + + + Sets the Key Store against which a certificate can be checked. + + @param keyStore + a root store + + + Verifies a single certificate against a key store (if present). + + @param signCert + the certificate to verify + @param issuerCert + the issuer certificate + @param signDate + the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + A list of IDs that are used by the security classes + + + Class that contains a field lock action and + an array of the fields that are involved. + + + Can be /All, /Exclude or /Include + + + An array of PdfString values with fieldnames + + + Creates a FieldLock instance + + + Getter for the field lock action. + + + Getter for the fields involved in the lock action. + + + toString method + + + Is the signature a cerification signature (true) or an approval signature (false)? + + + Is form filling allowed by this signature? + + + Is adding annotations allowed by this signature? + + + Does this signature lock specific fields? + + + Creates an object that can inform you about the type of signature + in a signature dictionary as well as some of the permissions + defined by the signature. + + + Getter to find out if the signature is a certification signature. + @return true if the signature is a certification signature, false for an approval signature. + + + Getter to find out if filling out fields is allowed after signing. + @return true if filling out fields is allowed + + + Getter to find out if adding annotations is allowed after signing. + @return true if adding annotations is allowed + + + Getter for the field lock actions, and fields that are impacted by the action + @return an Array with field names + + + Time Stamp Authority Client interface implementation using Bouncy Castle + org.bouncycastle.tsp package. +

    + Created by Aiken Sam, 2006-11-15, refactored by Martin Brunecky, 07/15/2007 + for ease of subclassing. +

    + @since 2.1.6 +
    + + The Logger instance. + + + URL of the Time Stamp Authority + + + TSA Username + + + TSA password + + + An interface that allows you to inspect the timestamp info. + + + The default value for the hash algorithm + + + Estimate of the received time stamp token + + + The default value for the hash algorithm + + + Hash algorithm + + + TSA request policy + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + + + Constructor. + Note the token size estimate is updated by each call, as the token + size is not likely to change (as long as we call the same TSA using + the same imprint length). + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + @param tokSzEstimate int - estimated size of received time stamp token (DER encoded) + + + @param tsaInfo the tsaInfo to set + + + Get the token size estimate. + Returned value reflects the result of the last succesfull call, padded + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint data imprint to be time-stamped + @return encoded, TSA signed data of the timeStampToken + + + Get timestamp token - communications layer + @return - byte[] - TSA response, raw bytes (RFC 3161 encoded) + + + Interface you can implement and pass to TSAClientBouncyCastle in case + you want to do something with the information returned + + + When a timestamp is created using TSAClientBouncyCastle, + this method is triggered passing an object that contains + info about the timestamp and the time stamping authority. + @param info a TimeStampTokenInfo object + + + An exception that is thrown when something is wrong with a certificate. + + + Creates a VerificationException + + + The certificate that was verified successfully. + + + The CertificateVerifier that was used for verifying. + + + The reason why the certificate verified successfully. + + + Creates a VerificationOK object + @param certificate the certificate that was successfully verified + @param verifierClass the class that was used for verification + @param message the reason why the certificate could be verified + + + A single String explaining which certificate was verified, how and why. + @see java.lang.Object#toString() + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + + + + The certificate with the private key + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + The certificate with the private key + The hash algorithm for the signature. As the Windows CAPI is used + to do the signature the only hash guaranteed to exist is SHA-1 + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + + Generates a list of numbers from a string. + @param ranges the comma separated ranges + @param maxNumber the maximum number in the range + @return a list with the numbers as Integer + + + Implements a shading pattern as a Color. + + @author Paulo Soares + + + + Creates a new instance of SimpleBookmark + + + Gets number of indirect. If type of directed indirect is PAGES, it refers PAGE object through KIDS. + (Contributed by Kazuya Ujihara) + @param indirect + 2004-06-13 + + + Gets a List with the bookmarks. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @return a List with the bookmarks or null if the + document doesn't have any + + + Gets a List with the bookmarks that are children of outline. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @param outline the outline dictionary to get bookmarks from + @param includeRoot indicates if to include outline parameter itself into returned list of bookmarks + @return a List with the bookmarks or null if the + document doesn't have any + + + Removes the bookmark entries for a number of page ranges. The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageRange the page ranges, always in pairs. + + + For the pages in range add the pageShift to the page number. + The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageShift the number to add to the pages in range + @param pageRange the page ranges, always in pairs. It can be null + to include all the pages + + + Exports the bookmarks to XML. Only of use if the generation is to be include in + some other XML document. + @param list the bookmarks + @param out the export destination. The writer is not closed + @param indent the indentation level. Pretty printing significant only. Use -1 for no indents. + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + + Exports the bookmarks to XML. + @param list the bookmarks + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the bookmarks from XML. + @param in the XML source. The stream is not closed + @throws IOException on error + @return the bookmarks + + + Import the bookmarks from XML. + @param in the XML source. The reader is not closed + @throws IOException on error + @return the bookmarks + + + + @author Paulo Soares + + + + Exports the bookmarks to XML. + @param names the names + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the names from XML. + @param inp the XML source. The stream is not closed + @throws IOException on error + @return the names + + + Import the names from XML. + @param inp the XML source. The reader is not closed + @throws IOException on error + @return the names + + + + @author psoares + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + @return an escaped byte array + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + + + Converts an array of unsigned 16bit numbers to an array of bytes. + The input values are presented as chars for convenience. + + @param chars the array of 16bit numbers that should be converted + @return the resulting byte array, twice as large as the input + + + Supports text, combo and list fields generating the correct appearances. + All the option in the Acrobat GUI are supported in an easy to use API. + @author Paulo Soares + + + Holds value of property defaultText. + + + Holds value of property choices. + + + Holds value of property choiceExports. + + + Holds value of property choiceSelection. + + + Represents the /TI value + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Obfuscates a password String. + Every character is replaced by an asterisk (*). + + @param text + @return String + @since 2.1.5 + + + Get the PdfAppearance of a text or combo field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Get the PdfAppearance of a list field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Gets a new text field. + @throws IOException on error + @throws DocumentException on error + @return a new text field + + + Gets a new combo field. + @throws IOException on error + @throws DocumentException on error + @return a new combo field + + + Gets a new list field. + @throws IOException on error + @throws DocumentException on error + @return a new list field + + + Sets the default text. It is only meaningful for text fields. + @param defaultText the default text + + + Sets the choices to be presented to the user in list/combo + fields. + @param choices the choices to be presented to the user + + + Sets the export values in list/combo fields. If this array + is null then the choice values will also be used + as the export values. + @param choiceExports the export values in list/combo fields + + + Sets the zero based index of the selected item. + @param choiceSelection the zero based index of the selected item + + + Sets the top visible choice for lists; + + @since 5.5.3 + @param visibleTopChoice index of the first visible item (zero-based array) + Returns the index of the top visible choice of a list. Default is -1. + @return the index of the top visible choice + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Holds value of property substitutionFonts. + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Holds value of property extensionFont. + + + Sets the extensionFont. This font will be searched before the + substitution fonts. It may be null. + @param extensionFont New value of property extensionFont. + + + Reads a Truetype font + + @author Paulo Soares + + + The code pages possible for a True Type font. + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[2] where position 0 + is the offset from the start of the file and position 1 is the length + of the table. + + + The file in use. + + + The file name. + + + The offset from the start of the file to the table directory. + It is 0 for TTF and may vary for TTC depending on the chosen font. + + + The index for the TTC font. It is an empty string for a + TTF file. + + + The style modifier + + + The content of table 'head'. + + + The content of table 'hhea'. + + + The content of table 'OS/2'. + + + The width of the glyphs. This is essentially the content of table + 'hmtx' normalized to 1000 units. + + + The map containing the code information for the table 'cmap', encoding 1.0. + The key is the code and the value is an int[2] where position 0 + is the glyph number and position 1 is the glyph width normalized to 1000 + units. + + + + + By James for unicode Ext.B + + + + The map containing the kerning information. It represents the content of + table 'kern'. The key is an Integer where the top 16 bits + are the glyph number for the first character and the lower 16 bits are the + glyph number for the second character. The value is the amount of kerning in + normalized 1000 units as an Integer. This value is usually negative. + + + The font name. + This name is usually extracted from the table 'name' with + the 'Name ID' 6. + + + The font subfamily + This subFamily name is usually extracted from the table 'name' with + the 'Name ID' 2 or 'Name ID' 17. + + + The full name of the font 'Name ID' 1 or 'Name ID' 16 + + + All the names auf the Names-Table + + + The family name of the font + + + + true if all the glyphs have the same width. + + + The components of table 'head'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'hhea'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'OS/2'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + This constructor is present to allow extending the class. + + + Creates a new TrueType font. + @param ttFile the location of the font on file. The file must end in '.ttf' or + '.ttc' but can have modifiers after the name + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the name from a composed TTC file name. + If I have for input "myfont.ttc,2" the return will + be "myfont.ttc". + @param name the full name + @return the simple file name + + + Reads the tables 'head', 'hhea', 'OS/2', 'post' and 'maxp' filling several variables. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the Postscript font name. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + @return the Postscript font name + + + Extracts the names of the font in all the languages available. + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Extracts all the names of the names-Table + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Reads the font data. + @param ttfAfm the font as a byte array, possibly null + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Reads a Unicode string from the font file. Each character is + represented by two bytes. + @param length the length of bytes to read. The string will have length/2 + characters + @return the string read + @throws IOException the font file could not be read + + + Reads the glyphs widths. The widths are extracted from the table 'hmtx'. + The glyphs are normalized to 1000 units. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets a glyph width. + @param glyph the glyph to get the width of + @return the width of the glyph in normalized 1000 units + + + Reads the several maps from the table 'cmap'. The maps of interest are 1.0 for symbolic + fonts and 3.1 for all others. A symbolic font is defined as having the map 3.0. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 0 is the Apple standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 4 is the Microsoft standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 6 is a trimmed table mapping. It is similar to format 0 but can have + less than 256 entries. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + Reads the kerning information from the 'kern' table. + @throws IOException the font file could not be read + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Gets the width from the font according to the unicode char c. + If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Generates the font descriptor for this font. + @return the PdfDictionary containing the font descriptor or null + @param subsetPrefix the subset prefix + @param fontStream the indirect reference to a PdfStream containing the font or null + @throws DocumentException if there is an error + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param subsetPrefix the subset prefx + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + @throws DocumentException if there is an error + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + If this font file is using the Compact Font File Format, then this method + will return the raw bytes needed for the font stream. If this method is + ever made public: make sure to add a test if (cff == true). + @return a byte array + @since 2.1.3 + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Gets the postscript font name. + @return the postscript font name + + + Gets the code pages supported by the font. + @return the code pages supported by the font + + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Checks whether this font may be used with winansi encoding. + + @return true if the font can be correctly used with winansi encodings + + + Subsets a True Type font by removing the unneeded glyphs from + the font. + + @author Paulo Soares + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[3] where position 0 + is the checksum, position 1 is the offset from the start of the file + and position 2 is the length of the table. + + + The file in use. + + + The file name. + + + Creates a new TrueTypeFontSubSet + @param directoryOffset The offset from the start of the file to the table directory + @param fileName the file name of the font + @param glyphsUsed the glyphs used + @param includeCmap true if the table cmap is to be included in the generated font + + + Does the actual work of subsetting the font. + @throws IOException on error + @throws DocumentException on error + @return the subset font + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Represents a True Type font with Unicode encoding. All the character + in the font can be used directly by using the encoding Identity-H or + Identity-V. This is the only way to represent some character sets such + as Thai. + @author Paulo Soares + + + Creates a new TrueType font addressed by Unicode characters. The font + will always be embedded. + @param ttFile the location of the font on file. The file must end in '.ttf'. + The modifiers after the name are ignored. + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Creates a ToUnicode CMap to allow copy and paste from Acrobat. + @param metrics metrics[0] contains the glyph index and metrics[2] + contains the Unicode code + @throws DocumentException on error + @return the stream representing this CMap or null + + + Gets an hex string in the format "<HHHH>". + @param n the number + @return the hex string + + + Generates the CIDFontTyte2 dictionary. + @param fontDescriptor the indirect reference to the font descriptor + @param subsetPrefix the subset prefix + @param metrics the horizontal width metrics + @return a stream + + + Generates the font dictionary. + @param descendant the descendant dictionary + @param subsetPrefix the subset prefix + @param toUnicode the ToUnicode stream + @return the stream + + + The method used to sort the metrics array. + @param o1 the first element + @param o2 the second element + @return the comparisation + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + A forbidden operation. Will throw a null pointer exception. + @param text the text + @return always null + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Reads a Type1 font + + @author Paulo Soares + + + The PFB file if the input was made with a byte array. + + + The Postscript font name. + + + The full name of the font. + + + The family name of the font. + + + The weight of the font: normal, bold, etc. + + + The italic angle of the font, usually 0.0 or negative. + + + true if all the characters have the same + width. + + + The character set of the font. + + + The llx of the FontBox. + + + The lly of the FontBox. + + + The lurx of the FontBox. + + + The ury of the FontBox. + + + The underline position. + + + The underline thickness. + + + The font's encoding name. This encoding is 'StandardEncoding' or + 'AdobeStandardEncoding' for a font that can be totally encoded + according to the characters names. For all other names the + font is treated as symbolic. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + Represents the section CharMetrics in the AFM file. Each + value of this array contains a Object[4] with an + Integer, Integer, String and int[]. This is the code, width, name and char bbox. + The key is the name of the char and also an Integer with the char number. + + + Represents the section KernPairs in the AFM file. The key is + the name of the first character and the value is a Object[] + with 2 elements for each kern pair. Position 0 is the name of + the second character and position 1 is the kerning distance. This is + repeated for all the pairs. + + + The file in use. + + + true if this font is one of the 14 built in fonts. + + + Types of records in a PFB file. ASCII is 1 and BINARY is 2. + They have to appear in the PFB file in this sequence. + + + Creates a new Type1 font. + @param ttfAfm the AFM file if the input is made with a byte array + @param pfb the PFB file if the input is made with a byte array + @param afmFile the name of one of the 14 built-in fonts or the location of an AFM file. The file must end in '.afm' + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + Gets the width from the font according to the name or, + if the name is null, meaning it is a symbolic font, + the char c. + @param c the char if the font is symbolic + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode characters. The characters + are converted to names and this names are used to find the kerning + pairs in the Hashtable KernPairs. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Reads the font metrics + @param rf the AFM file + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + If the embedded flag is false or if the font is + one of the 14 built in types, it returns null, + otherwise the font is read and output in a PdfStream object. + @return the PdfStream containing the font or null + @throws DocumentException if there is an error reading the font + + + Generates the font descriptor for this font or null if it is + one of the 14 built in fonts. + @param fontStream the indirect reference to a PdfStream containing the font or null + @return the PdfDictionary containing the font descriptor or null + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the postscript font name. + @return the postscript font name + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + A class to support Type3 fonts. + + + Creates a Type3 font. + @param writer the writer + @param chars an array of chars corresponding to the glyphs used (not used, prisent for compability only) + @param colorized if true the font may specify color, if false no color commands are allowed + and only images as masks can be used + + + + Defines a glyph. If the character was already defined it will return the same content + @param c the character to match this glyph. + @param wx the advance this character will have + @param llx the X lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param lly the Y lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param urx the X upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param ury the Y upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @return a content where the glyph can be defined + + + Always returns null, because you can't get the FontStream of a Type3 font. + @return null + @since 2.1.3 + + + The content where Type3 glyphs are written to. + + + Writes text vertically. Note that the naming is done according + to horizontal text although it referrs to vertical text. + A line with the alignment Element.LEFT_ALIGN will actually + be top aligned. + + + Signals that there are no more text available. + + + Signals that there is no more column. + + + The chunks that form the text. + + + The PdfContent where the text will be written to. + + + The column Element. Default is left Element. + + + Marks the chunks to be eliminated when the line is written. + + + The chunk created by the splitting. + + + The chunk created by the splitting. + + + The leading + + + The X coordinate. + + + The Y coordinate. + + + The maximum number of vertical lines. + + + The height of the text. + + + Creates new VerticalText + @param text the place where the text will be written to. Can + be a template. + + + Adds a Phrase to the current text array. + @param phrase the text + + + Adds a Chunk to the current text array. + @param chunk the text + + + Sets the layout. + @param startX the top right X line position + @param startY the top right Y line position + @param height the height of the lines + @param maxLines the maximum number of lines + @param leading the separation between the lines + + + Gets the separation between the vertical lines. + @return the vertical line separation + + + Creates a line from the chunk array. + @param width the width of the line + @return the line or null if no more chunks + + + Normalizes the list of chunks when the line is accepted. + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Sets the new text origin. + @param startX the X coordinate + @param startY the Y coordinate + + + Gets the X coordinate where the next line will be writen. This value will change + after each call to go(). + @return the X coordinate + + + Gets the Y coordinate where the next line will be writen. + @return the Y coordinate + + + Gets the maximum number of available lines. This value will change + after each call to go(). + @return Value of property maxLines. + + + Gets the height of the line + @return the height + + + Gets the Element. + @return the alignment + + + Processes XFA forms. + @author Paulo Soares + + + An empty constructor to build on. + + + Return the XFA Object, could be an array, could be a Stream. + Returns null f no XFA Object is present. + @param reader a PdfReader instance + @return the XFA object + @since 2.1.3 + + + A constructor from a PdfReader. It basically does everything + from finding the XFA stream to the XML parsing. + @param reader the reader + @throws java.io.IOException on error + @throws javax.xml.parsers.ParserConfigurationException on error + @throws org.xml.sax.SAXException on error + + + Extracts the nodes from the domDocument. + @since 2.1.5 + + + Some XFA forms don't have a datasets node. + If this is the case, we have to add one. + + + Sets the XFA key from a byte array. The old XFA is erased. + @param form the data + @param reader the reader + @param writer the writer + @throws java.io.IOException on error + + + Sets the XFA key from the instance data. The old XFA is erased. + @param writer the writer + @throws java.io.IOException on error + + + Serializes a XML document to a byte array. + @param n the XML document + @throws java.io.IOException on error + @return the serialized XML document + + + Returns true if it is a XFA form. + @return true if it is a XFA form + + + Gets the top level DOM document. + @return the top level DOM document + + + Finds the complete field name contained in the "classic" forms from a partial + name. + @param name the complete or partial name + @param af the fields + @return the complete name or null if not found + + + Finds the complete SOM name contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the complete name or null if not found + + + Finds the Node contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the Node or null if not found + + + Gets all the text contained in the child nodes of this node. + @param n the Node + @return the text found or "" if no text was found + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param n the Node to add the text to + @param text the text to add + + + Sets the PdfReader to be used by this instance. + @param reader the PdfReader to be used by this instance + + + Checks if this XFA form was changed. + @return true if this XFA form was changed + + + A structure to store each part of a SOM name and link it to the next part + beginning from the lower hierarchie. + + + Gets the full name by traversing the hiearchie using only the + index 0. + @return the full name + + + Search the current node for a similar name. A similar name starts + with the same name but has a differnt index. For example, "detail[3]" + is similar to "detail[9]". The main use is to discard names that + correspond to out of bounds records. + @param name the name to search + @return true if a similitude was found + + + Another stack implementation. The main use is to facilitate + the porting to other languages. + + + Looks at the object at the top of this stack without removing it from the stack. + @return the object at the top of this stack + + + Removes the object at the top of this stack and returns that object as the value of this function. + @return the object at the top of this stack + + + Pushes an item onto the top of this stack. + @param item the item to be pushed onto this stack + @return the item argument + + + Tests if this stack is empty. + @return true if and only if this stack contains no items; false otherwise + + + A class for some basic SOM processing. + + + The order the names appear in the XML, depth first. + + + The mapping of full names to nodes. + + + The data to do a search from the bottom hierarchie. + + + A stack to be used when parsing. + + + A temporary store for the repetition count. + + + Escapes a SOM string fragment replacing "." with "\.". + @param s the unescaped string + @return the escaped string + + + Unescapes a SOM string fragment replacing "\." with ".". + @param s the escaped string + @return the unescaped string + + + Outputs the stack as the sequence of elements separated + by '.'. + @return the stack as the sequence of elements separated by '.' + + + Gets the name with the #subform removed. + @param s the long name + @return the short name + + + Adds a SOM name to the search node chain. + @param unstack the SOM name + + + Adds a SOM name to the search node chain. + @param inverseSearch the start point + @param stack the stack with the separeted SOM parts + @param unstack the full name + + + Searchs the SOM hiearchie from the bottom. + @param parts the SOM parts + @return the full name or null if not found + + + Splits a SOM name in the individual parts. + @param name the full SOM name + @return the split name + + + Gets the order the names appear in the XML, depth first. + @return the order the names appear in the XML, depth first + + + Gets the mapping of full names to nodes. + @return the mapping of full names to nodes + + + Gets the data to do a search from the bottom hierarchie. + @return the data to do a search from the bottom hierarchie + + + Processes the datasets section in the XFA form. + + + Creates a new instance from the datasets node. This expects + not the datasets but the data node that comes below. + @param n the datasets node + + + Inserts a new Node that will match the short name. + @param n the datasets top Node + @param shortName the short name + @return the new Node of the inserted name + + + A class to process "classic" fields. + + + Creates a new instance from a Collection with the full names. + @param items the Collection + + + Gets the mapping from short names to long names. A long + name may contain the #subform name part. + @return the mapping from short names to long names + + + Processes the template section in the XFA form. + + + Creates a new instance from the datasets node. + @param n the template node + + + Gets the field type as described in the template section of the XFA. + @param s the exact template name + @return the field type or null if not found + + + true if it's a dynamic form; false + if it's a static form. + @return true if it's a dynamic form; false + if it's a static form + + + Gets the class that contains the template processing section of the XFA. + @return the class that contains the template processing section of the XFA + + + Gets the class that contains the datasets processing section of the XFA. + @return the class that contains the datasets processing section of the XFA + + + Gets the class that contains the "classic" fields processing. + @return the class that contains the "classic" fields processing + + + Gets the Node that corresponds to the datasets part. + @return the Node that corresponds to the datasets part + + + Replaces the data under datasets/data. + @since iText 5.0.0 + + + Helps to locate xml stream inside PDF document with Xfa form. + + + Gets Document to sign + + + Save document as single XML stream in AcroForm. + @param document signed document + @throws IOException + @throws DocumentException + + + Constructor for xpath expression for signing XfaForm + + + Possible xdp packages to sign + + + Empty constructor, no transform. + + + Construct for Xpath expression. Depends from selected xdp package. + @param xdpPackage + + + Get XPath expression + + + Reads a XFDF. + @author Leonard Rosenthol (leonardr@pdfsages.com) + + + Storage for field values if there's more than one value for a field. + @since 2.1.4 + + + Reads an XFDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an XFDF form. + @param xfdfIn the byte array with the form + @throws IOException on error + + + Reads an XFDF form. + @param is an InputStream to read the form + @throws IOException on error + @since 5.0.1 + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field value. + @param name the fully qualified field name + @return the field's value + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the field values for a list or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field values or null + @since 2.1.4 + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + Constructs XmlSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Holds value of property xades:SigningTime. + + + Holds value of property xades:Description. + + + Holds value of property xades:MimeType. + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + Gets the signature date. + @return the signature date + + + Sets the signature date. + @param signDate the signature date + + + Helps to locate xml stream + @return XmlLocator, cannot be null. + + + Constructor for xpath expression in case signing only part of XML document. + @return XpathConstructor, can be null + + + Close PdfStamper + @throws IOException + @throws DocumentException + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + Encapsulates filter behavior for PDF streams. Classes generally interace with this + using the static GetDefaultFilterHandlers() method, then obtain the desired {@link IFilterHandler} + via a lookup. + @since 5.0.4 + + + The main interface for creating a new {@link IFilterHandler} + + + The default {@link IFilterHandler}s used by iText + + + @return the default {@link IFilterHandler}s used by iText + + + Creates a {@link MemoryLimitsAwareOutputStream} which will be used for decompression of the passed pdf stream. + + @param streamDictionary the pdf stream which is going to be decompressed. + @return the {@link ByteArrayOutputStream} which will be used for decompression of the passed pdf stream + + + Handles FLATEDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles LZWDECODE filter + + + Handles CCITTFAXDECODE filter + + + A filter that doesn't modify the stream at all + + + Handles RUNLENGTHDECODE filter + + + A PdfArray object consisting of nothing but PdfNumber objects + @since 5.1.0 + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers float values + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers a List containing PdfNumber objects + + + Signals that a table will continue in the next page. + + @since 5.0.6 + + + This method is called to indicate that table is being split. It's called + before the tableLayout method and before the table is drawn. + + @param table the PdfPTable in use + + + Wrapper class for PdfCopy and PdfSmartCopy. + Allows you to concatenate existing PDF documents with much less code. + + + The Document object for PdfCopy. + + + The actual PdfWriter + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + @param smart do we want PdfCopy to detect redundant content? + + + Adds the pages from an existing PDF document. + @param reader the reader for the existing PDF document + @return the number of pages that were added + @throws DocumentException + @throws IOException + + + Gets the PdfCopy instance so that you can add bookmarks or change preferences before you close PdfConcatenate. + + + Opens the document (if it isn't open already). + Opening the document is done implicitly. + + + We've finished writing the concatenated document. + + + The spacing before the table. + + + The spacing after the table. + + + Defines if the div should be kept on one page if possible + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual height the div would require to layout it's content + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual width the div would require to layout it's content + + + Image will be scaled to fit in the div occupied area. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Gets the type of the text element. + + @return a type + + + @see com.itextpdf.text.Element#isContent() + @since iText 2.0.8 + + + @see com.itextpdf.text.Element#isNestable() + @since iText 2.0.8 + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Serial version UID + + + Creates a new instance of PdfIsoConformanceException. + + + Creates a new instance of PdfIsoConformanceException. + @param s + + + A signature field lock dictionary. + + + Enumerates the different actions of a signature lock. + Indicates the set of fields that should be locked: + all the fields in the document, + all the fields specified in the /Fields array + all the fields except those specified in the /Fields array + + + Enumerates the different levels of permissions. + + + Creates a signature lock valid for all fields in the document. + + + Creates a signature lock for all fields in the document, + setting specific permissions. + + + Creates a signature lock for specific fields in the document. + + + Creates a signature lock for specific fields in the document. + + + Add kid to structureTreeRoot from structTreeRoot + + + + An Anchor can be a reference or a destination of a reference. + + + An Anchor is a special kind of . + It is constructed in the same way. + + + + + + + This is the name of the Anchor. + + + + + This is the reference of the Anchor. + + + + + Constructs an Anchor without specifying a leading. + + + Has nine overloads. + + + + + Constructs an Anchor with a certain leading. + + the leading + + + + Constructs an Anchor with a certain Chunk. + + a Chunk + + + + Constructs an Anchor with a certain string. + + a string + + + + Constructs an Anchor with a certain string + and a certain Font. + + a string + a Font + + + + Constructs an Anchor with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs an Anchor with a certain leading + and a certain string. + + the leading + a string + + + + Constructs an Anchor with a certain leading, + a certain string and a certain Font. + + the leading + a string + a Font + + + Constructs an Anchor with a certain Phrase. + + @param phrase a Phrase + + + + Processes the element by adding it (or the different parts) to an + + + an IElementListener + true if the element was processed successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + Applies the properties of the Anchor to a Chunk. + @param chunk the Chunk (part of the Anchor) + @param notGotoOK if true, this chunk will determine the local destination + @param localDestination true if the chunk is a local goto and the reference a local destination + @return the value of notGotoOK or false, if a previous Chunk was used to determine the local destination + + + + Gets the type of the text element. + + a type + + + + Name of this Anchor. + + + + + reference of this Anchor. + + + + + reference of this Anchor. + + an Uri + + + + An Annotation is a little note that can be added to a page + on a document. + + + + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is the type of annotation. + + + This is the title of the Annotation. + + + This is the lower left x-value + + + This is the lower left y-value + + + This is the upper right x-value + + + This is the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + the destination in this file + + + + Creates a Screen anotation to embed media clips + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + path to the media clip file + mime type of the media + if true play on display of the page + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + a page number in this file + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + a named destination in this file + + Has nine overloads. + + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external application + parameters to pass to this application + the operation to pass to this application + the default directory to run this application in + + + + Gets the type of the text element + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was process successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + + Sets the dimensions of this annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Returns the lower left x-value. + + a value + + + + Returns the lower left y-value. + + a value + + + + Returns the uppper right x-value. + + a value + + + + Returns the uppper right y-value. + + a value + + + + Returns the lower left x-value. + + the default value + a value + + + + Returns the lower left y-value. + + the default value + a value + + + + Returns the upper right x-value. + + the default value + a value + + + + Returns the upper right y-value. + + the default value + a value + + + + Returns the type of this Annotation. + + a type + + + + Returns the title of this Annotation. + + a name + + + + Gets the content of this Annotation. + + a reference + + + + Gets the content of this Annotation. + + a reference + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Signals an attempt to create an Element that hasn't got the right form. + + + + + + + Base class for Color, serves as wrapper class for + to allow extension. + + + + Construct a new BaseColor. + @param red the value for the red gamma + @param green the value for the green gamma + @param blue the value for the blue gamma + @param alpha the value for the alpha gamma + + + @param red + @param green + @param blue + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + @param alpha + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + + + Construct a BaseColor by setting the combined value. + @param argb + + + Construct a BaseColor by System.Drawing.Color. + @param color + + + @return the combined color value + + + + @return the value for red + + + + @return the value for green + + + + @return the value for blue + + + + @return the value for the alpha channel + + + Make this BaseColor brighter. Factor used is 0.7. + @return the new BaseColor + + + Make this color darker. Factor used is 0.7 + @return the new BaseColor + + + + A Chapter is a special Section. + + + A chapter number has to be created using a Paragraph as title + and an int as chapter number. The chapter number is shown be + default. If you don't want to see the chapter number, you have to set the + numberdepth to 0. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + chapter2.SetNumberDepth(0); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new BaseColor(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + + + + + Constructs a new Chapter. + @param number the Chapter number + + + + Constructs a new Chapter. + + the Chapter title (as a Paragraph) + the Chapter number + + Has three overloads. + + + + + Constructs a new Chapter. + + the Chapter title (as a string) + the Chapter number + + Has three overloads. + + + + + Gets the type of the text element. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Chapter with auto numbering. + + @author Michael Niedermair + + + Is the chapter number already set? + @since 2.1.4 + + + Create a new object. + + @param para the Chapter title (as a Paragraph) + + + Create a new objet. + + @param title the Chapter title (as a String) + + + Create a new section for this chapter and ad it. + + @param title the Section title (as a String) + @return Returns the new section. + + + Create a new section for this chapter and add it. + + @param title the Section title (as a Paragraph) + @return Returns the new section. + + + Changes the Chapter number. + @param number the new chapter number + @since 2.1.4 + + + + This is the smallest significant part of text that can be added to a document. + + + Most elements can be divided in one or more Chunks. + A chunk is a string with a certain Font. + all other layoutparameters should be defined in the object to which + this chunk of text is added. + + + + Chunk chunk = new Chunk("Hello world", FontFactory.GetFont(FontFactory.COURIER, 20, Font.ITALIC, new BaseColor(255, 0, 0))); + document.Add(chunk); + + + + + The character stand in for an image or a separator. + + + This is a Chunk containing a newline. + + + This is a Chunk containing a newpage. + + + This is the content of this chunk of text. + + + This is the Font of this chunk of text. + + + Contains some of the attributes for this Chunk. + + + + Empty constructor. + + + Has six overloads. + + + + A Chunk copy constructor. + @param ck the Chunk to be copied + + + + Constructs a chunk of text with a certain content and a certain Font. + + the content + the font + + + + Constructs a chunk of text with a certain content, without specifying a Font. + + the content + + + Constructs a chunk of text with a char and a certain Font. + + @param c the content + @param font the font + + + Constructs a chunk of text with a char, without specifying a Font. + + @param c the content + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + + + Key for drawInterface of the Separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @param vertical true if this is a vertical separator + @since 2.1.2 + + + Key for drawInterface of the tab. + @since 2.1.2 + + + Key for tab stops of the tab. + @since 5.4.1 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @since 2.1.2 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @param newline if true, a newline will be added if the tabPosition has already been reached. + @since 2.1.2 + + + Creates a tab Chunk. + + @param tabInterval an interval that will be used if tab stops are omitted. + @param isWhitespace if true, the current tab is treated as white space. + @since 5.4.1 + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + true if the leading has to be adapted to the image + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + appends some text to this Chunk. + + a string + a StringBuilder + + + + Get/set the font of this Chunk. + + a Font + + + + Returns the content of this Chunk. + + a string + + + + Checks is this Chunk is empty. + + false if the Chunk contains other characters than space. + + + Gets the width of the Chunk in points. + @return a width in points + + + + Checks the attributes of this Chunk. + + false if there aren't any. + + + Checks the accessible attributes of this Chunk. + + @return false if there aren't any. + + + + Sets/Gets the attributes for this Chunk. + + + It may be null. + + a Hashtable + + + + Sets an arbitrary attribute. + + the key for the attribute + the value of the attribute + this Chunk + + + Key for text horizontal scaling. + + + Sets the text horizontal scaling. A value of 1 is normal and a value of 0.5f + shrinks the text to half it's width. + @param scale the horizontal scaling factor + @return this Chunk + + + Gets the horizontal scaling. + @return a percentage in float + + + Key for underline. + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param thickness the absolute thickness of the line + @param yPosition the absolute y position relative to the baseline + @return this Chunk + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param color the color of the line or null to follow + the text color + @param thickness the absolute thickness of the line + @param thicknessMul the thickness multiplication factor with the font size + @param yPosition the absolute y position relative to the baseline + @param yPositionMul the position multiplication factor with the font size + @param cap the end line cap. Allowed values are + PdfContentByte.LINE_CAP_BUTT, PdfContentByte.LINE_CAP_ROUND and + PdfContentByte.LINE_CAP_PROJECTING_SQUARE + @return this Chunk + + + Key for sub/basescript. + + + + Sets the text displacement relative to the baseline. Positive values rise the text, + negative values lower the text. + + + It can be used to implement sub/basescript. + + the displacement in points + this Chunk + + + Key for text skewing. + + + Skews the text to simulate italic and other effects. + Try alpha=0 and beta=12. + @param alpha the first angle in degrees + @param beta the second angle in degrees + @return this Chunk + + + Key for background. + + + + Sets the color of the background Chunk. + + the color of the background + this Chunk + + + Sets the color and the size of the background Chunk. + @param color the color of the background + @param extraLeft increase the size of the rectangle in the left + @param extraBottom increase the size of the rectangle in the bottom + @param extraRight increase the size of the rectangle in the right + @param extraTop increase the size of the rectangle in the top + @return this Chunk + + + Key for text rendering mode. + + + Sets the text rendering mode. It can outline text, simulate bold and make + text invisible. + @param mode the text rendering mode. It can be PdfContentByte.TEXT_RENDER_MODE_FILL, + PdfContentByte.TEXT_RENDER_MODE_STROKE, PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE + and PdfContentByte.TEXT_RENDER_MODE_INVISIBLE. + @param strokeWidth the stroke line width for the modes PdfContentByte.TEXT_RENDER_MODE_STROKE and + PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE. + @param strokeColor the stroke color or null to follow the text color + @return this Chunk + + + Key for split character. + + + + Sets the split characters. + + the SplitCharacter interface + this Chunk + + + Key for hyphenation. + + + + sets the hyphenation engine to this Chunk. + + the hyphenation engine + this Chunk + + + Key for remote goto. + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the name of the destination to go to + this Chunk + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the page of the destination to go to. First page is 1 + this Chunk + + + Key for local goto. + + + + Sets a local goto for this Chunk. + + + There must be a local destination matching the name. + + the name of the destination to go to + this Chunk + + + Key for local destination. + + + + Sets a local destination for this Chunk. + + the name for this destination + this Chunk + + + Key for generic tag. + + + + Sets the generic tag Chunk. + + + The text for this tag can be retrieved with PdfPageEvent. + + the text for the tag + this Chunk + + + Key for line-height (alternative for leading in Phrase). + + + Sets a line height tag. + + @return this Chunk + + + Key for image. + + + + Returns the image. + + an Image + + + Key for Action. + + + + Sets an action for this Chunk. + + the action + this Chunk + + + + Sets an anchor for this Chunk. + + the Uri to link to + this Chunk + + + + Sets an anchor for this Chunk. + + the url to link to + this Chunk + + + Key for newpage. + + + + Sets a new page tag. + + this Chunk + + + Key for annotation. + + + + Sets a generic annotation to this Chunk. + + the annotation + this Chunk + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Returns the hyphenation (if present). + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Key for color. + + + Key for encoding. + + + Key for character spacing. + + + Sets the character spacing. + + @param charSpace the character spacing value + @return this Chunk + + + Gets the character spacing. + + @return a value in float + + + Key for word spacing. + + + Sets the word spacing. + + @param wordSpace the word spacing value + @return this Chunk + + + Gets the word spacing. + + @return a value in float + + + Sets the textual expansion of the abbreviation or acronym. + It is highly recommend to set textuual expansion when generating PDF/UA documents. + @param value + + + + A generic Document class. + + + All kinds of Text-elements can be added to a HTMLDocument. + The Document signals all the listeners when an element + has been added.

    +

      +
    1. Once a document is created you can add some meta information. +
    2. You can also set the headers/footers. +
    3. You have to open the document before you can write content. +
    4. You can only write content (no more meta-formation!) once a document is opened. +
    5. When you change the header/footer on a certain page, this will be effective starting on the next page. +
    6. Ater closing the document, every listener (as well as its OutputStream) is closed too. +
    +
    + + + // creation of the document with a certain size and certain margins + Document document = new Document(PageSize.A4, 50, 50, 50, 50); + try { + // creation of the different writers + HtmlWriter.GetInstance(document, System.out); + PdfWriter.GetInstance(document, new FileOutputStream("text.pdf")); + // we add some meta information to the document + document.AddAuthor("Bruno Lowagie"); + document.AddSubject("This is the result of a Test."); + + // we define a header and a footer + HeaderFooter header = new HeaderFooter(new Phrase("This is a header."), false); + HeaderFooter footer = new HeaderFooter(new Phrase("This is page "), new Phrase(".")); + footer.SetAlignment(Element.ALIGN_CENTER); + document.SetHeader(header); + document.SetFooter(footer); + // we open the document for writing + document.Open(); + document.Add(new Paragraph("Hello world")); + } + catch (DocumentException de) { + Console.Error.WriteLine(de.Message); + } + document.Close(); + + +
    + + Allows the pdf documents to be produced without compression for debugging purposes. + + + Scales the WMF font size. The default value is 0.86. + + + The IDocListener. + + + Is the document open or not? + + + Has the document already been closed? + + + The size of the page. + + + margin in x direction starting from the left + + + margin in x direction starting from the right + + + margin in y direction starting from the top + + + margin in y direction starting from the bottom + + + mirroring of the top/bottom margins + @since 2.1.6 + + + Content of JavaScript onLoad function + + + Content of JavaScript onUnLoad function + + + Style class in HTML body tag + + + Current pagenumber + + + This is a chapter number in case ChapterAutoNumber is used. + + + + Constructs a new Document-object. + + + Has three overloads. + + + + + Constructs a new Document-object. + + the pageSize + + + + Constructs a new Document-object. + + the pageSize + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Adds a IDocListener to the Document. + + the new IDocListener + + + + Removes a IDocListener from the Document. + + the IDocListener that has to be removed. + + + + Adds an Element to the Document. + + the Element to add + true if the element was added, false if not + + + + Opens the document. + + + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Opens the document. + + + Version for languages that are not case-dependant. + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Sets the pagesize. + + the new pagesize + a bool + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + + + Sets the page number. + + an int + + + + Returns the current page number. + + an int + + + + Closes the document. + + + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Closes the document. + + + Version for languages that are not case-dependant. + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Adds a user defined header to the document. + + the name of the header + the content of the header + true if successful, false otherwise + + + + Adds the title to a Document. + + the title + true if successful, false otherwise + + + + Adds the subject to a Document. + + the subject + true if successful, false otherwise + + + + Adds the keywords to a Document. + + keywords to add + true if successful, false otherwise + + + + Adds the author to a Document. + + the name of the author + true if successful, false otherwise + + + + Adds the creator to a Document. + + the name of the creator + true if successful, false otherwise + + + + Adds the producer to a Document. + + true if successful, false otherwise + + + Adds a language to th document. Required for PDF/UA compatible documents. + @param language + @return true if successfull, false otherwise + + + + Adds the current date and time to a Document. + + true if successful, false otherwise + + + + Returns the left margin. + + the left margin + + + + Return the right margin. + + the right margin + + + + Returns the top margin. + + the top margin + + + + Returns the bottom margin. + + the bottom margin + + + + Returns the lower left x-coordinate. + + the lower left x-coordinate + + + + Returns the upper right x-coordinate. + + the upper right x-coordinate. + + + + Returns the upper right y-coordinate. + + the upper right y-coordinate. + + + + Returns the lower left y-coordinate. + + the lower left y-coordinate. + + + + Returns the lower left x-coordinate considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Gets the pagesize. + + the page size + + + + Checks if the document is open. + + true if the document is open + + + + Gets the JavaScript onLoad command. + + the JavaScript onLoad command. + + + + Gets the JavaScript onUnLoad command. + + the JavaScript onUnLoad command + + + + Gets the style class of the HTML body tag + + the style class of the HTML body tag + + + + + Gets the margin mirroring flag. + + @return the margin mirroring flag + + + + Signals that an error has occurred in a Document. + + + + + + + + + Constructs a new DocumentException + + + Has two overloads. + + + + + Construct a new DocumentException + + error message + + + + Constructs a DocumentException with a message and a Exception. + + a message describing the exception + an exception that has to be turned into a DocumentException + + + + An abstract Writer class for documents. + + + DocWriter is the abstract class of several writers such + as PdfWriter and HtmlWriter. + A DocWriter can be added as a DocListener + to a certain Document by getting an instance (see method + GetInstance() in the specific writer-classes). + Every Element added to the original Document + will be written to the stream of the listening + DocWriter. + + + + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + The pageSize. + + + This is the document that has to be written. + + + The stream of this writer. + + + Is the writer open for writing? + + + Do we have to pause all writing actions? + + + Closes the stream on document close + + + + Constructs a DocWriter. + + The Document that has to be written + The Stream the writer has to write to. + + + + Signals that an Element was added to the Document. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class. + + + false + + + + Signals that the Document was opened. + + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + + This does nothing. Has to be overridden if needed. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + + This does nothing. Has to be overridden if needed. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Sets the page number. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + + + Converts a string into a Byte array + according to the ISO-8859-1 codepage. + + the text to be converted + the conversion result + + + + Let the writer know that all writing has to be paused. + + + + Checks if writing is paused. + + @return true if writing temporarely has to be paused, false otherwise. + + + + Let the writer know that writing may be resumed. + + + + + Flushes the Stream. + + + + + Writes a string to the stream. + + the string to write + + + + Writes a number of tabs. + + the number of tabs to add + + + + Writes a key-value pair to the stream. + + the name of an attribute + the value of an attribute + + + + Writes a starttag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + + + + Writes the markup attributes of the specified MarkupAttributes + object to the stream. + + the MarkupAttributes to write. + + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.5 + + + This is a possible type of Element. + @since 5.3.0 + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.2 + + + This is an element thats not an element. + @see WritableDirectElement + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the center + and extra whitespace should be placed equally on + the left and right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the right + indent and extra whitespace should be placed on + the left. + + + + + A possible value for paragraph Element. This + specifies that extra whitespace should be spread + out through the rows of the paragraph with the + text lined up with the left and right indent + except on the last line which should be aligned + to the left. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + Does the same as ALIGN_JUSTIFIED but the last line is also spread out. + + + + + Pure two-dimensional encoding (Group 4) + + + + + Pure one-dimensional encoding (Group 3, 1-D) + + + + + Mixed one- and two-dimensional encoding (Group 3, 2-D) + + + + + A flag indicating whether 1-bits are to be interpreted as black pixels + and 0-bits as white pixels, + + + + + A flag indicating whether the filter expects extra 0-bits before each + encoded line so that the line begins on a byte boundary. + + + + + A flag indicating whether end-of-line bit patterns are required to be + present in the encoding. + + + + + A flag indicating whether the filter expects the encoded data to be + terminated by an end-of-block pattern, overriding the Rows + parameter. The use of this flag will set the key /EndOfBlock to false. + + + + Localizes error messages. The messages are located in the package + com.lowagie.text.error_messages in the form language_country.lng. + The internal file encoding is UTF-8 without any escape chars, it's not a + normal property file. See en.lng for more information on the internal format. + @author Paulo Soares (psoares@glintt.com) + + + Get a message without parameters. + @param key the key to the message + @return the message + + + Get a message with parameters. The parameters will replace the strings + "{1}", "{2}", ..., "{n}" found in the message. + @param key the key to the message + @param p the variable parameter + @return the message + + + Sets the language to be used globally for the error messages. The language + is a two letter lowercase country designation like "en" or "pt". The country + is an optional two letter uppercase code like "US" or "PT". + @param language the language + @param country the country + @return true if the language was found, false otherwise + @throws IOException on error + + + Sets the error messages directly from a Reader. + @param r the Reader + @throws IOException on error + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 It was written for iText 2.0.8, but moved to another package + + + Creates an exception saying the user password was incorrect. + + + Typed exception used when creating PDF syntax that isn't valid. + @since 2.1.6 + + + Creates an exception saying the PDF syntax isn't correct. + @param message some extra info about the exception + + + RuntimeException to indicate that the provided Image is invalid/corrupted. + Should only be thrown/not caught when ignoring invalid images. + @since 5.4.2 + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 + + + Creates an instance of with a message and no cause + @param message the reason why the document isn't a PDF document according to iText. + + + Creates an exception with a message and a cause + @param message the reason why the document isn't a PDF document according to iText. + @param cause the cause of the exception, if any + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document according to iText, + but it's different from the InvalidPdfException in the sense that it may + be an iText limitation (most of the times it isn't but you might have + bumped into something that has been added to the PDF specs, but that isn't + supported in iText yet). + @since 2.1.5 + + + Creates an instance of an UnsupportedPdfException. + @param message the reason why the document isn't a PDF document according to iText. + + + This class can produce String combinations representing a number built with + Greek letters (from alpha to omega, then alpha alpha, alpha beta, alpha gamma). + We are aware of the fact that the original Greek numbering is different; + See http://www.cogsci.indiana.edu/farg/harry/lan/grknum.htm#ancient + but this isn't implemented yet; the main reason being the fact that we + need a font that has the obsolete Greek characters qoppa and sampi. + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a upper case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a Greek letter combination. + @param index the original number + @return the letter combination + + + This class can produce String combinations representing a number. + "a" to "z" represent 1 to 26, "AA" represents 27, "AB" represents 28, + and so on; "ZZ" is followed by "AAA". + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'A' to 'Z'; + 1 = A, 2 = B, ..., 26 = Z, 27 = AA, 28 = AB,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z' + (a = 1, b = 2, ..., z = 26, aa = 27, ab = 28,...). + + + This class can produce String combinations representing a roman number. + + + Helper class for Roman Digits + + + part of a roman number + + + value of the roman digit + + + can the digit be used as a prefix + + + Constructs a roman digit + @param digit the roman digit + @param value the value + @param pre can it be used as a prefix + + + Array with Roman digits. + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into an upper case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a roman number. + @param index the original number + @return the roman number (lower case) + + + + Contains all the specifications of a font: fontfamily, size, style and color. + + + + Paragraph p = new Paragraph("This is a paragraph", + new Font(Font.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + the value of an undefined attribute. + + + the value of the default size. + + + the value of the fontfamily. + + + the value of the fontsize. + + + the value of the style. + + + the value of the color. + + + the external font + + + Copy constructor of a Font + @param other the font that has to be copied + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + + + + Constructs a Font. + + the external font + the size of this font + + + + Constructs a Font. + + the external font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + + + + Constructs a Font. + + the family to which this font belongs + + + + Constructs a Font. + + + Has nine overloads. + + + + + Compares this Font with another + + the other Font + a value + + + + Gets the family of this font. + + the value of the family + + + + Gets the familyname as a string. + + the familyname + + + + Sets the family using a String ("Courier", + "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats"). + + A String representing a certain font-family. + + + + Translates a string-value of a certain family + into the index that is used for this family in this class. + + A string representing a certain font-family + the corresponding index + + + + Get/set the size of this font. + + the size of this font + + + Gets the size that can be used with the calculated BaseFont. + @return the size that can be used with the calculated BaseFont + + + Gets the leading that can be used with this font. + + @param multipliedLeading + a certain multipliedLeading + @return the height of a line + + + + Gets the style of this font. + + the style of this font + + + Gets the style that can be used with the calculated BaseFont. + @return the style that can be used with the calculated BaseFont + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is underlined. + + a boolean + + + + checks if the style of this font is STRIKETHRU. + + a boolean + + + + Sets the style using a String containing one of + more of the following values: normal, bold, italic, underline, strike. + + A String representing a certain style. + + + Sets the style. + @param style the style. + + + + Translates a string-value of a certain style + into the index value is used for this style in this class. + + a string + the corresponding value + + + + Get/set the color of this font. + + the color of this font + + + + Sets the color. + + the red-value of the new color + the green-value of the new color + the blue-value of the new color + + + + Gets the BaseFont inside this object. + + the BaseFont + + + Gets the BaseFont this class represents. + For the built-in fonts a BaseFont is calculated. + @param specialEncoding true to use the special encoding for Symbol and ZapfDingbats, + false to always use Cp1252 + @return the BaseFont this class represents + + + + Checks if the properties of this font are undefined or null. +

    + If so, the standard should be used. +

    + a boolean +
    + + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this static class first and then create fonts in your code using one of the static getFont-method + without having to enter a path as parameter. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks whether the given font is contained within the object + + the name of the font + true if font is contained within the object + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this class first and then create fonts in your code using one of the getFont method + without having to enter a path as parameter. + + + + + This is a map of postscriptfontnames of True Type fonts and the path of their ttf- or ttc-file. + + + This is a map of fontfamilies. + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in windows + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + A special-version of LIST whitch use greek-letters. + + @see com.lowagie.text.List + + + Initialization + + @param symbolIndent indent + + + Initialisierung + + @param symbolIndent indent + + + Initialisierung + @param greeklower greek-char in lowercase + @param symbolIndent indent + + + change the font to SYMBOL + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + This is an Element that contains + some userdefined meta information about the document. + + + + Header header = new Header("inspired by", "William Shakespeare"); + + + + + This is the content of this chunk of text. + + + + Constructs a Header. + + the name of the meta-information + the content + + + + Returns the name of the meta information. + + a string + + + + List with the HTML translation of all the characters. + + + Set containing tags that trigger a new line. + @since iText 5.0.6 + + + Converts a String to the HTML-format of this String. + + @param string The String to convert + @return a String + + + Converts a BaseColor into a HTML representation of this BaseColor. + + @param color the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + Translates the alignment value. + + @param alignment the alignment value + @return the translated value + + + Returns true if the tag causes a new line like p, br etc. + @since iText 5.0.6 + + + Static final values of supported HTML tags and attributes. + @since 5.0.6 + @deprecated since 5.5.2 + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + The possible value of an alignment attribute. + @since 5.0.6 + + + The possible value of an alignment attribute. + @since 5.0.6 + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + This is used for inline css style information + + + Attribute for specifying externally defined CSS class. + @since 5.0.6 + + + the CSS tag for text color + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + the CSS tag for text decorations + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + Stores the hierarchy of tags along with the attributes of each tag. + @since 5.0.6 renamed from ChainedProperties + @deprecated since 5.5.2 + + + Class that stores the info about one tag in the chain. + + + A possible tag + + + The styles corresponding with the tag + + + Constructs a chained property. + @param tag an XML/HTML tag + @param attrs the tag's attributes + + + A list of chained properties representing the tag hierarchy. + + + Creates a new instance of ChainedProperties + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns a value as soon as a match + is found or null if the key can't be found. + @param key the key of the property + @return the value of the property + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns true as soon as a match is + found or false if the key can't be found. + @param key the key of the property + @return true if the key is found + + + Adds a tag and its corresponding properties to the chain. + @param tag the tags that needs to be added to the chain + @param props the tag's attributes + + + If the properties contain a font size, the size may need to + be adjusted based on font sizes higher in the hierarchy. + @param attrs the attributes that may have to be updated + @since 5.0.6 (renamed) + + + Old iText class that allows you to convert HTML to PDF. + We've completely rewritten HTML to PDF conversion and we made it a separate project named XML Worker. + @deprecated since 5.5.2; please switch to XML Worker instead (this is a separate project) + + + DocListener that will listen to the Elements + produced by parsing the HTML. + This can be a com.lowagie.text.Document adding + the elements to a Document directly, or an + HTMLWorker instance strong the objects in a List + + + The map with all the supported tags. + @since 5.0.6 + + + The object defining all the styles. + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + @param tags A map containing the supported tags + @param style A StyleSheet + @since 5.0.6 + + + Sets the map with supported tags. + @param tags + @since 5.0.6 + + + Setter for the StyleSheet + @param style the StyleSheet + + + Parses content read from a java.io.Reader object. + @param reader the content + @throws IOException + + + Stack with the Elements that already have been processed. + @since iText 5.0.6 (private => protected) + + + Keeps the content of the current paragraph + @since iText 5.0.6 (private => protected) + + + The current hierarchy chain of tags. + @since 5.0.6 + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Dictionary) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + Adds a new line to the currentParagraph. + @since 5.0.6 + + + Flushes the current paragraph, indicating that we're starting + a new block. + If the stack is empty, the paragraph is added to the document. + Otherwise the Paragraph is added to the stack. + @since 5.0.6 + + + Stacks the current paragraph, indicating that we're starting + a new span. + @since 5.0.6 + + + Pushes an element to the Stack. + @param element + @since 5.0.6 + + + Updates the chain with a new tag and new attributes. + @param tag the new tag + @param attrs the corresponding attributes + @since 5.0.6 + + + Updates the chain by removing a tag. + @param tag the new tag + @since 5.0.6 + + + Key used to store the image provider in the providers map. + @since 5.0.6 + + + Key used to store the image processor in the providers map. + @since 5.0.6 + + + Key used to store the image store in the providers map. + @since 5.0.6 + + + Key used to store the image baseurl provider in the providers map. + @since 5.0.6 + + + Key used to store the font provider in the providers map. + @since 5.0.6 + + + Key used to store the link provider in the providers map. + @since 5.0.6 + + + IDictionary containing providers such as a FontProvider or ImageProvider. + @since 5.0.6 (renamed from interfaceProps) + + + Setter for the providers. + If a FontProvider is added, the ElementFactory is updated. + @param providers a IDictionary with different providers + @since 5.0.6 + + + Factory that is able to create iText Element objects. + @since 5.0.6 + + + Creates a Chunk using the factory. + @param content the content of the chunk + @return a Chunk with content + @since 5.0.6 + + + Creates a Paragraph using the factory. + @return a Paragraph without any content + @since 5.0.6 + + + Creates a List object. + @param tag should be "ol" or "ul" + @return a List object + @since 5.0.6 + + + Creates a ListItem object. + @return a ListItem object + @since 5.0.6 + + + Creates a LineSeparator object. + @param attrs properties of the LineSeparator + @return a LineSeparator object + @since 5.0.6 + + + Creates an Image object. + @param attrs properties of the Image + @return an Image object (or null if the Image couldn't be found) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Creates a Cell. + @param tag the tag + @return a CellWrapper object + @since 5.0.6 + + + Adds a link to the current paragraph. + @since 5.0.6 + + + Fetches the List from the Stack and adds it to + the TextElementArray on top of the Stack, + or to the Document if the Stack is empty. + @throws DocumentException + @since 5.0.6 + + + Looks for the List object on the Stack, + and adds the ListItem to the List. + @throws DocumentException + @since 5.0.6 + + + Processes an Image. + @param img + @param attrs + @throws DocumentException + @since 5.0.6 + + + Processes the Table. + @throws DocumentException + @since 5.0.6 + + + Gets the TableWrapper from the Stack and adds a new row. + @since 5.0.6 + + + Stack to keep track of table tags. + + + Boolean to keep track of TR tags. + + + Boolean to keep track of TD and TH tags + + + Boolean to keep track of LI tags + + + Boolean to keep track of PRE tags + @since 5.0.6 renamed from isPRE + + + Indicates if text needs to be skipped. + @since iText 5.0.6 (private => protected) + + + Pushes the values of pendingTR and pendingTD + to a state stack. + @since 5.0.6 + + + Pops the values of pendingTR and pendingTD + from a state stack. + @since 5.0.6 + + + @return the pendingTR + @since 5.0.6 + + + @param pendingTR the pendingTR to set + @since 5.0.6 + + + @return the pendingTD + @since 5.0.6 + + + @param pendingTD the pendingTD to set + @since 5.0.6 + + + @return the pendingLI + @since 5.0.6 + + + @param pendingLI the pendingLI to set + @since 5.0.6 + + + @return the insidePRE + @since 5.0.6 + + + @param insidePRE the insidePRE to set + @since 5.0.6 + + + @return the skipText + @since 5.0.6 + + + @param skipText the skipText to set + @since 5.0.6 + + + The resulting list of elements. + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param tags a map containing supported tags and their processors + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + @since 5.0.6 + + + @see com.itextpdf.text.ElementListener#add(com.itextpdf.text.Element) + + + @see com.itextpdf.text.DocListener#close() + + + @see com.itextpdf.text.DocListener#newPage() + + + @see com.itextpdf.text.DocListener#open() + + + @see com.itextpdf.text.DocListener#resetPageCount() + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + @since 2.1.6 + + + @see com.itextpdf.text.DocListener#setMargins(float, float, float, float) + + + @see com.itextpdf.text.DocListener#setPageCount(int) + + + @see com.itextpdf.text.DocListener#setPageSize(com.itextpdf.text.Rectangle) + + + Sets the providers. + @deprecated use SetProviders() instead + + + Gets the providers + @deprecated use GetProviders() instead + + + @deprecated since 5.5.2 + + + Old class to define styles for HTMLWorker. + We've completely rewritten HTML to PDF functionality; see project XML Worker. + XML Worker is able to parse CSS files and "style" attribute values. + @deprecated since 5.5.2 + + + IDictionary storing tags and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + IDictionary storing possible names of the "class" attribute + and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + Creates a new instance of StyleSheet + + + Associates a IDictionary containing styles with a tag. + @param tag the name of the HTML/XML tag + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param tag the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Associates a IDictionary containing styles with a class name. + @param className the value of the class attribute + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param className the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Resolves the styles based on the tag name and the value + of the class attribute. + @param tag the tag that needs to be resolved + @param attrs existing style map that will be updated + + + Method contributed by Lubos Strapko + @param h + @param chain + @since 2.1.3 + + + We use a CellWrapper because we need some extra info + that isn't available in PdfPCell. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The cell that is wrapped in this stub. + + + The width of the cell. + @since iText 5.0.6 + + + Indicates if the width is a percentage. + @since iText 5.0.6 + + + Creates a new instance of IncCell. + @param tag the cell that is wrapped in this object. + @param chain properties such as width + @since 5.0.6 + + + Creates a PdfPCell element based on a tag and its properties. + @param tag a cell tag + @param chain the hierarchy chain + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Factory that produces iText Element objects, + based on tags and their properties. + @author blowagie + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The font provider that will be used to fetch fonts. + @since iText 5.0 This used to be a FontFactoryImp + + + Creates a new instance of FactoryProperties. + + + Setter for the font provider + @param provider + @since 5.0.6 renamed from setFontImp + + + Creates a Font object based on a chain of properties. + @param chain chain of properties + @return an iText Font object + + + Creates an iText Chunk + @param content the content of the Chunk + @param chain the hierarchy chain + @return a Chunk + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a Paragraph without any content + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a ListItem without any content + + + Method that does the actual Element creating for + the createParagraph and createListItem method. + @param paragraph + @param chain + + + Sets the leading of a Paragraph object. + @param paragraph the Paragraph for which we set the leading + @param leading the String value of the leading + + + Gets a HyphenationEvent based on the hyphenation entry in + the hierarchy chain. + @param chain the hierarchy chain + @return a HyphenationEvent + @since 2.1.2 + + + Creates a LineSeparator. + @since 5.0.6 + + + This class maps tags such as div and span to their corresponding + TagProcessor classes. + @deprecated since 5.5.2 + + + Creates a Map containing supported tags. + + + Object that processes the following tags: + i, em, b, strong, s, strike, u, sup, sub + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Maps em to i, strong to b, and strike to s. + This is a convention: the style parser expects i, b and s. + @param tag the original tag + @return the mapped tag + + + Object that processes the a tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Object that processes the br tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Interface that needs to be implemented by every tag that is supported by HTMLWorker. + @deprecated since 5.5.2 + + + Implement this class to tell the HTMLWorker what to do + when an open tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @param attrs the current attributes of the tag + @throws DocumentException + @throws IOException + + + Implement this class to tell the HTMLWorker what to do + when an close tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @throws DocumentException + + + Implement this interface to process images and + to indicate if the image needs to be added or + skipped. + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Allows you to (pre)process the image before (or instead of) + adding it to the DocListener with HTMLWorker. + @param img the Image object + @param attrs attributes of the image + @param chain hierarchy of attributes + @param doc the DocListener to which the Image needs to be added + @return false if you still want HTMLWorker to add the Image + + + Allows you to do additional processing on a Paragraph that contains a link. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Does additional processing on a link paragraph + @param current the Paragraph that has the link + @param attrs the attributes + @return false if the Paragraph no longer needs processing + + + @since 5.0.6 + @deprecated since 5.5.2 + + + We use a TableWrapper because PdfPTable is rather complex + to put on the HTMLWorker stack. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The styles that need to be applied to the table + @since 5.0.6 renamed from props + + + Nested list containing the PdfPCell elements that are part of this table. + + + Array containing the widths of the columns. + @since iText 5.0.6 + + + Creates a new instance of IncTable. + @param attrs a Map containing attributes + + + Adds a new row to the table. + @param row a list of PdfPCell elements + + + Setter for the column widths + @since iText 5.0.6 + + + Creates a new PdfPTable based on the info assembled + in the table stub. + @return a PdfPTable + + + This class is a HashMap that contains the names of colors as a key and the + corresponding Color as value. (Source: Wikipedia + http://en.wikipedia.org/wiki/Web_colors ) + + @author blowagie + @deprecated since 5.5.2 + + + A web color string without the leading # will be 3 or 6 characters long + and all those characters will be hex digits. NOTE: colStr must be all + lower case or the current hex letter test will fail. + + @param colStr + A non-null, lower case string that might describe an RGB color + in hex. + @return Is this a web color hex string without the leading #? + @since 5.0.6 + + + Gives you a BaseColor based on a name. + + @param name + a name such as black, violet, cornflowerblue or #RGB or + #RRGGBB or RGB or RRGGBB or rgb(R,G,B) + @return the corresponding BaseColor object. Never returns null. + @throws IllegalArgumentException + if the String isn't a know representation of a color. + + + A class that contains some utilities to parse HTML attributes and content. + @since 5.0.6 (some of these methods used to be in the Markup class) + @deprecated since 5.5.2 + + + a default value for font-size + @since 2.1.3 + + + Parses a length. + + @param str + a length in the form of an optional + or -, followed by a + number and a unit. + @return a float + + + New method contributed by: Lubos Strapko + + @since 2.1.3 + + + Converts a BaseColor into a HTML representation of this + BaseColor. + + @param s + the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + This method parses a String with attributes and returns a Properties + object. + + @param str + a String of this form: 'key1="value1"; key2="value2";... + keyN="valueN" ' + @return a Properties object + + + Removes the comments sections of a String. + + @param str + the original String + @param startComment + the String that marks the start of a Comment section + @param endComment + the String that marks the end of a Comment section. + @return the String stripped of its comment section + + + Helper class that reduces the white space in a String + @param content content containing whitespace + @return the content without all unnecessary whitespace + + + A series of predefined font sizes. + @since 5.0.6 (renamed) + + + Picks a font size from a series of predefined font sizes. + @param value the new value of a font, expressed as an index + @param previous the previous value of the font size + @return a new font size. + + + Translates a String value to an alignment value. + (written by Norman Richards, integrated into iText by Bruno) + @param alignment a String (one of the ALIGN_ constants of this class) + @return an alignment value (one of the ALIGN_ constants of the Element interface) + + + + A class that implements DocListener will perform some + actions when some actions are performed on a Document. + + + + + + + + Signals that the Document has been opened and that + Elements can be added. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + The output stream of every writer implementing IDocListener will be closed. + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Parameter that allows you to do margin mirroring (odd/even pages) + @param marginMirroring + @return true if succesfull + + + Parameter that allows you to do top/bottom margin mirroring (odd/even pages) + @param marginMirroringTopBottom + @return true if successful + @since 2.1.6 + + + + Sets the page number. + + the new page number + + + + Sets the page number to 0. + + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + Checks if this element is a content object. + If not, it's a metadata object. + @since iText 2.0.8 + @return true if this is a 'content' element; false if this is a 'medadata' element + + + Checks if this element is nestable. + @since iText 2.0.8 + @return true if this element can be nested inside other elements. + + + + Gets all the chunks in this element. + + an ArrayList + + + + Gets the content of the text element. + + the content of the text element + + + + A class that implements ElementListener will perform some + actions when an Element is added. + + + + + Signals that an Element was added to the Document. + + Element added + true if the element was added, false if not. + + + These two methods are used by FactoryProperties (for HTMLWorker). + It's implemented by FontFactoryImp. + @since iText 5.0 + + + Checks if a certain font is registered. + + @param fontname the name of the font that has to be checked. + @return true if the font is found + + + Constructs a Font-object. + + @param fontname the name of the font + @param encoding the encoding of the font + @param embedded true if the font is to be embedded in the PDF + @param size the size of this font + @param style the style of this font + @param color the BaseColor of this font. + @return the Font constructed based on the parameters + + + Interface implemented by Element objects that can potentially consume + a lot of memory. Objects implementing the LargeElement interface can + be added to a Document more than once. If you have invoked setCompleted(false), + they will be added partially and the content that was added will be + removed until you've invoked setCompleted(true); + @since iText 2.0.8 + + + If you invoke setCompleted(false), you indicate that the content + of the object isn't complete yet; it can be added to the document + partially, but more will follow. If you invoke setCompleted(true), + you indicate that you won't add any more data to the object. + @since iText 2.0.8 + @param complete false if you'll be adding more data after + adding the object to the document. + + + Flushes the content that has been added. + + + + An Image is the representation of a graphic element (JPEG, PNG or GIF) + that has to be inserted into the document + + + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The imagetype. + + + The URL of the image. + + + The raw data of the image. + + + The template to be treated as an image. + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + if the annotation is not null the image will be clickable. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalType. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + + Constructs an Image-object, using an url. + + the URL where the image can be found. + + + + Constructs an Image object duplicate. + + another Image object. + + + + Gets an instance of an Image. + + an Image + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + a byte array + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image from a System.Drwaing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + if true the image is treated as black and white + an object of type ImgRaw + + + + Converts a .NET image to a Native(PNG, JPG, GIF, WMF) image + + + + + + + + Gets an instance of an Image from a System.Drawing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + an object of type ImgRaw + + + + Gets an instance of an Image. + + a filename + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + an object of type ImgRaw + + + Creates a JBIG2 Image. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + @since 2.1.5 + + + Reuses an existing image. + @param ref the reference to the image dictionary + @throws BadElementException on error + @return the image + + + + Gets an instance of an Image in raw mode. + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + + + + + + + + + + + + + + + + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + + transparency information in the Mask format of the + image dictionary + + an object of type ImgRaw + + + + Sets the absolute position of the Image. + + + + + + + Scale the image to the dimensions of the rectangle + + dimensions to scale the Image + + + + Scale the image to an absolute width and an absolute height. + + the new width + the new height + + + + Scale the image to an absolute width. + + the new width + + + + Scale the image to an absolute height. + + the new height + + + + Scale the image to a certain percentage. + + the scaling percentage + + + + Scale the width and height of an image to a certain percentage. + + the scaling percentage of the width + the scaling percentage of the height + + + + Scales the images to the dimensions of the rectangle. + + the dimensions to fit + + + + Scales the image so that it fits a certain width and height. + + the width to fit + the height to fit + + + Gets the current image rotation in radians. + @return the current image rotation in radians + + + + Sets the rotation of the image in radians. + + rotation in radians + + + + Sets the rotation of the image in degrees. + + rotation in degrees + + + + Get/set the annotation. + + the Annotation + + + + Gets the bpc for the image. + + + this only makes sense for Images of the type RawImage. + + a bpc value + + + + Gets the raw data for the image. + + + this only makes sense for Images of the type RawImage. + + the raw data + + + + Get/set the template to be used as an image. + + + this only makes sense for Images of the type ImgTemplate. + + the template + + + + Checks if the Images has to be added at an absolute position. + + a bool + + + + Checks if the Images has to be added at an absolute X position. + + a bool + + + + Returns the absolute X position. + + a position + + + + Returns the absolute Y position. + + a position + + + + Returns the type. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Returns true if the image is a Jpeg-object. + + a bool + + + + Returns true if the image is a ImgRaw-object. + + a bool + + + + Returns true if the image is an ImgTemplate-object. + + a bool + + + + Gets the string-representation of the reference to the image. + + a string + + + + Get/set the alignment for the image. + + a value + + + + Get/set the alternative text for the image. + + a string + + + + Gets the scaled width of the image. + + a value + + + + Gets the scaled height of the image. + + a value + + + + Gets the colorspace for the image. + + + this only makes sense for Images of the type Jpeg. + + a colorspace value + + + + Returns the transformation matrix of the image. + + an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + Returns the transformation matrix of the image. + + @return an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + + Returns the transparency. + + the transparency + + + + Gets the plain width of the image. + + a value + + + + Gets the plain height of the image. + + a value + + + + generates new serial id + + + + + returns serial id for this object + + + + + Gets the dots-per-inch in the X direction. Returns 0 if not available. + + the dots-per-inch in the X direction + + + + Gets the dots-per-inch in the Y direction. Returns 0 if not available. + + the dots-per-inch in the Y direction + + + Sets the dots per inch value + + @param dpiX + dpi for x coordinates + @param dpiY + dpi for y coordinates + + + + Returns true if this Image has the + requisites to be a mask. + + true if this Image can be a mask + + + + Make this Image a mask. + + + + + Get/set the explicit masking. + + the explicit masking + + + + Returns true if this Image is a mask. + + true if this Image is a mask + + + + Inverts the meaning of the bits of a mask. + + true to invert the meaning of the bits of a mask + + + + Sets the image interpolation. Image interpolation attempts to + produce a smooth transition between adjacent sample values. + + New value of property interpolation. + + + Tags this image with an ICC profile. + @param profile the profile + + + Checks is the image has an ICC profile. + @return the ICC profile or null + + + Indicates if the image should be scaled to fit the line + when the image exceeds the available width. + @since iText 5.0.6 + + + Indicates if the image should be scaled to fit + when the image exceeds the available height. + @since iText 5.4.2 + + + Gets and sets the value of scaleToFitHeight. + @return true if the image size has to scale to the available height + @since iText 5.4.2 + + + Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray. + + + Some image formats, like TIFF may present the images rotated that have + to be compensated. + + + Sets the compression level to be used if the image is written as a compressed stream. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + CCITT Image data that has to be inserted into the document + + @see Element + @see Image + + @author Paulo Soares + + CCITT Image data that has to be inserted into the document + + + + + + + Creats an Image in CCITT mode. + + the exact width of the image + the exact height of the image + + reverses the bits in data. + Bit 0 is swapped with bit 7 and so on + + + the type of compression in data. It can be + CCITTG4, CCITTG31D, CCITTG32D + + + parameters associated with this stream. Possible values are + CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFLINE and CCITT_ENDOFBLOCK or a + combination of them + + the image data + + + Support for JBIG2 images. + @since 2.1.5 + + + JBIG2 globals + + + A unique hash + + + Copy contstructor. + @param image another Image + + + Empty constructor. + + + Actual constructor for ImgJBIG2 images. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + + + Getter for the JBIG2 global data. + @return an array of bytes + + + Getter for the unique hash. + @return an array of bytes + + + + Raw Image data that has to be inserted into the document + + + + + + + Creats an Image in raw mode. + + the exact width of the image + the exact height of the image + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component. Must be 1,2,4 or 8 + data the image data + + + + PdfTemplate that has to be inserted into the document + + + + + + + Creats an Image from a PdfTemplate. + + the Image + + + + Creats an Image from a PdfTemplate. + + the PdfTemplate + + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + @see Element + @see Image + @see Gif + @see Png + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + + + + Constructs an ImgWMF-object + + a Image + + + + Constructs an ImgWMF-object, using an url. + + the URL where the image can be found + + + + Constructs an ImgWMF-object, using a filename. + + a string-representation of the file that contains the image. + + + + Constructs an ImgWMF-object from memory. + + the memory image + + + + This method checks if the image is a valid WMF and processes some parameters. + + + + + Reads the WMF into a template. + + the template to read to + + + A RandomAccessSource that is based on an underlying byte array + @since 5.3.5 + + + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + A RandomAccessSource that is based on a set of underlying sources, treating the sources as if they were a contiguous block of data. + @since 5.3.5 + + + The underlying sources (along with some meta data to quickly determine where each source begins and ends) + + + Cached value to make multiple reads from the same underlying source more efficient + + + Cached size of the underlying channel + + + Constructs a new {@link GroupedRandomAccessSource} based on the specified set of sources + @param sources the sources used to build this group + + + For a given offset, return the index of the source that contains the specified offset. + This is an optimization feature to help optimize the access of the correct source without having to iterate + through every single source each time. It is safe to always return 0, in which case the full set of sources will be searched. + Subclasses should override this method if they are able to compute the source index more efficiently (for example {@link FileChannelRandomAccessSource} takes advantage of fixed size page buffers to compute the index) + @param offset the offset + @return the index of the input source that contains the specified offset, or 0 if unknown + + + Returns the SourceEntry that contains the byte at the specified offset + sourceReleased is called as a notification callback so subclasses can take care of cleanup when the source is no longer the active source + @param offset the offset of the byte to look for + @return the SourceEntry that contains the byte at the specified offset + @throws IOException if there is a problem with IO (usually the result of the sourceReleased() call) + + + Called when a given source is no longer the active source. This gives subclasses the abilty to release resources, if appropriate. + @param source the source that is no longer the active source + @throws IOException if there are any problems + + + Called when a given source is about to become the active source. This gives subclasses the abilty to retrieve resources, if appropriate. + @param source the source that is about to become the active source + @throws IOException if there are any problems + + + {@inheritDoc} + The source that contains the byte at position is retrieved, the correct offset into that source computed, then the value + from that offset in the underlying source is returned. + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Closes all of the underlying sources + + + Used to track each source, along with useful meta data + + + The underlying source + + + The first byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The last byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The index of this source in the GroupedRandomAccessSource + + + Standard constructor + @param index the index + @param source the source + @param offset the offset of the source in the GroupedRandomAccessSource + + + Given an absolute offset (in the GroupedRandomAccessSource coordinates), calculate the effective offset in the underlying source + @param absoluteOffset the offset in the parent GroupedRandomAccessSource + @return the effective offset in the underlying source + + + A RandomAccessSource that is wraps another RandomAccessSouce but does not propagate close(). This is useful when + passing a RandomAccessSource to a method that would normally close the source. + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + Does nothing - the underlying source is not closed + + + Represents an abstract source that bytes can be read from. This class forms the foundation for all byte input in iText. + Implementations do not keep track of a current 'position', but rather provide absolute get methods. Tracking position + should be handled in classes that use RandomAccessSource internally (via composition). + @since 5.3.5 + + + Gets a byte at the specified position + @param position + @return the byte, or -1 if EOF is reached + + + Gets an array at the specified position. If the number of bytes requested cannot be read, the bytes that can be + read will be placed in bytes and the number actually read will be returned. + @param position the position in the RandomAccessSource to read from + @param bytes output buffer + @param off offset into the output buffer where results will be placed + @param len the number of bytes to read + @return the number of bytes actually read, or -1 if the file is at EOF + + + @return the length of this source + + + Closes this source. The underlying data structure or source (if any) will also be closed + @throws IOException + + + + A RandomAccessSource that uses a {@link RandomAccessFile} as it's source + Note: Unlike most of the RandomAccessSource implementations, this class is not thread safe + + + The source + + + The length of the underling RAF. Note that the length is cached at construction time to avoid the possibility + of IOExceptions when reading the length. + + + Creates this object + @param raf the source for this RandomAccessSource + @throws IOException if the RAF can't be read + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Note: the length is determined when the {@link RAFRandomAccessSource} is constructed. If the file length changes + after construction, that change will not be reflected in this call. + + + Closes the underlying RandomAccessFile + + + Factory to create {@link RandomAccessSource} objects based on various types of sources + @since 5.3.5 + + + + whether the full content of the source should be read into memory at construction + + + Whether {@link RandomAccessFile} should be used instead of a {@link FileChannel}, where applicable + + + Whether the underlying file should have a RW lock on it or just an R lock + + + Creates a factory that will give preference to accessing the underling data source using memory mapped files + + + Determines whether the full content of the source will be read into memory + @param forceRead true if the full content will be read, false otherwise + @return this object (this allows chaining of method calls) + + + Creates a {@link RandomAccessSource} based on a byte array + @param data the byte array + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a URL. The data available at the URL is read into memory and used + as the source for the {@link RandomAccessSource} + @param url the url to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on an {@link InputStream}. The full content of the InputStream is read into memory and used + as the source for the {@link RandomAccessSource} + @param is the stream to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a filename string. + If the filename describes a URL, a URL based source is created + If the filename describes a file on disk, the contents may be read into memory (if forceRead is true), opened using memory mapped file channel (if usePlainRandomAccess is false), or opened using {@link RandomAccessFile} access (if usePlainRandomAccess is true) + This call will automatically failover to using {@link RandomAccessFile} if the memory map operation fails + @param filename the name of the file or resource to create the {@link RandomAccessSource} for + @return the newly created {@link RandomAccessSource} + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + An input stream that uses a RandomAccessSource as it's underlying source + @since 5.3.5 + + + The source + + + The current position in the source + + + Creates an input stream based on the source + @param source the source + + + Utility class with commonly used stream operations + @since 5.3.5 + + + + Reads the full content of a stream and returns them in a byte array + @param is the stream to read + @return a byte array containing all of the bytes from the stream + @throws IOException if there is a problem reading from the input stream + + + Gets the font resources. + @param key the name of the resource + @return the Stream to get the resource or + null if not found + + + A RandomAccessSource that wraps another RandomAccessSouce and provides a window of it at a specific offset and over + a specific length. Position 0 becomes the offset position in the underlying source. + @since 5.3.5 + + + The source + + + The amount to offset the source by + + + The length + + + Constructs a new OffsetRandomAccessSource that extends to the end of the underlying source + @param source the source + @param offset the amount of the offset to use + + + Constructs a new OffsetRandomAccessSource with an explicit length + @param source the source + @param offset the amount of the offset to use + @param length the number of bytes to be included in this RAS + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the length will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + + + The RTF jar depends on the iText jar, but the iText jar may not + depend on the RTF jar. This interface offers a temporary solution + until we find a more elegant way to solve this. + + + + Interface for customizing the split character. + + + + + + Interface for a text element to which other objects can be added. + + + + + + + + + + + + Adds an object to the TextElementArray. + + an object that has to be added + true if the addition succeeded; false otherwise + + + + An Jpeg is the representation of a graphic element (JPEG) + that has to be inserted into the document + + + + + + + + This is a type of marker. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Construct a Jpeg-object, using a Image + + a Image + + + + Constructs a Jpeg-object, using an Uri. + + + Deprecated, use Image.GetInstance(...) to create an Image + + the Uri where the image can be found + + + + Constructs a Jpeg-object from memory. + + the memory image + + + + Constructs a Jpeg-object from memory. + + the memory image. + the width you want the image to have + the height you want the image to have + + + + Reads a short from the Stream. + + the Stream + an int + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Returns a type of marker. + + an int + a type: VALID_MARKER, UNSUPPORTED_MARKER or NOPARAM_MARKER + + + + This method checks if the image is a valid JPEG and processes some parameters. + + + + An Jpeg2000 is the representation of a graphic element (JPEG) + that has to be inserted into the document + + @see Element + @see Image + + + Constructs a Jpeg2000-object, using an url. + + @param url the URL where the image can be found + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image. + @param width the width you want the image to have + @param height the height you want the image to have + @throws BadElementException + @throws IOException + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + A List contains several ListItems. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
      +
    1. + First line +
    2. +
    3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
    4. +
    5. + Third line +
    6. +
    + + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
      +
    • + This is an item +
    • +
    • + This is another item +
    • +
    +
    + + +
    + + a possible value for the numbered parameter + + + a possible value for the numbered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + This is the ArrayList containing the different ListItems. + + + Indicates if the list has to be numbered. + + + Indicates if the listsymbols are numerical or alphabetical. + + + Indicates if the listsymbols are lowercase or uppercase. + + + Indicates if the indentation has to be set automatically. + + + Indicates if the indentation of all the items has to be aligned. + + + This variable indicates the first number of a numbered list. + + + This is the listsymbol of a list that is not numbered. + + + In case you are using numbered/lettered lists, this String is added before the number/letter. + @since iText 2.1.1 + + + In case you are using numbered/lettered lists, this String is added after the number/letter. + @since iText 2.1.1 + + + The indentation of this list on the left side. + + + The indentation of this list on the right side. + + + The indentation of the listitems. + + + Constructs a List. + + + Constructs a List with a specific symbol indentation. + @param symbolIndent the symbol indentation + @since iText 2.0.8 + + + Constructs a List. + + @param numbered a bool + + + Constructs a List. + + @param numbered a bool + @param lettered has the list to be 'numbered' with letters + + + + Constructs a List. + + + the parameter symbolIndent is important for instance when + generating PDF-documents; it indicates the indentation of the listsymbol. + + a bool + the indentation that has to be used for the listsymbol + + + + Constructs a List. + + a bool + a bool + the indentation that has to be used for the listsymbol + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + Adds an Object to the List. + + the object to add + true is successful + + + Makes sure all the items in the list have the same indentation. + + + + Alias for VB.NET compatibility. + + + + + Get/set the first number + + an int + + + + Sets the symbol + + a Chunk + + + + Sets the listsymbol. + + + This is a shortcut for SetListSymbol(Chunk symbol). + + a string + + + + Get/set the indentation of this paragraph on the left side. + + the indentation + + + + Get/set the indentation of this paragraph on the right side. + + the indentation + + + + Gets the symbol indentation. + + the symbol indentation + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Gets all the items in the list. + + an ArrayList containing ListItems + + + + Gets the size of the list. + + a size + + + Returns true if the list is empty. + + @return true if the list is empty + + + + Gets the leading of the first listitem. + + a leading + + + + Get/set the symbol indentation. + + a Chunk + + + Returns the String that is after a number or letter in the list symbol. + @return the String that is after a number or letter in the list symbol + @since iText 2.1.1 + + + Sets the String that has to be added after a number or letter in the list symbol. + @since iText 2.1.1 + @param postSymbol the String that has to be added after a number or letter in the list symbol. + + + Sets the String that has to be added before a number or letter in the list symbol. + @since iText 2.1.1 + @param preSymbol the String that has to be added before a number or letter in the list symbol. + + + + A ListItem is a Paragraph + that can be added to a List. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
      +
    1. + First line +
    2. +
    3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
    4. +
    5. + Third line +
    6. +
    + + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
      +
    • + This is an item +
    • +
    • + This is another item +
    • +
    +
    + + + +
    + + this is the symbol that wil proceed the listitem. + + + + Constructs a ListItem. + + + + + Constructs a ListItem with a certain leading. + + the leading + + + + Constructs a ListItem with a certain Chunk. + + a Chunk + + + + Constructs a ListItem with a certain string. + + a string + + + + Constructs a ListItem with a certain string + and a certain Font. + + a string + a string + + + + Constructs a ListItem with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a ListItem with a certain string + and a certain leading. + + the leading + a string + + + Constructs a ListItem with a certain leading, string + and Font. + + @param leading the leading + @param string a string + @param font a Font + + Constructs a ListItem with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a ListItem with a certain Phrase. + + a Phrase + + + + Gets the type of the text element. + + a type + + + + Get/set the listsymbol. + + a Chunk + + + Sets the indentation of this paragraph on the left side. + + @param indentation the new indentation + + + Changes the font of the list symbol to the font of the first chunk + in the list item. + @since 5.0.6 + + + Factory that creates a counter for every reader or writer class. + You can implement your own counter and declare it like this: + CounterFactory.getInstance().setCounter(new SysoCounter()); + SysoCounter is just an example of a Counter implementation. + It writes info about files being read and written to the System.out. + + This functionality can be used to create metrics in a SaaS context. + + + The singleton instance. + + + The current counter implementation. + + + The empty constructor. + + + Returns the singleton instance of the factory. + + + Returns a counter factory. + + + Getter for the counter. + + + Setter for the counter. + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass + @return this Counter implementation + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Interface that can be implemented if you want to count the number of documents + that are being processed by iText. + + Implementers may use this method to record actual system usage for licensing purposes + (e.g. count the number of documents or the volumne in bytes in the context of a SaaS license). + + + Gets a Counter instance for a specific class. + + + This method gets triggered if a file is read. + @param l the length of the file that was written + + + This method gets triggered if a file is written. + @param l the length of the file that was written + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass The Class asking for the Counter + @return the Counter instance + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + The name of the class for which the Counter was created + (or iText if no name is available) + + + Empty SysoCounter constructor. + + + Constructs a SysoCounter for a specific class. + @param klass + + + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Logger interface + {@link LoggerFactory#setLogger(Logger)}. + + @author redlab_b + + + + @param klass + @return the logger for the given klass + + + @param level + @return true if there should be logged for the given level + + + Log a warning message. + @param message + + + Log a trace message. + @param message + + + Log a debug message. + @param message + + + Log an info message. + @param message + + + Log an error message. + @param message + + + Log an error message and exception. + @param message + @param e + + + The different log levels. + @author redlab_b + + + + LoggerFactory can be used to set a logger. The logger should be created by + implementing {@link Logger}. In the implementation users can choose how they + log received messages. Added for developers. For some cases it can be handy + to receive logging statements while developing applications with iText + + @author redlab_b + + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param klass + @return the logger. + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param name + @return the logger. + + + Returns the LoggerFactory + @return singleton instance of this LoggerFactory + + + Set the global logger to process logging statements with. + + @param logger the logger + + + Get the logger. + + @return the logger + + + The no-operation logger, it does nothing with the received logging + statements. And returns false by default for {@link NoOpLogger#isLogging(Level)} + + @author redlab_b + + + + A Simple System.out logger. + @author redlab_be + + + + Defaults packageReduce to 1. + + + Amount of characters each package name should be reduced with. + @param packageReduce + + + + @param klass + @param shorten + + + @param name2 + @return + + + Wrapper that allows to add properties to 'basic building block' objects. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + The element that is wrapped in a MarkedObject. + + + Contains extra markupAttributes + + + This constructor is for internal use only. + + + Creates a MarkedObject. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets the type of the text element. + + @return a type + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + @return the markupAttributes + + + Wrapper that allows to add properties to a Chapter/Section object. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + This is the title of this section. + + + Creates a MarkedObject with a Section or Chapter object. + @param section the marked section + + + Adds a Paragraph, List or Table + to this Section. + + @param index index at which the specified element is to be inserted + @param o an object of type Paragraph, List or Table= + @throws ClassCastException if the object is not a Paragraph, List or Table + + + Adds a Paragraph, List, Table or another Section + to this Section. + + @param o an object of type Paragraph, List, Table or another Section + @return a bool + @throws ClassCastException if the object is not a Paragraph, List, Table or Section + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Adds a collection of Elements + to this Section. + + @param collection a collection of Paragraphs, Lists and/or Tables + @return true if the action succeeded, false if not. + @throws ClassCastException if one of the objects isn't a Paragraph, List, Table + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @return a new Section object + + + Creates a Section, add it to this Section and returns it. + + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @return a new Section object + + + Sets the title of this section. + + @param title the new title + + + + Sets the indentation of this Section on the left side. + + @param indentation the indentation + + + Sets the indentation of this Section on the right side. + + @param indentation the indentation + + + Sets the indentation of the content of this Section. + + @param indentation the indentation + + + Setter for property bookmarkOpen. + @param bookmarkOpen false if the bookmark children are not + visible. + + + Setter for property triggerNewPage. + @param triggerNewPage true if a new page has to be triggered. + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Adds a new page to the section. + @since 2.1.1 + + + + This is an Element that contains + some meta information about the document. + + + An object of type Meta can not be constructed by the user. + Userdefined meta information should be placed in a Header-object. + Meta is reserved for: Subject, Keywords, Author, Title, Producer + and Creationdate information. + + + + + + This is the type of Meta-information this object contains. + + + This is the content of the Meta-information. + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + + Constructs a Meta. + + the type of meta-information + the content + + + + Constructs a Meta. + + the tagname of the meta-information + the content + + + + Processes the element by adding it (or the different parts) to a + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + appends some text to this Meta. + + a string + a StringBuilder + + + + Returns the content of the meta information. + + a string + + + + Returns the name of the meta information. + + a string + + + + Returns the name of the meta information. + + name to match + a string + + + + The PageSize-object contains a number of read only rectangles representing the most common paper sizes. + + + + + This is the letter format + + + This is the note format + + + This is the legal format + + + This is the tabloid format + + + This is the executive format + + + This is the postcard format + + + This is the a0 format + + + This is the a1 format + + + This is the a2 format + + + This is the a3 format + + + This is the a4 format + + + This is the a5 format + + + This is the a6 format + + + This is the a7 format + + + This is the a8 format + + + This is the a9 format + + + This is the a10 format + + + This is the b0 format + + + This is the b1 format + + + This is the b2 format + + + This is the b3 format + + + This is the b4 format + + + This is the b5 format + + + This is the b6 format + + + This is the b7 format + + + This is the b8 format + + + This is the b9 format + + + This is the b10 format + + + This is the archE format + + + This is the archD format + + + This is the archC format + + + This is the archB format + + + This is the archA format + + + This is the American Foolscap format + + + This is the European Foolscap format + + + This is the halfletter format + + + This is the 11x17 format + + + This is the ISO 7810 ID-1 format (85.60 x 53.98 mm or 3.370 x 2.125 inch) + + + This is the ISO 7810 ID-2 format (A7 rotated) + + + This is the ISO 7810 ID-3 format (B7 rotated) + + + This is the ledger format + + + This is the Crown Quarto format + + + This is the Large Crown Quarto format + + + This is the Demy Quarto format. + + + This is the Royal Quarto format. + + + This is the Crown Octavo format + + + This is the Large Crown Octavo format + + + This is the Demy Octavo format + + + This is the Royal Octavo format. + + + This is the small paperback format. + + + This is the Pengiun small paperback format. + + + This is the Penguin large paparback format. + + + This is the letter format + @since iText 5.0.6 + + + This is the legal format + @since iText 5.0.6 + + + This is the a4 format + @since iText 5.0.6 + + + This method returns a Rectangle based on a String. + Possible values are the the names of a constant in this class + (for instance "A4", "LETTER",...) or a value like "595 842" + + + + A Paragraph is a series of Chunks and/or Phrases. + + + A Paragraph has the same qualities of a Phrase, but also + some additional layout-parameters: +
      +
    • the indentation +
    • the alignment of the text +
    +
    + + + Paragraph p = new Paragraph("This is a paragraph", + FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + +
    + + The alignment of the text. + + + The indentation of this paragraph on the left side. + + + The indentation of this paragraph on the right side. + + + Holds value of property firstLineIndent. + + + The spacing before the paragraph. + + + The spacing after the paragraph. + + + Holds value of property extraParagraphSpace. + + + Does the paragraph has to be kept together on 1 page. + + + + Constructs a Paragraph. + + + + + Constructs a Paragraph with a certain leading. + + the leading + + + + Constructs a Paragraph with a certain Chunk. + + a Chunk + + + + Constructs a Paragraph with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a Paragraph with a certain string. + + a string + + + + Constructs a Paragraph with a certain string + and a certain Font. + + a string + a Font + + + + Constructs a Paragraph with a certain string + and a certain leading. + + the leading + a string + + + + Constructs a Paragraph with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a Paragraph with a certain Phrase. + + a Phrase + + + Creates a shallow clone of the Paragraph. + @return + + + Creates a shallow clone of the Paragraph. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + + Gets the type of the text element. + + a type + + + + Adds an Object to the Paragraph. + + the object to add + a bool + + + + Get/set the alignment of this paragraph. + + a integer + + + + Get/set the indentation of this paragraph on the left side. + + a float + + + + Get/set the indentation of this paragraph on the right side. + + a float + + + + Set/get if this paragraph has to be kept together on one page. + + a bool + + + + A Phrase is a series of Chunks. + + + A Phrase has a main Font, but some chunks + within the phrase can have a Font that differs from the + main Font. All the Chunks in a Phrase + have the same leading. + + + + // When no parameters are passed, the default leading = 16 + Phrase phrase0 = new Phrase(); + Phrase phrase1 = new Phrase("this is a phrase"); + // In this example the leading is passed as a parameter + Phrase phrase2 = new Phrase(16, "this is a phrase with leading 16"); + // When a Font is passed (explicitely or embedded in a chunk), the default leading = 1.5 * size of the font + Phrase phrase3 = new Phrase("this is a phrase with a red, normal font Courier, size 12", FontFactory.GetFont(FontFactory.COURIER, 12, Font.NORMAL, new Color(255, 0, 0))); + Phrase phrase4 = new Phrase(new Chunk("this is a phrase")); + Phrase phrase5 = new Phrase(18, new Chunk("this is a phrase", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + + + + + This is the leading of this phrase. + + + The text leading that is multiplied by the biggest font size in the line. + + + This is the font of this phrase. + + + Null, unless the Phrase has to be hyphenated. + @since 2.1.2 + + + Predefined tab position and properties(alignment, leader and etc.); + @since 5.4.1 + + + + Constructs a Phrase without specifying a leading. + + + Has nine overloads. + + + + Copy constructor for Phrase. + + + + Constructs a Phrase with a certain leading. + + the leading + + + + Constructs a Phrase with a certain Chunk. + + a Chunk + + + + Constructs a Phrase with a certain Chunk and a certain leading. + + the leading + a Chunk + + + + Constructs a Phrase with a certain string. + + a string + + + + Constructs a Phrase with a certain string and a certain Font. + + a string + a Font + + + + Constructs a Phrase with a certain leading and a certain string. + + the leading + a string + + + + Processes the element by adding it (or the different parts) to an + . + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Chunk, an Anchor or another Phrase + to this Phrase. + + index at which the specified element is to be inserted + an object of type Chunk, Anchor, or Phrase + + + Adds a String to this Phrase. + + @param s a string + @return a boolean + @since 5.0.1 + + + + Adds a Chunk, Anchor or another Phrase + to this Phrase. + + an object of type Chunk, Anchor or Phrase + a bool + + + + Adds a collection of Chunks + to this Phrase. + + a collection of Chunks, Anchors and Phrases. + true if the action succeeded, false if not. + + + + Adds a Chunk. + + + This method is a hack to solve a problem I had with phrases that were split between chunks + in the wrong place. + + a Chunk + a bool + + + + Adds a Object to the Paragraph. + + the object to add. + + + + Checks is this Phrase contains no or 1 empty Chunk. + + + false if the Phrase + contains more than one or more non-emptyChunks. + + + + + + + Gets/sets the leading of this phrase. + + the linespacing + + + Gets the total leading. + This method is based on the assumption that the + font of the Paragraph is the font of all the elements + that make part of the paragraph. This isn't necessarily + true. + @return the total leading (fixed and multiplied) + + + + Gets the font of the first Chunk that appears in this Phrase. + + a Font + + + Returns the content as a String object. + This method differs from toString because toString will return an ArrayList with the toString value of the Chunks in this Phrase. + + + Setter/getter for the hyphenation. + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Setter/getter for the tabSettings. + @param tabSettings a TabSettings instance + @since 5.4.1 + + + Constructs a Phrase that can be used in the static GetInstance() method. + @param dummy a dummy parameter + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @param font + @return a newly constructed Phrase + + + + A Rectangle is the representation of a geometric figure. + + + + + + + + This is the value that will be used as undefined. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents a rectangle without borders. + + + This represents a type of border. + + + the lower left x-coordinate. + + + the lower left y-coordinate. + + + the upper right x-coordinate. + + + the upper right y-coordinate. + + + This represents the status of the 4 sides of the rectangle. + + + This is the width of the border around this rectangle. + + + This is the color of the border of this rectangle. + + + The color of the left border of this rectangle. + + + The color of the right border of this rectangle. + + + The color of the top border of this rectangle. + + + The color of the bottom border of this rectangle. + + + The width of the left border of this rectangle. + + + The width of the right border of this rectangle. + + + The width of the top border of this rectangle. + + + The width of the bottom border of this rectangle. + + + Whether variable width borders are used. + + + This is the color of the background of this rectangle. + + + This is the rotation value of this rectangle. + + + + Constructs a Rectangle-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a Rectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation (0, 90, 180, or 270) + @since iText 5.0.6 + + + + Constructs a Rectangle-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a Rectangle-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the rectangle + @since iText 5.0.6 + + + + Constructs a Rectangle-object. + + another Rectangle + + + Constructs a Rectangle-object based on a com.itextpdf.awt.geom.Rectangle object + @param rect com.itextpdf.awt.geom.Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Switches lowerleft with upperright + + + + Gets a Rectangle that is altered to fit on the page. + + the top position + the bottom position + a Rectangle + + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + a Rectangle + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Returns the lower left x-coordinate, considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Returns the width of the rectangle. + + a width + + + + Returns the height of the rectangle. + + a height + + + + Indicates if the table has borders. + + a bool + + + + Indicates if the table has a some type of border. + + the type of border + a bool + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Updates the border flag for a side based on the specified width. A width + of 0 will disable the border on that side. Any other width enables it. + + @param width + width of border + @param side + border side constant + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A RectangleReadOnly is the representation of a geometric figure. + It's the same as a Rectangle but immutable. + + + + + + + + + Constructs a RectangleReadOnly-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a RectangleReadOnly -object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the Rectangle (0, 90, 180, 270) + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a RectangleReadOnly-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object. + + another Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Switches lowerleft with upperright + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A special-version of LIST which use roman-letters. + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + Initialization + + + Initialization + + @param symbolIndent indent + + + Initialization + @param romanlower roman-char in lowercase + @param symbolIndent indent + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A Section is a part of a Document containing + other Sections, Paragraphs, List + and/or Tables. + + + You can not construct a Section yourself. + You will have to ask an instance of Section to the + Chapter or Section to which you want to + add the new Section. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + Paragraph title211 = new Paragraph("This is SubSection 1 in Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.BOLD, new Color(255, 0, 0))); + Section section11 = section1.AddSection(40, title211, 2); + section11.Add(someSectionText);strong> + + + + + A possible number style. The default number style: "1.2.3." + @since iText 2.0.8 + + + A possible number style. For instance: "1.2.3" + @since iText 2.0.8 + + + This is the title of this section. + + + This is the number of sectionnumbers that has to be shown before the section title. + + + The style for sectionnumbers. + @since iText 2.0.8 + + + The indentation of this section on the left side. + + + The indentation of this section on the right side. + + + The additional indentation of the content of this section. + + + This is the number of subsections. + + + This is the complete list of sectionnumbers of this section and the parents of this section. + + + Indicates if the Section will be complete once added to the document. + @since iText 2.0.8 + + + Indicates if the Section was added completely to the document. + @since iText 2.0.8 + + + Indicates if this is the first time the section was added. + @since iText 2.0.8 + + + false if the bookmark children are not visible + + + true if the section has to trigger a new page + + + The bookmark title if different from the content title + + + + Constructs a new Section. + + + Has 2 overloads. + + + + + Constructs a new Section. + + a Paragraph + the numberDepth + + + + Sets the number of this section. + + the number of this section + an ArrayList, containing the numbers of the Parent + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Paragraph, List or Table + to this Section. + + index at which the specified element is to be inserted + an object of type Paragraph, List or Table + + + + Adds a Paragraph, List, Table or another Section + to this Section. + + an object of type Paragraph, List, Table or another Section + a bool + + + + Adds a collection of Elements + to this Section. + + a collection of Paragraphs, Lists and/or Tables + true if the action succeeded, false if not. + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Creates a Section, add it to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a marked section. For use in class MarkedSection only! + + + + Creates a Section, adds it to this Section and returns it. + + the title of the new section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param indentation the indentation of the new section + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the title of the new section + the newly added Section + + + + Get/set the title of this section + + a Paragraph + + + Sets the style for numbering sections. + Possible values are NUMBERSTYLE_DOTTED: 1.2.3. (the default) + or NUMBERSTYLE_DOTTED_WITHOUT_FINAL_DOT: 1.2.3 + @since iText 2.0.8 + + + Constructs a Paragraph that will be used as title for a Section or Chapter. + @param title the title of the section + @param numbers a list of sectionnumbers + @param numberDepth how many numbers have to be shown + @param numberStyle the numbering style + @return a Paragraph object + @since iText 2.0.8 + + + + Checks if this object is a Chapter. + + + true if it is a Chapter, + false if it is a Section + + + + + Checks if this object is a Section. + + + true if it is a Section, + false if it is a Chapter. + + + + + Get/set the numberdepth of this Section. + + a int + + + + Get/set the indentation of this Section on the left side. + + the indentation + + + + Get/set the indentation of this Section on the right side. + + the indentation + + + + Get/set the indentation of the content of this Section. + + the indentation + + + + Returns the depth of this section. + + the depth + + + + Get/set the bookmark + + a bool + + + Gets the bookmark title. + @return the bookmark title + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Changes the Chapter number. + + + Indicates if this is the first time the section is added. + @since iText2.0.8 + @return true if the section wasn't added yet + + + @see com.lowagie.text.LargeElement#isAddedCompletely() + @since iText 2.0.8 + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Adds a new page to the section. + @since 2.1.1 + + + Returns the first occurrence of a special symbol in a String. + + @param string a String + @return an index of -1 if no special symbol was found + + + Gets a chunk with a symbol character. + @param c a character that has to be changed into a symbol + @param font Font if there is no SYMBOL character corresponding with c + @return a SYMBOL version of a character + + + Looks for the corresponding symbol in the font Symbol. + + @param c the original ASCII-char + @return the corresponding symbol in font Symbol + + + A collection of convenience methods that were present in many different iText + classes. + + + + + + + + + + Utility method to extend an array. + @param original the original array or null + @param item the item to be added to the array + @return a new array with the item appended + + + Checks for a true/false value of a key in a Properties object. + @param attributes + @param key + @return + + + + This method makes a valid URL from a given filename. + + + + + a given filename + a valid URL + + + Unescapes an URL. All the "%xx" are replaced by the 'xx' hex char value. + @param src the url to unescape + @return the eunescaped value + + + + This method is an alternative for the Stream.Skip()-method + that doesn't seem to work properly for big values of size. + + the stream + the number of bytes to skip + + + Measurement conversion from millimeters to points. + @param value a value in millimeters + @return a value in points + @since 2.1.2 + + + Measurement conversion from millimeters to inches. + @param value a value in millimeters + @return a value in inches + @since 2.1.2 + + + Measurement conversion from points to millimeters. + @param value a value in points + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from points to inches. + @param value a value in points + @return a value in inches + @since 2.1.2 + + + Measurement conversion from inches to millimeters. + @param value a value in inches + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from inches to points. + @param value a value in inches + @return a value in points + @since 2.1.2 + + + Reads the contents of a file to a String. + @param path the path to the file + @return a String with the contents of the file + @since iText 5.0.0 + + + Converts an array of bytes to a String of hexadecimal values + @param bytes a byte array + @return the same bytes expressed as hexadecimal values + + + + The ParserBase-class provides XML document parsing. + + + + + Begins the process of processing an XML document + + the XML document to parse + + + + This method gets called when a start tag is encountered. + + + + the name of the tag that is encountered + the list of attributes + + + + This method gets called when an end tag is encountered. + + + + the name of the tag that ends + + + + This method gets called when characters are encountered. + + an array of characters + the start position in the array + the number of characters to read from the array + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains all possible id values of the entity tag + that can be translated to a character in font Symbol. + + + Gets a chunk with a symbol character. + @param e a symbol value (see Entities class: alfa is greek alfa,...) + @param font the font if the symbol isn't found (otherwise Font.SYMBOL) + @return a Chunk + + + Looks for the corresponding symbol in the font Symbol. + + @param name the name of the entity + @return the corresponding character in font Symbol + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains the names of entities and their unicode value. + + + Translates an entity to a unicode character. + + @param name the name of the entity + @return the corresponding unicode character + + + + Translates a IANA encoding name to a Java encoding. + + + The object that maps IANA to Java encodings. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a comment is found. + @param text the comment text + + + + possible states + + + the state stack + + + The current character. + + + The previous character. + + + the line we are currently reading + + + the column where the current character occurs + + + was the last character equivalent to a newline? + + + A boolean indicating if the next character should be taken into account + if it's a space character. When nospace is false, the previous character + wasn't whitespace. + @since 2.1.5 + + + the current state + + + Are we parsing HTML? + + + current text (whatever is encountered between tags) + + + + current tagname + + + current attributes + + + The handler to which we are going to forward document content + + + The handler to which we are going to forward comments. + + + Keeps track of the number of tags that are open. + + + the quote character that was used to open the quote. + + + the attribute key. + + + the attribute value. + + + Creates a Simple XML parser object. + Call Go(BufferedReader) immediately after creation. + + + Does the actual parsing. Perform this immediately + after creating the parser object. + + + Gets a state from the stack + @return the previous state + + + Adds a state to the stack. + @param s a state to add to the stack + + + Flushes the text that is currently in the buffer. + The text can be ignored, added to the document + as content or as comment,... depending on the current state. + + + Initialized the tag name and attributes. + + + Sets the name of the tag. + + + processes the tag. + @param start if true we are dealing with a tag that has just been opened; if false we are closing a tag. + + + Throws an exception + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param r the document. The encoding is already resolved. The reader is not closed + @throws IOException on error + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param in the document. The encoding is deduced from the stream. The stream is not closed + @throws IOException on error + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + + + This {@link NewLineHandler} returns true on the tags p, + blockqouteand br + + @author Balder + + + + Default constructor + + @since 5.0.6 + + + Always returns false. + @author Balder + @since 5.0.6 + + + + A NewLineHandler determines if an encountered tag should result in a new line + in a document. + + @author Balder + @since 5.0.6 + + + @param tag the tag to check if after this one a new line should be in a document + @return true in case a new line should be added. + @since 5.0.6 + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + @param shorthand + @throws IOException + + + Adds a title. + @param title + + + Adds a title. + @param title + + + Adds a description. + @param desc + + + Adds a description. + @param desc + + + Adds a subject. + @param subject + + + Adds a subject. + @param subject array of subjects + + + Adds a single author. + @param author + + + Adds an array of authors. + @param author + + + Adds a single publisher. + @param publisher + + + Adds an array of publishers. + @param publisher + + + + A wrapper for an Encoding to suppress the preamble. + + + + Key for the default language. + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Add a language. + + + Process a property. + + + Creates a String that can be used in an XmpSchema. + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + @throws IOException + + + Adds keywords. + @param keywords + + + Adds the producer. + @param producer + + + Adds the version. + @param version + + + StringBuilder to construct an XMP array. + + + An array that is unordered. + + + An array that is ordered. + + + An array with alternatives. + + + the type of array. + + + Creates an XmpArray. + @param type the type of array: UNORDERED, ORDERED or ALTERNATIVE. + + + Returns the String representation of the XmpArray. + @return a String representation + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History�s softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + @param shorthand + @throws IOException + + + Adds the creatortool. + @param creator + + + Adds the creation date. + @param date + + + Adds the modification date. + @param date + + + Adds the meta data date. + @param date + + + Adds the identifier. + @param id + + + Adds the nickname. + @param name + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + @throws IOException + + + Reads an XMP stream into an org.w3c.dom.Document objects. + Allows you to replace the contents of a specific tag. + @since 2.1.3 + + + String used to fill the extra space. + + + Processing Instruction required at the start of an XMP stream + @since iText 2.1.6 + + + Processing Instruction required at the end of an XMP stream for XMP streams that can be updated + @since iText 2.1.6 + + + Constructs an XMP reader + @param bytes the XMP content + @throws ExceptionConverter + @throws IOException + @throws SAXException + + + Replaces the content of a tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 2.1.6 the return type has changed from void to boolean + + + Replaces the content of an attribute in the description tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 5.0.0 the return type has changed from void to boolean + + + Adds a tag. + @param namespaceURI the URI of the namespace + @param parent the tag name of the parent + @param localName the name of the tag to add + @param value the new content for the tag + @return true if the content was successfully added + @since 2.1.6 + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param domDocument the Document that contains the node + @param n the Node to add the text to + @param value the text to add + + + Writes the document to a byte array. + + + Abstract superclass of the XmpSchemas supported by iText. + + + the namesspace + + + Constructs an XMP schema. + @param xmlns + + + The String representation of the contents. + @return a String representation. + + + Processes a property + @param buf + @param p + + + @return Returns the xmlns. + + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @see java.util.Properties#setProperty(java.lang.String, java.lang.String) + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @param content + @return + + + With this class you can create an Xmp Stream that can be used for adding + Metadata to a PDF Dictionary. Remark that this class doesn't cover the + complete XMP specification. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + Creates an XmpWriter. + @param os + @param utfEncoding + @param extraSpace + @throws IOException + + + Creates an XmpWriter. + @param os + @throws IOException + + + @param os + @param info + @throws IOException + + + @param os + @param info + @throws IOException + @since 5.0.1 (generic type in signature) + + + Sets the XMP to read-only + + + @param about The about to set. + + + Adds an rdf:Description. + @param xmlns + @param content + @throws IOException + + + Adds an rdf:Description. + @param s + @throws IOException + + + @param schemaNS The namespace URI for the property. Has the same usage as in getProperty. + @param propName The name of the property. + Has the same usage as in getProperty(). + @param value the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
    + The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and + byte[] are handled, on all other toString() is called. + @throws XMPException Wraps all errors and exceptions that may occur. +
    + + Simplifies the construction of an array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an ordered array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an alternate array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Flushes and closes the XmpWriter. + @throws IOException + + + Flushes and closes the XmpWriter. + @throws IOException + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + Adds a title. + + @param xmpMeta + @param title + + + Sets a title. + + @param xmpMeta + @param title + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a description. + + @param xmpMeta + @param desc + + + Sets a description. + + @param xmpMeta + @param desc + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a subject. + + @param xmpMeta + @param subject + + + Sets a subject. + + @param xmpMeta + @param subject array of subjects + + + Adds a single author. + + @param xmpMeta + @param author + + + Sets an array of authors. + + @param xmpMeta + @param author + + + Adds a single publisher. + + @param xmpMeta + @param publisher + + + Sets an array of publishers. + + @param xmpMeta + @param publisher + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + Adds keywords. + + @param xmpMeta + @param keywords + + + Adds the producer. + + @param xmpMeta + @param producer + + + Adds the version. + + @param xmpMeta + @param version + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History's softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + Adds the creatortool. + + @param xmpMeta + @param creator + + + Adds the creation date. + + @param xmpMeta + @param date + + + Adds the modification date. + + @param xmpMeta + @param date + + + Adds the meta data date. + + @param xmpMeta + @param date + + + Sets the identifier. + + @param xmpMeta + @param id + + + Adds the nickname. + + @param xmpMeta + @param name + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + + @author psoares + + + Print writer. + + + Canonical output. + + + Processing XML 1.1 document. + + + Default constructor. + + + Sets whether output is canonical. + + + Sets the output stream for printing. + + + Sets the output writer. + + + Writes the specified node, recursively. + + + Returns a sorted list of attributes. + + + Normalizes and prints the given string. + + + Normalizes and print the given character. + + + This class converts XML into plain text stripping all tags. + + + Buffer that stores all content that is encountered. + + + Static method that parses an XML Stream. + @param is the XML input that needs to be parsed + @return a String obtained by removing all tags from the XML + + + Creates an instance of XML to TXT. + + + @return the String after parsing. + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Map) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + Contains utility methods for XML. + @author Balder + @since 5.0.6 + + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + @since 5.0.6 + + + + Unescapes 'lt', 'gt', 'apos', 'quote' and 'amp' to the + corresponding character values. + @param s a string representing a character + @return a character value + + + Checks if a character value should be escaped/unescaped. + @param s the String representation of an integer + @return true if it's OK to escape or unescape this value + + + Checks if a character value should be escaped/unescaped. + @param c a character value + @return true if it's OK to escape or unescape this value + + + Looks for a character in a character array, starting from a certain position + @param needle the character you're looking for + @param haystack the character array + @param start the start position + @return the position where the character was found, or -1 if it wasn't found. + + + Returns the IANA encoding name that is auto-detected from + the bytes specified, with the endian-ness of that encoding where appropriate. + (method found in org.apache.xerces.impl.XMLEntityManager, originally published + by the Apache Software Foundation under the Apache Software License; now being + used in iText under the MPL) + @param b4 The first four bytes of the input. + @return an IANA-encoding string + @since 5.0.6 + + + + A special-version of LIST whitch use zapfdingbats-letters. + + @see com.lowagie.text.List + @author Michael Niedermair and Bruno Lowagie + + + char-number in zapfdingbats + + + Creates a ZapfDingbatsList + + @param zn a char-number + + + Creates a ZapfDingbatsList + + @param zn a char-number + @param symbolIndent indent + + + Sets the dingbat's color. + + @param zapfDingbatColor color for the ZapfDingbat + + + set the char-number + @param zn a char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A special-version of LIST whitch use zapfdingbats-numbers (1..10). + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + which type + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + get the type + + @return char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + Objects implementing Indentable allow to set indentation left and right. + + + Sets the indentation on the left side. + + @param indentation the new indentation + + + Sets the indentation on the right side. + + @param indentation the new indentation + + + Objects implementing Spaceable allow setting spacing before and after. + + + Sets the spacing before. + + @param spacing the new spacing + + + Sets the spacing after. + + @param spacing the new spacing + + + @author itextpdf.com + + + + Receive a writer and the document to do certain operations on them. + @param writer the PdfWriter + @param doc the document + @throws DocumentException + + + This class contains version information about iText. + DO NOT CHANGE THE VERSION INFORMATION WITHOUT PERMISSION OF THE COPYRIGHT HOLDERS OF ITEXT. + Changing the version makes it extremely difficult to debug an application. + Also, the nature of open source software is that you honor the copyright of the original creators of the software. + + + String that will indicate if the AGPL version is used. + + + The iText version instance. + + + This String contains the name of the product. + iText is a registered trademark by iText Group NV. + Please don't change this constant. + + + This String contains the version number of this iText release. + For debugging purposes, we request you NOT to change this constant. + + + This String contains the iText version as shown in the producer line. + iText is a product developed by iText Group NV. + iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + The license key. + + + Gets an instance of the iText version that is currently used. + Note that iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + * Gets the product name. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the product name + + + * Gets the release number. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the release number + + + * Returns the iText version as shown in the producer line. + * iText is a product developed by iText Group NV. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return iText version + + + Returns a license key if one was provided, or null if not. + @return a license key. + + + Checks if the AGPL version is used. + @return returns true if the AGPL version is used. + + + An element that is not an element, it holds {@link Element#WRITABLE_DIRECT} + as Element type. It implements WriterOperation to do operations on the + {@link PdfWriter} and the {@link Document} that must be done at the time of + the writing. Much like a {@link VerticalPositionMark} but little different. + + @author itextpdf.com + + + + @return {@link Element#WRITABLE_DIRECT} + + + The TYPE_UNKNOWN is an initial type value + + + The min value equivalent to zero. If absolute value less then ZERO it considered as zero. + + + The values of transformation matrix + + + The transformation type + + + Multiply matrix of two AffineTransform objects + @param t1 - the AffineTransform object is a multiplicand + @param t2 - the AffineTransform object is a multiplier + @return an AffineTransform object that is a result of t1 multiplied by matrix t2. + + + + A utility class to perform base64 encoding and decoding as specified + in RFC-1521. See also RFC 1421. + + @version $Revision: 1.4 $ + + + + + marker for invalid bytes + + + + marker for accepted whitespace bytes + + + + marker for an equal symbol + + + + Encode the given byte[]. + + the source string. + the base64-encoded data. + + + + Encode the given byte[]. + + the source string. + a linefeed is added after linefeed characters; + must be dividable by four; 0 means no linefeeds + the base64-encoded data. + + + + Encode the given string. + the source string. + the base64-encoded string. + + + + Decode the given byte[]. + + + the base64-encoded data. + the decoded data. + + + + Decode the given string. + + the base64-encoded string. + the decoded string. + + + + Byte buffer container including length of valid data. + + @since 11.10.2006 + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + + Loads the stream into a buffer. + + an InputStream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + + + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + Note: UTF-32 flavors are not supported by Java, the XML-parser will complain. + + Returns the encoding string. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + + Appends a byte to the buffer. + a byte + + + + Appends a byte array or part of to the buffer. + + a byte array + an offset with + + + + + Append a byte array to the buffer + a byte array + + + + Append another buffer to this buffer. + another ByteBuffer + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + + An OutputStream that counts the written bytes. + + @since 08.11.2006 + + + + + the decorated output stream + + + + the byte counter + + + + Constructor with providing the output stream to decorate. + an OutputStream + + + the bytesWritten + + + + + + + Abstract class for reading filtered character streams. + The abstract class FilterReader itself + provides default methods that pass all requests to + the contained stream. Subclasses of FilterReader + should override some of these methods and may also provide + additional methods and fields. + + @author Mark Reinhold + @since JDK1.1 + + + + Reads a single character. + + @exception IOException If an I/O error occurs + + + Reads characters into a portion of an array. + + @exception IOException If an I/O error occurs + + + ** + + + + @since 22.08.2006 + + + + + the result of the escaping sequence + + + + count the digits of the sequence + + + + the state of the automaton + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + + @since 16.02.2006 + + + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + + + @since 22.08.2006 + + + + initializes the parser container + + + Returns the length of the input. + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + + Skips the next char. + + + + Returns the current position. + + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + + @since 12.10.2006 + + + + + Private constructor + + + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + + @since 11.08.2006 + + + + + private constructor + + + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + + Asserts that a specific language is set. + a specific lang + Specific language is null or empty + + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + + Asserts that any string parameter is set. + any string parameter + Thrown if the parameter is null or has length 0. + + + + Asserts that the xmp object is of this implemention + (). + the XMP object + A wrong implentaion is used. + + + + Parser for "normal" XML serialisation of RDF. + + @since 14.07.2006 + + + + + Start of coreSyntaxTerms. + + + + End of coreSyntaxTerms + + + + Start of additions for syntax Terms. + + + + End of of additions for syntaxTerms. + + + + Start of oldTerms. + + + + End of oldTerms. + + + + ! Yes, the syntax terms include the core terms. + + + + this prefix is used for default namespaces + + + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + thown on parsing errors + + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* )* + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.14 propertyElt + + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attibute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + Add a leaf node with the text value and qualifiers for the attributes. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thown on parsing errors + + + + + Adds a child node. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thown on parsing errors + + + + Adds a qualifier node. + + the parent xmp node + the name of the qualifier which has to be + QName including the default prefix + the value of the qualifier + Returns the newly created child node. + thown on parsing errors + + + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thown on parsing errors + + + + Checks if the node is a white space. + an XML-node + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + + an XML node + Returns the term ID. + + + + A character-stream reader that allows characters to be pushed back into the + stream. + + @author Mark Reinhold + @since JDK1.1 + + + + + Pushback buffer + + + + Current position in buffer + + + + + Creates a new pushback reader with a one-character pushback buffer. + + The reader from which characters will be read + + + + Checks to make sure that the stream has not been closed. + + + + Reads a single character. + + The character read, or -1 if the end of the stream has been + reached + + If an I/O error occurs + + + + Reads characters into a portion of an array. + + Destination buffer + Offset at which to start writing characters + Maximum number of characters to read + + The number of characters read, or -1 if the end of the + stream has been reached + + If an I/O error occurs + + + + Pushes back a single character by copying it to the front of the + pushback buffer. After this method returns, the next character to be read + will have the value (char)c. + + The int value representing a character to be pushed back + + If the pushback buffer is full, + or if some other I/O error occurs + + + + Pushes back a portion of an array of characters by copying it to the + front of the pushback buffer. After this method returns, the next + character to be read will have the value cbuf[off], the + character after that will have the value cbuf[off+1], and + so forth. + + Character array + Offset of first character to push back + Number of characters to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Pushes back an array of characters by copying it to the front of the + pushback buffer. After this method returns, the next character to be + read will have the value cbuf[0], the character after that + will have the value cbuf[1], and so forth. + + Character array to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Closes the stream and releases any system resources associated with + it. Once the stream has been closed, further read(), + unread(), ready(), or skip() invocations will throw an IOException. + Closing a previously closed stream has no effect. + + If an I/O error occurs + + + + @since 09.11.2006 + + + + + XML localname + + + + XML namespace prefix + + + + Splits a qname into prefix and localname. + a QName + + + + Constructor that initializes the fields + the prefix + the name + + + the localName + + + the prefix + + + Returns whether the QName has a prefix. + + + + Utility functions for the XMPToolkit implementation. + + @since 06.06.2006 + + + + + segments of a UUID + + + + length of a UUID + + + + + + init char tables + + + + Private constructor + + + + + + + + a schema namespace + + an XMP Property + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + Check some requirements for an UUID: +
      +
    • Length of the UUID is 32
    • +
    • The Delimiter count is 4 and all the 4 delimiter are on their right + position (8,13,18,23)
    • +
    + +
    + uuid to test + true - this is a well formed UUID, false - UUID has not the expected format +
    + + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + These are XML names, except that they must not contain a colon. + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + + + Replaces the ASCII control chars with a space. + + + a node value + Returns the cleaned up value + + + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + + Initializes the char tables for the chars 0x00-0xFF for later use, + according to the XML 1.1 specification + http://www.w3.org/TR/xml11 + + + + + The implementation of XMPDateTime. Internally a calendar is used + plus an additional nano seconds field, because Calendar supports only milli + seconds. The nanoSeconds convers only the resolution beyond a milli second. + + @since 16.02.2006 + + + + + The nano seconds take micro and nano seconds, while the milli seconds are in the calendar. + + + + + Use NO time zone as default + + + + Creates an XMPDateTime-instance with the current time in the default time + zone. + + + + + Creates an XMPDateTime-instance from a calendar. + + a Calendar + + + + Creates an XMPDateTime-instance from + a Date and a TimeZone. + + a date describing an absolute point in time + a TimeZone how to interpret the date + + + + Creates an XMPDateTime-instance from an ISO 8601 string. + + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + + + + + + + + + + + + + + + Returns the ISO string representation. + + + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + @since 29.06.2006 + + + + + the node iterator doing the work + + + + stores the iterator options + + + + the base namespace of the property path, will be changed during the iteration + + + + flag to indicate that skipSiblings() has been called. + + + + flag to indicate that skipSiblings() has been called. + + + + Constructor with optionsl initial values. If propName is provided, + schemaNs has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is redurce to this property within the schemaNs + advanced iteration options, see + If the node defined by the paramters is not existing. + + + Exposes the options for inner class. + + + Exposes the options for inner class. + + + + + + + + The XMPIterator implementation. + It first returns the node itself, then recursivly the children and qualifier of the node. + + @since 29.06.2006 + + + + + iteration state + + + + iteration state + + + + iteration state + + + + the recursively accumulated path + + + + the currently visited node + + + + the iterator that goes through the children and qualifier list + + + + index of node with parent, only interesting for arrays + + + + the cached PropertyInfo to return + + + + the state of the iteration + + + + the iterator for each child + + + + Constructor for the node iterator. + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + the childrenIterator + + + Returns the returnProperty. + + + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + the node that will be added to the path. + the path up to this node. + the current array index if an arrey is traversed + Returns the updated path. + + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + @since 02.10.2006 + + + + + Constructor + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + + + Implementation for . + + @since 17.02.2006 + + + + + Property values are Strings by default + + + + root of the metadata tree + + + + the xpacket processing instructions content + + + + Constructor for an empty metadata object. + + + + + Constructor for a cloned metadata tree. + + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + Returns the root node of the XMP tree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for SetProperty() and related calls, used after the node is + found or created. + + + the newly created node + + the node value, can be null + + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + + an int indicating the value type + + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. After the parsing several normalisations + are applied to the XMPTree. + + @since 01.02.2006 + + + + + Hidden constructor, initialises the SAX parser handler. + + + + + Parses the input source into an XMP metadata object, including + de-aliasing and normalisation. + + the input can be an InputStream, a String or + a byte buffer containing the XMP packet. + the parse options + Returns the resulting XMP metadata object + Thrown if parsing or normalisation fails. + + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an InputStream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , + fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + Possible improvements: + + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + @since 21.02.2006 + + + + + flag if the node is an alias + + + + list of child nodes, lazy initialized + + + + flag if the node has aliases + + + + flag if the node has an "rdf:value" child node. + + + + flag if the node is implicitly created + + + + name of the node, contains different information depending of the node kind + + + + options describing the kind of the node + + + + link to the parent node + + + + list of qualifier of the node, lazy initialized + + + + value of the node, contains different information depending of the node kind + + + + Creates an XMPNode with initial values. + + the name of the node + the value of the node + the options of the node + + + + Constructor for the node without value. + + the name of the node + the options of the node + + + Returns the parent node. + + + Returns the number of children without neccessarily creating a list. + + + Returns the number of qualifier without neccessarily creating a list. + + + Returns the name. + + + Returns the value. + + + Returns the options. + + + Returns the implicit flag + + + Returns if the node contains aliases (applies only to schema nodes) + + + Returns if the node contains aliases (applies only to schema nodes) + + + the hasValueChild + + + Returns whether this node is a language qualifier. + + + Returns whether this node is a type qualifier. + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + + + + Resets the node. + + + + an index [1..size] + Returns the child with the requested index. + + + + Adds a node as child to this node. + an XMPNode + + + + + Adds a node as child to this node. + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + an XMPNode + + + + + Replaces a node with another one. + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + the replacement XMPNode + + + + Removes a child at the requested index. + the index to remove [1..size] + + + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + + Removes all children from the node. + + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + + Removes all qualifiers from the node and sets the options appropriate. + + + + qualifier node name to look for + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + Returns whether the node has children. + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + Returns whether the node has qualifier attached. + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + + the node to add the cloned subtree + + + + Renders this node and the tree unter this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + + Dumps this node and its qualifier and children recursively. + Note: It creats empty options on every node. + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + + Utilities for XMPNode. + + @since Aug 28, 2006 + + + + + Private Constructor + + + + + Find or create a schema node if createNodes is false and + + the root of the xmp tree. + a namespace + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + + the parent node + + the node name to find + + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + + Follow an expanded path expression to find or create a node. + + the node to begin the search. + the complete xpath + flag if nodes shall be created + (when called by setProperty()) + the options for the created leaf nodes (only when + createNodes == true). + Returns the node if found or created or null. + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + the top-most node to delete. + + + + This is setting the value of a leaf node. + + an XMPNode + a value + + + + Verifies the PropertyOptions for consistancy and updates them as needed. + If options are null they are created with default values. + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to String, apply special conversions for defined + types in XMP. + + + the node value to set + Returns the String representation of the node value. + + + + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + XmpPath step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + Returns the index of th + + + + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + + an alt text array node + + + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + + the array node to check if its an alt-text array + + + + Appends a language item to an alt text array. + + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + Looks for the appropriate language item in a text alternative array.item + + + an array node + + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + + @since Aug 18, 2006 + + + + + caches the correct dc-property array forms + + + + init char tables + + + + Hidden constructor + + + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + + Visit all schemas to do general fixes and handle special cases. + + the metadata object implementation + Thrown if the normalisation fails. + + + + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + the property node of the array to repair. + Forwards unexpected exceptions. + + + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + + Moves an alias node of array form to another schema into an array + the node to be moved + the base array for the array item + Forwards XMP errors + + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + +
    +            1. If there is no dc:rights array, or an empty array -
    +               Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright.
    +            
    +            2. If there is a dc:rights array but it has no x-default item -
    +               Create an x-default item as a copy of the first item then apply rule #3.
    +            
    +            3. If there is a dc:rights array with an x-default item, 
    +               Look for a double linefeed in the value.
    +                A. If no double linefeed, compare the x-default value to the xmpDM:copyright value.
    +                    A1. If they match then leave the x-default value alone.
    +                    A2. Otherwise, append a double linefeed and 
    +                        the xmpDM:copyright value to the x-default value.
    +                B. If there is a double linefeed, compare the trailing text to the xmpDM:copyright value.
    +                    B1. If they match then leave the x-default value alone.
    +                    B2. Otherwise, replace the trailing x-default text with the xmpDM:copyright value.
    +            
    +            4. In all cases, delete the xmpDM:copyright property.
    +            
    +
    + the metadata object + the "dm:copyright"-property +
    + + + Initializes the map that contains the known arrays, that are fixed by + . + + + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. There + is only one single instance used by the toolkit. + + @since 27.01.2006 + + + + + a map of all registered aliases. + The map is a relationship from a qname to an XMPAliasInfo-object. + + + + + a map from a namespace URI to its registered prefix + + + + a map from a prefix to the associated namespace URI + + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + + + + + + + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + + + Register the standard aliases. + Note: This method is not lock because only called by the constructor. + + If the registrations of at least one alias fails. + + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + @since 11.07.2006 + + + + + Static method to Serialize the metadata object. For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so thats its possible to + serialialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to Serialize to + serialization options, can be null for default. + + + + + Serializes an XMPMeta-object as RDF into a string. + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see + ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + + @since 11.07.2006 + + + + + default padding + + + + The w/r is missing inbetween + + + + a set of all rdf attribute qualifier + + + + the stored serialization options + + + + the output stream to Serialize to + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + this writer is used to do the actual serialization + + + + the metadata object to be serialized. + + + + The actual serialization. + + the metadata object to be serialized + outputStream the output stream to Serialize to + the serialization options + + If case of wrong options or any other serialization error. + + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns bwlow ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + +
    + +
    +             	<ns:UnqualifiedStructProperty-1
    +             		... The fields as attributes, if all are simple and unqualified
    +             	/>
    +             
    +             	<ns:UnqualifiedStructProperty-2 rdf:parseType="Resource">
    +             		... The fields as elements, if none are simple and unqualified
    +             	</ns:UnqualifiedStructProperty-2>
    +             
    +             	<ns:UnqualifiedStructProperty-3>
    +             		<rdf:Description
    +             			... The simple and unqualified fields as attributes
    +             		>
    +             			... The compound or qualified fields as elements
    +             		</rdf:Description>
    +             	</ns:UnqualifiedStructProperty-3>
    +             
    +             	<ns:UnqualifiedArrayProperty>
    +             		<rdf:Bag> or Seq or Alt
    +             			... Array items as rdf:li elements, same forms as top level properties
    +             		</rdf:Bag>
    +             	</ns:UnqualifiedArrayProperty>
    +             
    +             	<ns:QualifiedProperty rdf:parseType="Resource">
    +             		<rdf:value> ... Property "value" 
    +             			following the unqualified forms ... </rdf:value>
    +             		... Qualifiers looking like named struct fields
    +             	</ns:QualifiedProperty>
    +            
    + +
    + + *** Consider numbered array items, but has compatibility problems. *** + Consider qualified form with rdf:Description and attributes. +
    + the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. +
    + + + Serializes a simple property. + + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + + Serializes an array property. + + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes a struct property. + + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursivly traversed. + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + +
    + +
    +            	<ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty>
    +            
    +            	<ns:UnqualifiedStructProperty> (If no rdf:resource qualifier)
    +            		<rdf:Description>
    +            			... Fields, same forms as top level properties
    +            		</rdf:Description>
    +            	</ns:UnqualifiedStructProperty>
    +            
    +            	<ns:ResourceStructProperty rdf:resource="URI"
    +            		... Fields as attributes
    +            	>
    +            
    +            	<ns:UnqualifiedArrayProperty>
    +            		<rdf:Bag> or Seq or Alt
    +            			... Array items as rdf:li elements, same forms as top level properties
    +            		</rdf:Bag>
    +            	</ns:UnqualifiedArrayProperty>
    +            
    +            	<ns:QualifiedProperty>
    +            		<rdf:Description>
    +            			<rdf:value> ... Property "value" following the unqualified 
    +            				forms ... </rdf:value>
    +            			... Qualifiers looking like named struct fields
    +            		</rdf:Description>
    +            	</ns:QualifiedProperty>
    +            
    + +
    +
    + the property node + property shall be rendered as attribute rather than tag + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. +
    + + + Writes the array start and end tags. + + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + + Writes indents and automatically includes the baseindend from the options. + number of indents to write + forwards exception + + + + Writes a char to the output. + a char + forwards writer exceptions + + + + Writes a String to the output. + a String + forwards writer exceptions + + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + + Writes a newline according to the options. + Forwards exception + + + + @since 11.08.2006 + + + + + + + + + + Private constructor, as + + + + + + see {@link XMPUtils#separateArrayItems(XMPMeta, String, String, String, + PropertyOptions, boolean)} + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + + Option flags to control the separation. + + Flag if commas shall be preserved + + + Forwards the Exceptions from the metadata processing + + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + + + + Remove all schema children according to the flag + doAllProperties. Empty schemas are automatically remove + by XMPNode + + + a schema node + + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + + Make sure the separator is OK. It must be one semicolon surrounded by + zero or more spaces. Any of the recognized semicolons or spaces are + allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + + opened and closing quote in a string + + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + + a char + Return the character kind. + + + + the open quote char + Returns the matching closing quote for an open quote. + + + + Add quotes to the item. + + + the array item + + the open quote character + + the closing quote character + + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + Representates an XMP XmpPath with segment accessor methods. + + @since 28.02.2006 + + + + + Marks a struct field step , also for top level nodes (schema "fields"). + + + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + + Marks an array index step + + + + stores the segments of an XmpPath + + + + Append a path segment + + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + + Parser for XMP XPaths. + + @since 01.03.2006 + + + Private constructor + + + + @param path + @param pos + @throws XmpException + + + Parses a struct segment + @param pos the current position in the path + @return Retusn the segment or an errror + @throws XmpException If the sement is empty + + + Parses an array index segment. + + @param pos the xmp path + @return Returns the segment or an error + @throws XmpException thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + @param schemaNs the root namespace + @param pos the parsing position helper + @param expandedXPath the path to contribute to + @throws XmpException If the path is not valid. + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + @param qualName + a qualifier name + @throws XmpException + If the name is not conformant + + + Verify if an XML name is conformant. + + @param name + an XML name + @throws XmpException + When the name is not XML conformant + + + + This objects contains all needed char positions to parse. + + + the complete path + the end of a segment name + + + the begin of a step + + + the end of a step + + + + A segment of a parsed XmpPath. + + @since 23.06.2006 + + + + + flag if segment is an alias + + + + alias form if applicable + + + + kind of the path segment + + + + name of the path segment + + + + Constructor with initial values. + + the name of the segment + + + + Constructor with initial values. + + the name of the segment + the kind of the segment + + + Returns the kind. + + + Returns the name. + + + the flag to set + + + Returns the aliasForm if this segment has been created by an alias. + + + + + Returns the year, can be negative. + + + Returns The month in the range 1..12. + + + Returns the day of the month in the range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Returns the minute in the range 0..59. + + + Returns the second in the range 0..59. + + + Returns milli-, micro- and nano seconds. + Nanoseconds within a second, often left as zero? + + + Returns the time zone. + + + + Returns the ISO 8601 string representation of the date and time. + + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + + This class represents the set of XMP metadata as a DOM representation. It has methods to read and + modify all kinds of properties, create an iterator over all properties and Serialize the metadata + to a String, byte-array or OutputStream. + + @since 20.01.2006 + + + + + This correlates to the about-attribute, + returns the empty String if no name is set. + + Returns the name of the XMP object. + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Provides access to items within an array. The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last existing array + item. + Returns a XMPProperty containing the value and the options or + null if the property does not exist. + Wraps all errors and exceptions that may occur. + + + + Returns the number of items in the array. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + + + + + + Replaces an item within an array. The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use to find + out the length of the array. + the new value of the array item. Has the same usage as propValue in + SetProperty(). + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + + Inserts an item into an array previous to the given index. The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index to insert the new item. Arrays in XMP are indexed from 1. Use + XmpConst.ARRAY_LAST_ITEM to append items. + the new value of the array item. Has the same usage as + propValue in SetProperty(). + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + + + + Provides access to fields within a nested structure. The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + the value of thefield, if the field has a value. + Has the same usage as propValue in GetProperty. + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Provides access to a qualifier attached to a property. The namespace for the qualifier is + passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + are like struct fields. See the introductory discussion of qualified properties for more + information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in GetProperty. + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Deletes the given XMP subtree rooted at the given property. It is not an error if the + property does not exist. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. Has the same usage as in GetProperty. + + + + Deletes the given XMP subtree rooted at the given array item. It is not an error if the array + item does not exist. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. It is not an error if the + field does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns true if the property exists. + + + + Tells if the array item exists. + + The namespace URI for the array. Has the same usage as in + GetProperty(). + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + Returns true if the array exists, false otherwise. + + + + DoesStructFieldExist tells if the struct field exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + Returns true if the field exists. + + + + DoesQualifierExist tells if the qualifier exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty(). + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + Returns true if the qualifier exists. + + + + + Modifies the value of a selected item in an alt-text array. Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + Note: In a future version of this API a method + using Java java.lang.Locale will be added. + + + The namespace URI for the alt-text array. Has the same usage as in + GetProperty(). + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + + These are very similar to GetProperty() and SetProperty() above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + The path composition functions in XMPPathFactory may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Boolean value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns an Integer value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Long value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Double value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a XMPDateTime-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Java Calendar-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a byte[]-array contained the decoded base64 value + or null if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + Note: There is no SetPropertyString(), + because SetProperty() sets a string value. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a String value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to set a property to a literal boolean value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal int value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal long value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal double value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with an XMPDateTime-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with a Java Calendar-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as Java Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property from a binary byte[]-array, + which is serialized as base64-string. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + + + Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, + properties within a specific schema, or a subtree rooted at a specific node. + + Optional schema namespace URI to restrict the iteration. Omitted (visit all + schema) by passing null or empty String. + Optional property name to restrict the iteration. May be an arbitrary path + expression. Omitted (visit all properties) by passing null or empty + String. If no schema URI is given, it is ignored. + Option flags to control the iteration. See for + details. + Returns an XMPIterator for this XMPMeta-object + considering the given options. + Wraps all errors and exceptions that may occur. + + + + + Perform the normalization as a separate parsing step. + Normally it is done during parsing, unless the parsing option + is set to true. + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + + Renders this node and the tree unter this node in a human readable form. + Returns a multiline string containing the dump. + + + + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + + Determines if a name is an alias, and what it is aliased to. + + + The namespace URI of the alias. Must not be null or the empty + string. + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + + Searches for registered aliases. + + + an XML conform qname + Returns if an alias definition for the given qname to another + schema and property is registered. + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + + Options for XMPSchemaRegistryImpl#registerAlias. + + @since 20.02.2006 + + + + + This is a direct mapping. The actual data type does not matter. + + + + The actual is an unordered array, the alias is to the first element of the array. + + + + The actual is an ordered array, the alias is to the first element of the array. + + + + The actual is an alternate array, the alias is to the first element of the array. + + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + + returns a s object + If the options are not consistant. + + + + + Options for XMPIterator construction. + + @since 24.01.2006 + + + + + Just do the immediate children of the root, default is subtree. + + + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + + Return just the leaf part of the path, default is the full path. + + + + Omit all qualifiers. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + + + + Options for . + + @since 24.01.2006 + + + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + + Do not reconcile alias differences, throw an exception instead. + + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + + Sets the options to the default values. + + + + Returns the requireXMPMeta. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the option "omit normalization". + + + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + @since 03.07.2006 + + + + + may be used in the future + + + + Updated by iText. Indicates if the property should be writted as a separate node + + + + + Default constructor + + + + + Intialization constructor + + the initialization options + If the options are not valid + + + Return whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + the value to set + Returns this to enable cascaded options. + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns true if only array options are set. + + + + + Compares two options set for array compatibility. + + other options + Returns true if the array options of the sets are equal. + + + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + other options + If illegal options are provided + + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + @since 24.01.2006 + + + + + Omit the XML packet wrapper. + + + + Mark packet as read-only. Default is a writeable packet. + + + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To Serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + + Use the canonical form of RDF if set. By default the compact form is used + + + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + + + Sort the struct properties and qualifier before serializing + + + + Bit indicating little endian encoding, unset is big endian + + + + Bit indication UTF16 encoding. + + + + UTF8 encoding; this is the default + + + + UTF16BE encoding + + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + + Omits the Toolkit version attribute, not published, only used for Unit tests. + + + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + + Default constructor. + + + + + Constructor using inital options + the inital options + Thrown if options are not consistant. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the baseIndent. + + + Returns the indent. + + + Returns the newline. + + + Returns the padding. + + + Returns whether the Toolkit version attribute shall be omitted. + Note: This options can only be set by unit tests. + + + Returns the encoding as Java encoding String. + + + + + Returns clone of this SerializeOptions-object with the same options set. + + + + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + @since 24.01.2006 + + + + + a map containing the bit names + + + + the internal int containing all options + + + + The default constructor. + + + + + Constructor with the options bit mask. + + the options bit mask + If the options are not correct + + + + Is friendly to access it during the tests. + Returns the options. + + + + Creates a human readable string from the set options. Note: This method is quite + expensive and should only be used within tests or as + Returns a String listing all options that are set to true by their name, + like "option1 | option4". + + + + To be implemeted by inheritants. + Returns a bit mask where all valid option bits are set. + + + + Resets the options. + + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + + + Returns the options as hex bitmask. + + + + To be implemeted by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + + Checks options before they are set. + First it is checked if only defined options are used, + second the additional -method is called. + + the options to check + Thrown if the options are invalid. + + + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + This interface is used to return info about an alias. + + @since 27.01.2006 + + + + Returns Returns the namespace URI for the base property. + + + Returns the default prefix for the given base property. + + + Returns the path of the base property. + + + Returns the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + This interface is used to return a text property together with its and options. + + @since 23.01.2006 + + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + Returns the language of the alt-text item. + + + + This interface is used to return a property together with its path and namespace. + It is returned when properties are iterated with the XMPIterator. + + @since 06.07.2006 + + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + Common constants for the XMP Toolkit. + + @since 20.01.2006 + + + + + The XML namespace for XML. + + + + The XML namespace for RDF. + + + + The XML namespace for the Dublin Core schema. + + + + The XML namespace for the IPTC Core schema. + + + + The XML namespace for the IPTC Extension schema. + + + + The XML namespace for the DICOM medical schema. + + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + + The XML namespace Adobe XMP Metadata. + + + + The XML namespace for the XMP "basic" schema. + + + + The XML namespace for the XMP copyright schema. + + + + The XML namespace for the XMP digital asset management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the Photoshop custom schema. + + + + The XML namespace for the Photoshop Album schema. + + + + The XML namespace for Adobe's EXIF schema. + + + + NS for the CIPA XMP for Exif document v1.1 + + + + The XML namespace for Adobe's TIFF schema. + + + + BExt Schema + + + + RIFF Info Schema + + + + Transform XMP + + + + Adobe Flash SWF + + + + legacy Dublin Core NS, will be converted to NS_DC + + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + + The XML namespace for fields of the Dimensions type. + + + + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + + The XML namespace for fields of the ResourceEvent type. + + + + The XML namespace for fields of the ResourceRef type. + + + + The XML namespace for fields of the Version type. + + + + The XML namespace for fields of the JobRef type. + + + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + + Index that has the meaning to be always the last item in an array. + + + + Node name of an array item. + + + + The x-default string for localized properties + + + + xml:lang qualfifier + + + + rdf:type qualfifier + + + + Processing Instruction (PI) for xmp packet + + + + XMP meta tag version new + + + + XMP meta tag version old + + + + A factory to create XMPDateTime-instances from a Calendar or an + ISO 8601 string or for the current time. + + @since 16.02.2006 + + + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Creates an XMPDateTime from a Calendar-object. + + a Calendar-object. + An XMPDateTime-object. + + + + Creates an empty XMPDateTime-object. + Returns an XMPDateTime-object. + + + + + + Creates an XMPDateTime from an ISO 8601 string. + + The ISO 8601 string representation of the date/time. + An XMPDateTime-object. + When the ISO 8601 string is non-conform + + + + Sets the local time zone without touching any other Any existing time zone value is replaced, + the other date/time fields are not adjusted in any way. + + the XMPDateTime variable containing the value to be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is UTC. If the time zone is not UTC, the time is + adjusted and the time zone set to be UTC. + + + the XMPDateTime variable containing the time to + be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the XMPDateTime variable containing the time to be modified. + Returns an updated XMPDateTime-object. + + + + @since 21.09.2006 + + + + + Note: This is an error code introduced by Java. + + + + This exception wraps all errors that occur in the XMP Toolkit. + + @since 16.02.2006 + + + + + the errorCode of the XMP toolkit + + + + Constructs an exception with a message and an error code. + the message + the error code + + + + Constructs an exception with a message, an error code and a Throwable + the error message. + the error code + the exception source + + + Returns the errorCode. + + + + Creates XMPMeta-instances from an InputStream + + @since 30.01.2006 + + + + + The singleton instance of the XMPSchemaRegistry. + + + + + cache for version info + + + + Returns the singleton instance of the XMPSchemaRegistry. + + + Returns an empty XMPMeta-object. + + + + + + + + + + Serializes an XMPMeta-object as RDF into an OutputStream + with default options. + + a metadata object + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into an OutputStream. + + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + + Resets the _schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purpurses. + + + + + Obtain version information. The XMPVersionInfo singleton is created the first time + its requested. + + Returns the version information. + + + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNs and + "i" is the decimal representation of itemIndex. + Throws exeption if index zero is used. + + + + Compose the path expression for a field in a struct. The result can be added to the + path of + + + The namespace URI for the field. Must not be null or the empty + string. + The name of the field. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNs and "fNS" is the prefix for fieldNs. + Thrown if the path to create is not valid. + + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNs and "qNS" is the prefix for qualNs. + Thrown if the path to create is not valid. + + + + Compose the path expression to select an alternate item by language. The + path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNs. + + + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + + Utility methods for XMP. I included only those that are different from the + Java default conversion utilities. + + @since 21.02.2006 + + + + + Private constructor + + + + Create a single edit string from an array of strings. + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + Separate a single edit string into an array of strings. + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + + + Alias without the new option deleteEmptyValues. + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Forwards the Exceptions from the metadata processing + + + + + + Convert from boolean to string. + + + a boolean value + The XMP string representation of the boolean. The values used are + given by the constnts and + . + + + + Converts a string value to an int. + + + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + + + an int value + The string representation of the int. + + + + Converts a string value to a long. + + + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to a double. + + + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to an XMPDateTime. + + + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + + + an XMPDateTime + The string representation of the long. + + + + Convert from a byte array to a base64 encoded string. + + + the byte array to be converted + Returns the base64 string. + + + + Decode from Base64 encoded string to raw data. + + + a base64 encoded string + Returns a byte array containg the decoded string. + Thrown if the given string is not property base64 encoded + + + + Implementation of the IndicLigaturizer for Devanagari. + + Warning: this is an incomplete and experimental implementation of Devanagari. This implementation should not be used in production. + + + Constructor for the IndicLigaturizer for Devanagari. + + + Produces a blank (or empty) signature. Useful for deferred signing with + MakeSignature.signExternalContainer(). + @author Paulo Soares + + + + Add + args: ByVal key As IComparable, ByVal data As Object + key is object that implements IComparable interface + performance tip: change to use use int type (such as the hashcode) + + + + + RestoreAfterInsert + Additions to red-black trees usually destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + RotateLeft + Rebalance the tree by rotating the nodes to the left + + + + + RotateRight + Rebalance the tree by rotating the nodes to the right + + + + + + + + + + + + + + + + + RestoreAfterDelete + Deletions from red-black trees may destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + + + + Key + + + + + Data + + + + + Determine order, walk the tree and push the nodes onto the stack + + + + + HasMoreElements + + + + + NextElement + + + + + MoveNext + For .NET compatibility + + + + + Key + + + + + Data + + + + + Color + + + + + Left + + + + + Right + + + + + Provides the base class for a generic read-only dictionary. + + + The type of keys in the dictionary. + + + The type of values in the dictionary. + + + + An instance of the ReadOnlyDictionary generic class is + always read-only. A dictionary that is read-only is simply a + dictionary with a wrapper that prevents modifying the + dictionary; therefore, if changes are made to the underlying + dictionary, the read-only dictionary reflects those changes. + See for a modifiable version of + this class. + + + Notes to Implementers This base class is provided to + make it easier for implementers to create a generic read-only + custom dictionary. Implementers are encouraged to extend this + base class instead of creating their own. + + + + + + Initializes a new instance of the + class that wraps + the supplied . + + The + that will be wrapped. + + Thrown when the dictionary is null. + + + + + Gets the number of key/value pairs contained in the + . + + The number of key/value pairs. + The number of key/value pairs contained in the + . + + + Gets a collection containing the keys in the + . + A + containing the keys. + A + + containing the keys in the + . + + + + + Gets a collection containing the values of the + . + + The collection of values. + + + Gets a value indicating whether the dictionary is read-only. + This value will always be true. + + + + Gets a value indicating whether access to the dictionary + is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to dictionary. + + + + + Gets or sets the value associated with the specified key. + + + The value associated with the specified key. If the specified key + is not found, a get operation throws a + , + and a set operation creates a new element with the specified key. + + The key of the value to get or set. + + Thrown when the key is null. + + + The property is retrieved and key does not exist in the collection. + + + + This method is not supported by the + . + + The object to use as the key of the element to add. + + The object to use as the value of the element to add. + + + Determines whether the + contains the specified key. + + True if the contains + an element with the specified key; otherwise, false. + + The key to locate in the + . + + Thrown when the key is null. + + + + + This method is not supported by the . + + The key of the element to remove. + + True if the element is successfully removed; otherwise, false. + + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value + associated with the specified key, if the key is found; + otherwise, the default value for the type of the value parameter. + This parameter is passed uninitialized. + + true if the contains + an element with the specified key; otherwise, false. + + + + This method is not supported by the + . + + The object to add to the . + + + + This method is not supported by the + . + + + + Determines whether the contains a + specific value. + + + The object to locate in the . + + + true if item is found in the ICollection; + otherwise, false. + + + + + Copies the elements of the ICollection to an Array, starting at a + particular Array index. + + The one-dimensional Array that is the + destination of the elements copied from ICollection. + The Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + This method is not supported by the + . + + The object to remove from the ICollection. + + Will never return a value. + + + + Returns an enumerator that iterates through the collection. + + + A IEnumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An IEnumerator that can be used to iterate through the collection. + + + + + For a description of this member, see . + + + The one-dimensional Array that is the destination of the elements copied from + ICollection. The Array must have zero-based indexing. + + + The zero-based index in Array at which copying begins. + + + + + Summary description for ListIterator. + + + + + Summary description for Properties. + + + + + Summary description for Util. + + + + + Summary description for DeflaterOutputStream. + + + + + Summary description for DeflaterOutputStream. + + +
    +
    diff --git a/Bin/itextsharp.xtra.dll b/Bin/itextsharp.xtra.dll index fc76603af..c187c040f 100644 Binary files a/Bin/itextsharp.xtra.dll and b/Bin/itextsharp.xtra.dll differ diff --git a/Bin/itextsharp.xtra.dll.refresh b/Bin/itextsharp.xtra.dll.refresh new file mode 100644 index 000000000..69e7bba61 --- /dev/null +++ b/Bin/itextsharp.xtra.dll.refresh @@ -0,0 +1 @@ +..\packages\itextsharp.xtra.5.5.13.3\lib\itextsharp.xtra.dll \ No newline at end of file diff --git a/Bin/ja/Microsoft.ReportViewer.Common.resources.dll b/Bin/ja/Microsoft.ReportViewer.Common.resources.dll index ef63bee3c..40a32ad1a 100644 Binary files a/Bin/ja/Microsoft.ReportViewer.Common.resources.dll and b/Bin/ja/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/ja/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/ja/Microsoft.ReportViewer.DataVisualization.resources.dll index 39f953851..72dca1ac4 100644 Binary files a/Bin/ja/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/ja/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/ja/Microsoft.ReportViewer.Design.resources.dll b/Bin/ja/Microsoft.ReportViewer.Design.resources.dll index d9388f7fe..df45a3886 100644 Binary files a/Bin/ja/Microsoft.ReportViewer.Design.resources.dll and b/Bin/ja/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/ja/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/ja/Microsoft.ReportViewer.WebDesign.resources.dll index 69c95901d..e69f37444 100644 Binary files a/Bin/ja/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/ja/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/ja/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/ja/Microsoft.ReportViewer.WebForms.resources.dll index 75fc3ebb3..7a96469e4 100644 Binary files a/Bin/ja/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/ja/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/ja/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/ja/Microsoft.ReportViewer.WinForms.resources.dll index efd99c907..206319079 100644 Binary files a/Bin/ja/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/ja/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/ko/Microsoft.ReportViewer.Common.resources.dll b/Bin/ko/Microsoft.ReportViewer.Common.resources.dll index 7a47c3002..b74a553de 100644 Binary files a/Bin/ko/Microsoft.ReportViewer.Common.resources.dll and b/Bin/ko/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/ko/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/ko/Microsoft.ReportViewer.DataVisualization.resources.dll index 38f1b67c3..b3a2cd11d 100644 Binary files a/Bin/ko/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/ko/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/ko/Microsoft.ReportViewer.Design.resources.dll b/Bin/ko/Microsoft.ReportViewer.Design.resources.dll index 8ed95f4a7..662555151 100644 Binary files a/Bin/ko/Microsoft.ReportViewer.Design.resources.dll and b/Bin/ko/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/ko/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/ko/Microsoft.ReportViewer.WebDesign.resources.dll index 96193a7e1..42189b17a 100644 Binary files a/Bin/ko/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/ko/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/ko/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/ko/Microsoft.ReportViewer.WebForms.resources.dll index 6a2c7a01e..54fd0520b 100644 Binary files a/Bin/ko/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/ko/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/ko/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/ko/Microsoft.ReportViewer.WinForms.resources.dll index 62b9922a3..4b2f747dd 100644 Binary files a/Bin/ko/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/ko/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/log4net.dll.refresh b/Bin/log4net.dll.refresh index 8c31352c2..e973d8dfa 100644 Binary files a/Bin/log4net.dll.refresh and b/Bin/log4net.dll.refresh differ diff --git a/Bin/pt/Microsoft.ReportViewer.Common.resources.dll b/Bin/pt/Microsoft.ReportViewer.Common.resources.dll index 0e592dd58..76bb58f08 100644 Binary files a/Bin/pt/Microsoft.ReportViewer.Common.resources.dll and b/Bin/pt/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/pt/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/pt/Microsoft.ReportViewer.DataVisualization.resources.dll index fd017611f..2850a8a5f 100644 Binary files a/Bin/pt/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/pt/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/pt/Microsoft.ReportViewer.Design.resources.dll b/Bin/pt/Microsoft.ReportViewer.Design.resources.dll index 5d432d573..eabf252d9 100644 Binary files a/Bin/pt/Microsoft.ReportViewer.Design.resources.dll and b/Bin/pt/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/pt/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/pt/Microsoft.ReportViewer.WebDesign.resources.dll index 8268c29ae..4702f3e40 100644 Binary files a/Bin/pt/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/pt/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/pt/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/pt/Microsoft.ReportViewer.WebForms.resources.dll index c5f79f803..4e793007c 100644 Binary files a/Bin/pt/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/pt/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/pt/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/pt/Microsoft.ReportViewer.WinForms.resources.dll index 8658f49ba..113cc97ce 100644 Binary files a/Bin/pt/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/pt/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll b/Bin/roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll index 4aca434ef..a7cc82858 100644 Binary files a/Bin/roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll and b/Bin/roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll differ diff --git a/Bin/roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll.refresh b/Bin/roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll.refresh new file mode 100644 index 000000000..26a722141 --- /dev/null +++ b/Bin/roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\Microsoft.Build.Tasks.CodeAnalysis.dll diff --git a/Bin/roslyn/Microsoft.CSharp.Core.targets b/Bin/roslyn/Microsoft.CSharp.Core.targets index 65629e5e5..7db6883f5 100644 --- a/Bin/roslyn/Microsoft.CSharp.Core.targets +++ b/Bin/roslyn/Microsoft.CSharp.Core.targets @@ -1,27 +1,39 @@ - - + + + + + + 7.3 + $(MaxSupportedLangVersion) + + + + @(IntermediateAssembly); + @(IntermediateRefAssembly); + @(_DebugSymbolsIntermediatePath); + $(NonExistentFile); + @(CustomAdditionalCompileOutputs)" + Returns="@(CscCommandLineArgs)" + DependsOnTargets="$(CoreCompileDependsOn);_BeforeVBCSCoreCompile"> @@ -31,105 +43,104 @@ - $(NoWarn);2008 + $(NoWarn);2008 - - - - - - - $(AppConfig) + $(AppConfig) - $(IntermediateOutputPath)$(TargetName).compile.pdb - - - - - false - - - - - - - - - true + $(IntermediateOutputPath)$(TargetName).compile.pdb - + + + <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" /> - + - + \ No newline at end of file diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.Scripting.dll b/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.Scripting.dll new file mode 100644 index 000000000..bb343f554 Binary files /dev/null and b/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.Scripting.dll differ diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.Scripting.dll.refresh b/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.Scripting.dll.refresh new file mode 100644 index 000000000..fab8394ac --- /dev/null +++ b/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.Scripting.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\Microsoft.CodeAnalysis.CSharp.Scripting.dll diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.dll b/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.dll index c01c29fc0..0d0d5f8b9 100644 Binary files a/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.dll and b/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.dll differ diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.dll.refresh b/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.dll.refresh new file mode 100644 index 000000000..b481f8f1a --- /dev/null +++ b/Bin/roslyn/Microsoft.CodeAnalysis.CSharp.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\Microsoft.CodeAnalysis.CSharp.dll diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.Scripting.dll b/Bin/roslyn/Microsoft.CodeAnalysis.Scripting.dll new file mode 100644 index 000000000..55bd9b8d9 Binary files /dev/null and b/Bin/roslyn/Microsoft.CodeAnalysis.Scripting.dll differ diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.Scripting.dll.refresh b/Bin/roslyn/Microsoft.CodeAnalysis.Scripting.dll.refresh new file mode 100644 index 000000000..6c06cf0cc --- /dev/null +++ b/Bin/roslyn/Microsoft.CodeAnalysis.Scripting.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\Microsoft.CodeAnalysis.Scripting.dll diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.VisualBasic.dll b/Bin/roslyn/Microsoft.CodeAnalysis.VisualBasic.dll index a48642f43..aed3332f9 100644 Binary files a/Bin/roslyn/Microsoft.CodeAnalysis.VisualBasic.dll and b/Bin/roslyn/Microsoft.CodeAnalysis.VisualBasic.dll differ diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.VisualBasic.dll.refresh b/Bin/roslyn/Microsoft.CodeAnalysis.VisualBasic.dll.refresh new file mode 100644 index 000000000..05a46d359 --- /dev/null +++ b/Bin/roslyn/Microsoft.CodeAnalysis.VisualBasic.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\Microsoft.CodeAnalysis.VisualBasic.dll diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.dll b/Bin/roslyn/Microsoft.CodeAnalysis.dll index c21619792..c55ecfc73 100644 Binary files a/Bin/roslyn/Microsoft.CodeAnalysis.dll and b/Bin/roslyn/Microsoft.CodeAnalysis.dll differ diff --git a/Bin/roslyn/Microsoft.CodeAnalysis.dll.refresh b/Bin/roslyn/Microsoft.CodeAnalysis.dll.refresh new file mode 100644 index 000000000..e977e7765 --- /dev/null +++ b/Bin/roslyn/Microsoft.CodeAnalysis.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\Microsoft.CodeAnalysis.dll diff --git a/Bin/roslyn/Microsoft.DiaSymReader.Native.amd64.dll b/Bin/roslyn/Microsoft.DiaSymReader.Native.amd64.dll new file mode 100644 index 000000000..e376a2035 Binary files /dev/null and b/Bin/roslyn/Microsoft.DiaSymReader.Native.amd64.dll differ diff --git a/Bin/roslyn/Microsoft.DiaSymReader.Native.amd64.dll.refresh b/Bin/roslyn/Microsoft.DiaSymReader.Native.amd64.dll.refresh new file mode 100644 index 000000000..eb4460abb --- /dev/null +++ b/Bin/roslyn/Microsoft.DiaSymReader.Native.amd64.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\Microsoft.DiaSymReader.Native.amd64.dll diff --git a/Bin/roslyn/Microsoft.DiaSymReader.Native.x86.dll b/Bin/roslyn/Microsoft.DiaSymReader.Native.x86.dll new file mode 100644 index 000000000..5ebef7fe2 Binary files /dev/null and b/Bin/roslyn/Microsoft.DiaSymReader.Native.x86.dll differ diff --git a/Bin/roslyn/Microsoft.DiaSymReader.Native.x86.dll.refresh b/Bin/roslyn/Microsoft.DiaSymReader.Native.x86.dll.refresh new file mode 100644 index 000000000..e1edd70bb --- /dev/null +++ b/Bin/roslyn/Microsoft.DiaSymReader.Native.x86.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\Microsoft.DiaSymReader.Native.x86.dll diff --git a/Bin/roslyn/Microsoft.Managed.Core.targets b/Bin/roslyn/Microsoft.Managed.Core.targets new file mode 100644 index 000000000..a6c9a144d --- /dev/null +++ b/Bin/roslyn/Microsoft.Managed.Core.targets @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + true + + + + + + <_AllDirectoriesAbove Include="@(Compile->GetPathsOfAllDirectoriesAbove())" Condition="'$(DiscoverEditorConfigFiles)' != 'false'" /> + + + + + + + + true + + + + + + + + <_MappedSourceRoot Remove="@(_MappedSourceRoot)" /> + + + + + + + + + + + + + + + true + + + + + + + + + + + <_TopLevelSourceRoot Include="@(SourceRoot)" Condition="'%(SourceRoot.NestedRoot)' == ''"/> + + + + + + + ,$(PathMap) + + + @(_TopLevelSourceRoot->'%(Identity)=%(MappedPath)', ',')$(PathMap) + + + + \ No newline at end of file diff --git a/Bin/roslyn/Microsoft.VisualBasic.Core.targets b/Bin/roslyn/Microsoft.VisualBasic.Core.targets index 4dc93e391..e69d6c8d9 100644 --- a/Bin/roslyn/Microsoft.VisualBasic.Core.targets +++ b/Bin/roslyn/Microsoft.VisualBasic.Core.targets @@ -1,133 +1,136 @@ - - + + + + + + @(IntermediateAssembly); + @(IntermediateRefAssembly); + @(_DebugSymbolsIntermediatePath); + $(NonExistentFile); + @(CustomAdditionalCompileOutputs)" + Returns="@(VbcCommandLineArgs)" + DependsOnTargets="$(CoreCompileDependsOn);_BeforeVBCSCoreCompile"> - <_NoWarnings Condition=" '$(WarningLevel)' == '0' ">true - <_NoWarnings Condition=" '$(WarningLevel)' == '1' ">false + <_NoWarnings Condition="'$(WarningLevel)' == '0'">true + <_NoWarnings Condition="'$(WarningLevel)' == '1'">false - $(IntermediateOutputPath)$(TargetName).compile.pdb - - - - - - - - - - - false - - - - - - - - - true + $(IntermediateOutputPath)$(TargetName).compile.pdb - - + + + <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" /> - + diff --git a/Bin/roslyn/System.Buffers.dll b/Bin/roslyn/System.Buffers.dll new file mode 100644 index 000000000..b6d9c7782 Binary files /dev/null and b/Bin/roslyn/System.Buffers.dll differ diff --git a/Bin/roslyn/System.Buffers.dll.refresh b/Bin/roslyn/System.Buffers.dll.refresh new file mode 100644 index 000000000..a6499ac74 --- /dev/null +++ b/Bin/roslyn/System.Buffers.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\System.Buffers.dll diff --git a/Bin/roslyn/System.Collections.Immutable.dll b/Bin/roslyn/System.Collections.Immutable.dll index 888e9144f..049149f17 100644 Binary files a/Bin/roslyn/System.Collections.Immutable.dll and b/Bin/roslyn/System.Collections.Immutable.dll differ diff --git a/Bin/roslyn/System.Collections.Immutable.dll.refresh b/Bin/roslyn/System.Collections.Immutable.dll.refresh new file mode 100644 index 000000000..c625fc585 --- /dev/null +++ b/Bin/roslyn/System.Collections.Immutable.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\System.Collections.Immutable.dll diff --git a/Bin/roslyn/System.Memory.dll b/Bin/roslyn/System.Memory.dll new file mode 100644 index 000000000..bdfc501e9 Binary files /dev/null and b/Bin/roslyn/System.Memory.dll differ diff --git a/Bin/roslyn/System.Memory.dll.refresh b/Bin/roslyn/System.Memory.dll.refresh new file mode 100644 index 000000000..609eb0d91 --- /dev/null +++ b/Bin/roslyn/System.Memory.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\System.Memory.dll diff --git a/Bin/roslyn/System.Numerics.Vectors.dll b/Bin/roslyn/System.Numerics.Vectors.dll new file mode 100644 index 000000000..ce46d5be8 Binary files /dev/null and b/Bin/roslyn/System.Numerics.Vectors.dll differ diff --git a/Bin/roslyn/System.Numerics.Vectors.dll.refresh b/Bin/roslyn/System.Numerics.Vectors.dll.refresh new file mode 100644 index 000000000..b3b2a4584 --- /dev/null +++ b/Bin/roslyn/System.Numerics.Vectors.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\System.Numerics.Vectors.dll diff --git a/Bin/roslyn/System.Reflection.Metadata.dll b/Bin/roslyn/System.Reflection.Metadata.dll index a3ac7a200..52082366b 100644 Binary files a/Bin/roslyn/System.Reflection.Metadata.dll and b/Bin/roslyn/System.Reflection.Metadata.dll differ diff --git a/Bin/roslyn/System.Reflection.Metadata.dll.refresh b/Bin/roslyn/System.Reflection.Metadata.dll.refresh new file mode 100644 index 000000000..f733fc71f --- /dev/null +++ b/Bin/roslyn/System.Reflection.Metadata.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\System.Reflection.Metadata.dll diff --git a/Bin/roslyn/System.Runtime.CompilerServices.Unsafe.dll b/Bin/roslyn/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 000000000..c66b445c4 Binary files /dev/null and b/Bin/roslyn/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Bin/roslyn/System.Runtime.CompilerServices.Unsafe.dll.refresh b/Bin/roslyn/System.Runtime.CompilerServices.Unsafe.dll.refresh new file mode 100644 index 000000000..dfdd8ea9d --- /dev/null +++ b/Bin/roslyn/System.Runtime.CompilerServices.Unsafe.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\System.Runtime.CompilerServices.Unsafe.dll diff --git a/Bin/roslyn/System.Text.Encoding.CodePages.dll b/Bin/roslyn/System.Text.Encoding.CodePages.dll new file mode 100644 index 000000000..d0f7adf9e Binary files /dev/null and b/Bin/roslyn/System.Text.Encoding.CodePages.dll differ diff --git a/Bin/roslyn/System.Text.Encoding.CodePages.dll.refresh b/Bin/roslyn/System.Text.Encoding.CodePages.dll.refresh new file mode 100644 index 000000000..414e9a775 --- /dev/null +++ b/Bin/roslyn/System.Text.Encoding.CodePages.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\System.Text.Encoding.CodePages.dll diff --git a/Bin/roslyn/System.Threading.Tasks.Extensions.dll b/Bin/roslyn/System.Threading.Tasks.Extensions.dll new file mode 100644 index 000000000..e059050bb Binary files /dev/null and b/Bin/roslyn/System.Threading.Tasks.Extensions.dll differ diff --git a/Bin/roslyn/System.Threading.Tasks.Extensions.dll.refresh b/Bin/roslyn/System.Threading.Tasks.Extensions.dll.refresh new file mode 100644 index 000000000..d0e0e5752 --- /dev/null +++ b/Bin/roslyn/System.Threading.Tasks.Extensions.dll.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\System.Threading.Tasks.Extensions.dll diff --git a/Bin/roslyn/VBCSCompiler.exe b/Bin/roslyn/VBCSCompiler.exe index b2dceff60..1a069cbee 100644 Binary files a/Bin/roslyn/VBCSCompiler.exe and b/Bin/roslyn/VBCSCompiler.exe differ diff --git a/Bin/roslyn/VBCSCompiler.exe.config b/Bin/roslyn/VBCSCompiler.exe.config index 8b142580b..f819b1b59 100644 --- a/Bin/roslyn/VBCSCompiler.exe.config +++ b/Bin/roslyn/VBCSCompiler.exe.config @@ -1,14 +1,89 @@ - - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + \ No newline at end of file diff --git a/Bin/roslyn/VBCSCompiler.exe.refresh b/Bin/roslyn/VBCSCompiler.exe.refresh new file mode 100644 index 000000000..be7aee52b --- /dev/null +++ b/Bin/roslyn/VBCSCompiler.exe.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\VBCSCompiler.exe diff --git a/Bin/roslyn/csc.exe b/Bin/roslyn/csc.exe index 44c3c41df..e162caa77 100644 Binary files a/Bin/roslyn/csc.exe and b/Bin/roslyn/csc.exe differ diff --git a/Bin/roslyn/csc.exe.config b/Bin/roslyn/csc.exe.config new file mode 100644 index 000000000..7c9bab359 --- /dev/null +++ b/Bin/roslyn/csc.exe.config @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bin/roslyn/csc.exe.refresh b/Bin/roslyn/csc.exe.refresh new file mode 100644 index 000000000..e083de2d5 --- /dev/null +++ b/Bin/roslyn/csc.exe.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\csc.exe diff --git a/Bin/roslyn/csi.exe b/Bin/roslyn/csi.exe new file mode 100644 index 000000000..394bf8e81 Binary files /dev/null and b/Bin/roslyn/csi.exe differ diff --git a/Bin/roslyn/csi.exe.config b/Bin/roslyn/csi.exe.config new file mode 100644 index 000000000..8bc0cd250 --- /dev/null +++ b/Bin/roslyn/csi.exe.config @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bin/roslyn/csi.exe.refresh b/Bin/roslyn/csi.exe.refresh new file mode 100644 index 000000000..94a597610 --- /dev/null +++ b/Bin/roslyn/csi.exe.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\csi.exe diff --git a/Bin/roslyn/vbc.exe b/Bin/roslyn/vbc.exe index bc98748c7..1da3b96de 100644 Binary files a/Bin/roslyn/vbc.exe and b/Bin/roslyn/vbc.exe differ diff --git a/Bin/roslyn/vbc.exe.config b/Bin/roslyn/vbc.exe.config new file mode 100644 index 000000000..eef79ef05 --- /dev/null +++ b/Bin/roslyn/vbc.exe.config @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Bin/roslyn/vbc.exe.refresh b/Bin/roslyn/vbc.exe.refresh new file mode 100644 index 000000000..d799cdda3 --- /dev/null +++ b/Bin/roslyn/vbc.exe.refresh @@ -0,0 +1 @@ +..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\roslyn472\vbc.exe diff --git a/Bin/ru/Microsoft.ReportViewer.Common.resources.dll b/Bin/ru/Microsoft.ReportViewer.Common.resources.dll index 82e3f76c3..56bb11879 100644 Binary files a/Bin/ru/Microsoft.ReportViewer.Common.resources.dll and b/Bin/ru/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/ru/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/ru/Microsoft.ReportViewer.DataVisualization.resources.dll index 76410e640..e655bb75b 100644 Binary files a/Bin/ru/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/ru/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/ru/Microsoft.ReportViewer.Design.resources.dll b/Bin/ru/Microsoft.ReportViewer.Design.resources.dll index a3bd84936..8f48cd87b 100644 Binary files a/Bin/ru/Microsoft.ReportViewer.Design.resources.dll and b/Bin/ru/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/ru/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/ru/Microsoft.ReportViewer.WebDesign.resources.dll index 86a8489ff..048f9702a 100644 Binary files a/Bin/ru/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/ru/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/ru/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/ru/Microsoft.ReportViewer.WebForms.resources.dll index 6ae3376da..f199d086d 100644 Binary files a/Bin/ru/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/ru/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/ru/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/ru/Microsoft.ReportViewer.WinForms.resources.dll index 67b9c1577..e00049bcd 100644 Binary files a/Bin/ru/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/ru/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/zh-CHS/Microsoft.ReportViewer.Common.resources.dll b/Bin/zh-CHS/Microsoft.ReportViewer.Common.resources.dll index 5115fe948..466ba1eea 100644 Binary files a/Bin/zh-CHS/Microsoft.ReportViewer.Common.resources.dll and b/Bin/zh-CHS/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/zh-CHS/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/zh-CHS/Microsoft.ReportViewer.DataVisualization.resources.dll index 28973e55f..3c01b5bed 100644 Binary files a/Bin/zh-CHS/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/zh-CHS/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/zh-CHS/Microsoft.ReportViewer.Design.resources.dll b/Bin/zh-CHS/Microsoft.ReportViewer.Design.resources.dll index 8010c8c9c..fa8180b47 100644 Binary files a/Bin/zh-CHS/Microsoft.ReportViewer.Design.resources.dll and b/Bin/zh-CHS/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/zh-CHS/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/zh-CHS/Microsoft.ReportViewer.WebDesign.resources.dll index d0aa2201b..d57eb4062 100644 Binary files a/Bin/zh-CHS/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/zh-CHS/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/zh-CHS/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/zh-CHS/Microsoft.ReportViewer.WebForms.resources.dll index 7dc639bd9..5b58f404a 100644 Binary files a/Bin/zh-CHS/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/zh-CHS/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/zh-CHS/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/zh-CHS/Microsoft.ReportViewer.WinForms.resources.dll index 8f5c144f4..bf953bc5b 100644 Binary files a/Bin/zh-CHS/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/zh-CHS/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/Bin/zh-CHT/Microsoft.ReportViewer.Common.resources.dll b/Bin/zh-CHT/Microsoft.ReportViewer.Common.resources.dll index 7ee5fc702..20b45e20b 100644 Binary files a/Bin/zh-CHT/Microsoft.ReportViewer.Common.resources.dll and b/Bin/zh-CHT/Microsoft.ReportViewer.Common.resources.dll differ diff --git a/Bin/zh-CHT/Microsoft.ReportViewer.DataVisualization.resources.dll b/Bin/zh-CHT/Microsoft.ReportViewer.DataVisualization.resources.dll index 6e4033bdd..e6e6ebff1 100644 Binary files a/Bin/zh-CHT/Microsoft.ReportViewer.DataVisualization.resources.dll and b/Bin/zh-CHT/Microsoft.ReportViewer.DataVisualization.resources.dll differ diff --git a/Bin/zh-CHT/Microsoft.ReportViewer.Design.resources.dll b/Bin/zh-CHT/Microsoft.ReportViewer.Design.resources.dll index ae762559d..4a3ee6200 100644 Binary files a/Bin/zh-CHT/Microsoft.ReportViewer.Design.resources.dll and b/Bin/zh-CHT/Microsoft.ReportViewer.Design.resources.dll differ diff --git a/Bin/zh-CHT/Microsoft.ReportViewer.WebDesign.resources.dll b/Bin/zh-CHT/Microsoft.ReportViewer.WebDesign.resources.dll index fa4af52a3..4e32784d5 100644 Binary files a/Bin/zh-CHT/Microsoft.ReportViewer.WebDesign.resources.dll and b/Bin/zh-CHT/Microsoft.ReportViewer.WebDesign.resources.dll differ diff --git a/Bin/zh-CHT/Microsoft.ReportViewer.WebForms.resources.dll b/Bin/zh-CHT/Microsoft.ReportViewer.WebForms.resources.dll index c2ee61282..c8f108dd3 100644 Binary files a/Bin/zh-CHT/Microsoft.ReportViewer.WebForms.resources.dll and b/Bin/zh-CHT/Microsoft.ReportViewer.WebForms.resources.dll differ diff --git a/Bin/zh-CHT/Microsoft.ReportViewer.WinForms.resources.dll b/Bin/zh-CHT/Microsoft.ReportViewer.WinForms.resources.dll index f2dd61cf7..5a8770065 100644 Binary files a/Bin/zh-CHT/Microsoft.ReportViewer.WinForms.resources.dll and b/Bin/zh-CHT/Microsoft.ReportViewer.WinForms.resources.dll differ diff --git a/CGame/EntradaMateriaPrima.aspx.cs b/CGame/EntradaMateriaPrima.aspx.cs index 06bc47677..9620ab308 100644 --- a/CGame/EntradaMateriaPrima.aspx.cs +++ b/CGame/EntradaMateriaPrima.aspx.cs @@ -374,7 +374,7 @@ public partial class CATCorte : ClsPaginas { try { String Path = String.Format("{0}\\{1}", UsuarioActual.Empresa.Ruta, "AdjuntosCortes"); - DirectoryExistsCreate(ref Path); + ModExtensiones.DirectoryExistsCreate(ref Path); String ArchivoDestino = String.Format("{0}\\{1}_{2}", Path, DdlOrdenCorte.SelectedValue, ArchivoAdjunto.filenameO); if (System.IO.File.Exists(ArchivoDestino)) { diff --git a/CGame/Fletes.aspx.cs b/CGame/Fletes.aspx.cs index 6020f8e17..e412033b0 100644 --- a/CGame/Fletes.aspx.cs +++ b/CGame/Fletes.aspx.cs @@ -811,7 +811,7 @@ public partial class CGame_Fletes : ClsPaginas try { String Path = String.Format("{0}\\{1}", UsuarioActual.Empresa.Ruta, "AdjuntosHuertaEmpaque"); - DirectoryExistsCreate(ref Path); + ModExtensiones.DirectoryExistsCreate(ref Path); String ArchivoDestino = String.Format("{0}\\{1}", Path, ArchivoAdjunto.filenameO); if (System.IO.File.Exists(ArchivoDestino)) { diff --git a/CRM/Acercamiento.aspx b/CRM/Acercamiento.aspx index 3345c66c5..098d2817c 100644 --- a/CRM/Acercamiento.aspx +++ b/CRM/Acercamiento.aspx @@ -291,7 +291,7 @@ - + @@ -301,7 +301,7 @@
  • - Cerrar Acercamiento + Cerrar Acercamiento/Oportunidad
  • @@ -364,7 +364,7 @@
    - Datos del Acercamiento + Datos del Acercamiento/Oportunidad
    @@ -376,7 +376,7 @@
    - +
    @@ -988,7 +988,7 @@ - +
    Fecha Inicio: - -   - - - Fecha Fin: - -   - - -
    - - - -
    - - +
    +
    + @@ -121,6 +119,13 @@ + + + + + + + <%-- @@ -133,9 +138,16 @@ -
    +
    + + + + + + + + + diff --git a/Contabilidad2/RepCambiosSituacionFinanciera.aspx.vb b/Contabilidad2/RepCambiosSituacionFinanciera.aspx.vb index 720fd7d95..b82602af2 100644 --- a/Contabilidad2/RepCambiosSituacionFinanciera.aspx.vb +++ b/Contabilidad2/RepCambiosSituacionFinanciera.aspx.vb @@ -157,7 +157,7 @@ Partial Class AC2_RepCambiosSituacionFinanciera Dim TipoReporte = DdlTipoReporte.SelectedValue.ToEntero Dim CveSubProyecto As String = DdlSubproyecto.SelectedValue.ToString - If ObjConta.GetCambioSituacionFinanciera(FechaInicio, FechaFin, DdlUnidad.SelectedValue.ToEntero, TipoReporte, CveSubProyecto, UsuarioActual.CveEmpresa) Then + If ObjConta.GetCambioSituacionFinanciera(FechaInicio, FechaFin, DdlUnidad.SelectedValue.ToEntero, TipoReporte, CveSubProyecto, UsuarioActual.CveEmpresa, DdlMovimiento.SelectedValue.ToEntero) Then DtDatos = ObjConta.DtResultados Else DtDatos = Nothing diff --git a/Contabilidad2/RepFlujoEfectivo.aspx b/Contabilidad2/RepFlujoEfectivo.aspx index c7095d0aa..63d08f881 100644 --- a/Contabilidad2/RepFlujoEfectivo.aspx +++ b/Contabilidad2/RepFlujoEfectivo.aspx @@ -59,7 +59,7 @@
    Divisor:
    - + @@ -91,13 +91,9 @@ - - - - -
    - -
    -
    - +
    +
    + @@ -141,9 +137,17 @@ -
    +
    + + + + + + + + + + diff --git a/Contabilidad2/RepLibroDiario.aspx b/Contabilidad2/RepLibroDiario.aspx index 33fb505ac..ed0b33bd5 100644 --- a/Contabilidad2/RepLibroDiario.aspx +++ b/Contabilidad2/RepLibroDiario.aspx @@ -38,6 +38,7 @@
    +
    @@ -68,6 +69,15 @@
    + +
    + + + + + + +
    diff --git a/Contabilidad2/RepLibroDiario.aspx.vb b/Contabilidad2/RepLibroDiario.aspx.vb index 60dd72327..a5fa94f8e 100644 --- a/Contabilidad2/RepLibroDiario.aspx.vb +++ b/Contabilidad2/RepLibroDiario.aspx.vb @@ -64,7 +64,7 @@ Partial Class Contabilidad2_RepLibroDiario 'FechaFin = New Date(2016, 1, 31) Dim ObjConta As New ClsContabilidad - If ObjConta.GetLibroDiario(FechaInicio, FechaFin, UsuarioActual.CveEmpresa) Then + If ObjConta.GetLibroDiario(FechaInicio, FechaFin, UsuarioActual.CveEmpresa, DdlTipoPoliza.SelectedValue.Toentero) Then DtDatos = ObjConta.DtResultados Else DtDatos = Nothing diff --git a/Documentacion/TableroMaterialidad.aspx.cs b/Documentacion/TableroMaterialidad.aspx.cs index e3ad005bf..ccf91f23e 100644 --- a/Documentacion/TableroMaterialidad.aspx.cs +++ b/Documentacion/TableroMaterialidad.aspx.cs @@ -15,7 +15,6 @@ using System.Text.RegularExpressions; using System.Xml; using System.Xml.Linq; using iTextSharp.text.pdf; -using iTextSharp.text.pdf.parser; public partial class Documentacion_TableroMaterialidad : ClsPaginas @@ -375,7 +374,7 @@ public partial class Documentacion_TableroMaterialidad : ClsPaginas { PdfReader reader = new PdfReader(urfile); - text = PdfTextExtractor.GetTextFromPage(reader, 1, new LocationTextExtractionStrategy()); + text = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, 1, new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy()); foliofiscal = string.Empty; CURP = string.Empty; fechas.RemoveAll(z => true); diff --git a/Documentacion/TableroMaterialidad2.aspx.cs b/Documentacion/TableroMaterialidad2.aspx.cs index 478d3f0da..4be48e720 100644 --- a/Documentacion/TableroMaterialidad2.aspx.cs +++ b/Documentacion/TableroMaterialidad2.aspx.cs @@ -13,7 +13,6 @@ using System.Xml; using System.Xml.Linq; using Extensiones; using iTextSharp.text.pdf; -using iTextSharp.text.pdf.parser; public partial class Documentacion_TableroMaterialidad2 : ClsPaginas { @@ -299,7 +298,7 @@ public partial class Documentacion_TableroMaterialidad2 : ClsPaginas { PdfReader reader = new PdfReader(urfile); - text = PdfTextExtractor.GetTextFromPage(reader, 1, new LocationTextExtractionStrategy()); + text = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, 1, new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy()); foliofiscal = string.Empty; CURP = string.Empty; fechas.RemoveAll(z => true); diff --git a/Empresas/119/Formatos/ReciboDePago.rdlc b/Empresas/119/Formatos/ReciboDePago.rdlc index 135892adf..5c2224814 100644 --- a/Empresas/119/Formatos/ReciboDePago.rdlc +++ b/Empresas/119/Formatos/ReciboDePago.rdlc @@ -1,5172 +1,5 @@ - - - - - - - - 2.55292cm - - - 3.0262cm - - - 9.76834cm - - - 2.55292cm - - - 2.63526cm - - - - - 0.49cm - - - - - true - true - - - - - CANTIDAD - - - - - - - Textbox24 - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - U.M. - - - - - - - Textbox27 - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - DESCRIPCIÓN - - - - - - - Textbox26 - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - P/U - - - - - - - Textbox36 - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - IMPORTE - - - - - - - Textbox38 - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - - - true - true - - - - - =Parameters!Cantidad.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!UnidadMedida.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!Descripcion.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!PU.Value - - - - - - - Textbox37 - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - true - true - - - - - =Parameters!Importe.Value - - - - - - - Textbox39 - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - - - - - - - - - - - - - - - - - DataSet2 - 2.59417cm - 1.09cm - 20.53564cm - - - - - - - - - 2.13038cm - - - 1.64459cm - - - 1.80415cm - - - 1.76995cm - - - 1.8cm - - - 1.8cm - - - 1.8cm - - - 1.99576cm - - - 2.49576cm - - - 3.2908cm - - - - - 0.56938cm - - - - - true - true - - - - - UUID - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - 4 - - - - - - - - - true - true - - - - - SERIE - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - FOLIO - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - MONEDA - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - NO.PARC. - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - SALDO ANT. - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - MONTO PAGADO - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.43188cm - - - - - true - true - - - - - =Fields!IdDocumento.Value - - - - - - - - 4 - - - - - - - - - true - true - - - - - =Fields!Serie.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Folio.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - true - - - - - - true - true - - - - - =Fields!MonedaDR.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!NumParcialidad.Value - - - - - - - NumParcialidad - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!ImpSaldoAnt.Value - - - - - - - ImpSaldoAnt - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - true - true - - - - - =Fields!ImpPagado.Value - - - - - - - ImpPagado - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.07938cm - - - - - true - true - - - - - Impuesto - - - - - - - Textbox108 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - OR Fields!Tra002BaseDR.Value > 0 - OR Fields!Tra003BaseDR.Value > 0 - OR Fields!Ret001BaseDR.Value > 0 - OR Fields!Ret002BaseDR.Value > 0 - OR Fields!Ret003BaseDR.Value > 0 - ,False,true) - - - - Top - - - - - - - - true - true - - - - - Tipo - - - - - - - Textbox109 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - OR Fields!Tra002BaseDR.Value > 0 - OR Fields!Tra003BaseDR.Value > 0 - OR Fields!Ret001BaseDR.Value > 0 - OR Fields!Ret002BaseDR.Value > 0 - OR Fields!Ret003BaseDR.Value > 0 - ,False,true) - - - - Top - - - - - - - - true - true - - - - - Base - - - - - - - Textbox110 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - OR Fields!Tra002BaseDR.Value > 0 - OR Fields!Tra003BaseDR.Value > 0 - OR Fields!Ret001BaseDR.Value > 0 - OR Fields!Ret002BaseDR.Value > 0 - OR Fields!Ret003BaseDR.Value > 0 - ,False,true) - - - - Top - - - - - - - - true - true - - - - - Tipo Factor - - - - - - - Textbox111 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - OR Fields!Tra002BaseDR.Value > 0 - OR Fields!Tra003BaseDR.Value > 0 - OR Fields!Ret001BaseDR.Value > 0 - OR Fields!Ret002BaseDR.Value > 0 - OR Fields!Ret003BaseDR.Value > 0 - ,False,true) - - - - Top - - - - - - - - true - true - - - - - Tasa/Cuota - - - - - - - Textbox112 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - OR Fields!Tra002BaseDR.Value > 0 - OR Fields!Tra003BaseDR.Value > 0 - OR Fields!Ret001BaseDR.Value > 0 - OR Fields!Ret002BaseDR.Value > 0 - OR Fields!Ret003BaseDR.Value > 0 - ,False,true) - - - - Top - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox113 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - OR Fields!Tra002BaseDR.Value > 0 - OR Fields!Tra003BaseDR.Value > 0 - OR Fields!Ret001BaseDR.Value > 0 - OR Fields!Ret002BaseDR.Value > 0 - OR Fields!Ret003BaseDR.Value > 0 - ,False,true) - - - - Top - - - - - - - - true - true - - - - - - - - - - - - Textbox114 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - OR Fields!Tra002BaseDR.Value > 0 - OR Fields!Tra003BaseDR.Value > 0 - OR Fields!Ret001BaseDR.Value > 0 - OR Fields!Ret002BaseDR.Value > 0 - OR Fields!Ret003BaseDR.Value > 0 - ,False,true) - - - - Top - - - - - - - - true - true - - - - - - - - - - - - Textbox115 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - OR Fields!Tra002BaseDR.Value > 0 - OR Fields!Tra003BaseDR.Value > 0 - OR Fields!Ret001BaseDR.Value > 0 - OR Fields!Ret002BaseDR.Value > 0 - OR Fields!Ret003BaseDR.Value > 0 - ,False,true) - - - - Top - - - - - - - - true - true - - - - - - - - - - - Top - - - - - - - - true - true - - - - - - - - - - - Top - - - - - - - - 0.07938cm - - - - - true - true - - - - - ISR - - - - - - - Textbox61 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - Traslado - - - - - - - Textbox204 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!ImpPagado.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra001TipoFactorDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra001TasaOCuotaDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra001ImporteDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox4 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox13 - - = IIF( - Fields!Tra001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - 0.07938cm - - - - - true - true - - - - - IVA - - - - - - - Textbox61 - - = IIF( - Fields!Tra002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - Traslado - - - - - - - Textbox204 - - = IIF( - Fields!Tra002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!ImpPagado.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra002TipoFactorDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra002TasaOCuotaDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra002ImporteDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox67 - - = IIF( - Fields!Tra002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox68 - - = IIF( - Fields!Tra002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - 0.07938cm - - - - - true - true - - - - - IEPS - - - - - - - Textbox61 - - = IIF( - Fields!Tra003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - Traslado - - - - - - - Textbox204 - - = IIF( - Fields!Tra003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!ImpPagado.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra003TipoFactorDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra003TasaOCuotaDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Tra003ImporteDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Tra003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox51 - - = IIF( - Fields!Tra003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox55 - - = IIF( - Fields!Tra003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - 0.07938cm - - - - - true - true - - - - - ISR - - - - - - - Textbox61 - - = IIF( - Fields!Ret001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - Retención - - - - - - - Textbox207 - - = IIF( - Fields!Ret001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!ImpPagado.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret001TipoFactorDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret001TasaOCuotaDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret001ImporteDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox75 - - = IIF( - Fields!Ret001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox76 - - = IIF( - Fields!Ret001BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - 0.07939cm - - - - - true - true - - - - - IVA - - - - - - - Textbox61 - - = IIF( - Fields!Ret002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - Retención - - - - - - - Textbox207 - - = IIF( - Fields!Ret002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!ImpPagado.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret002TipoFactorDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret002TasaOCuotaDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret002ImporteDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox85 - - = IIF( - Fields!Ret002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox86 - - = IIF( - Fields!Ret002BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - 0.07938cm - - - - - true - true - - - - - IEPS - - - - - - - Textbox59 - - = IIF( - Fields!Ret003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - Retención - - - - - - - Textbox207 - - = IIF( - Fields!Ret003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!ImpPagado.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret003TipoFactorDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret003TasaOCuotaDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - =Fields!Ret003ImporteDR.Value - - - - - - - ImpPagado - - = IIF( - Fields!Ret003BaseDR.Value > 0 - ,False,True) - - - - es-MX - - - - - - - - true - true - - - - - - - - - - - - Textbox95 - - = IIF( - Fields!Ret003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - Textbox96 - - = IIF( - Fields!Ret003BaseDR.Value > 0 - ,False,True) - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - After - - - - - - - - - - - - - - - - - DataSet2 - 4.62704cm - 1.55689cm - 20.53139cm - 1 - - - - - - - - - 4.5cm - - - 1.74905cm - - - 1.5cm - - - 2.96606cm - - - 6.82934cm - - - 2.98695cm - - - - - 0.49cm - - - - - true - true - - - - - FECHA Y HORA DE PAGO - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - MONEDA - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - TC - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - CTA ORDENANTE - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - FORMA DE PAGO - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - TOTAL DE PAGO - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - - - true - true - - - - - =Fields!FechaPago.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!MonedaP.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!TipoCambioP.Value - - - - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - true - true - - - - - =Fields!CtaOrdenante.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!FormaDePagoP.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Monto.Value - - - - - - - Monto - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - 0.6cm - - - - - true - true - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!CantidadLetra.Value - - - - - - - Textbox53 - - - - #008204 - 3pt - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - - - - - - - - - - - - - - - - - After - - - - - - Before - - - - DataSet1 - 6.51414cm - 1.69cm - 20.5314cm - 2 - - - - - - true - true - - - - - CFDI Relacionados - - - - - - - Textbox5 - 4.01644cm - 0.49cm - 20.5314cm - 3 - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Datos del Cliente: - - - - - - - - - Cliente - - - - : - - - - =Parameters!Cliente.Value - - - - - - - - - Dirección: - - - - =Parameters!ClienteDireccion.Value - - - - , - - - - =Parameters!ClienteColonia.Value - - - - - - - - - Ciudad: - - - - - - - - =Parameters!ClienteCiudad.Value - - - - - - - - - CP: - - - - =Parameters!ClienteCP.Value - - - - - - - - - RFC Ordenante: - - - - - - - - =Parameters!RFCOrdenante.Value - - - - - - - - - = IIF( Parameters!RegimenFiscalCodigo.Value <> "ND-", "<b>Reg. Fiscal:</b> " & Parameters!RegimenFiscalCodigo.Value,"") - HTML - - - - - - - Textbox2 - 0.03528cm - 0.99355in - 5.01932in - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - "Este documento es una representación impresa de un CFDI" - - - - - - - - - Cadena original del complemento de certificación digital del SAT: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - =Parameters!UUIDPago.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - External - =Parameters!QR.Value - FitProportional - 3.3896in - 6.51771in - 1.3in - 1.5in - 7 - - - - - - true - true - - - - - - - - #008204 - 2pt - 2pt - 2pt - 2pt - - - - 12.1432cm - - - - - - - - - Folio: - - - - =Parameters!SerieFolio.Value - - - - - - - - - Fecha Timbre: - - - - =Parameters!FechaTimbre.Value - - - - - - - - - - - - - - - - - - Régimen Fiscal: - - - - - - - - - - - - - Regimen General de Ley Personas Morales - - - - - - - Textbox1 - 12.95686cm - 2.84197cm - 7.57454cm - - - White - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Domicilio Fiscal: - - - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - Embedded - jam3 - FitProportional - 2.53cm - 4.13cm - 2 - - - - - - - - - - - 0.45509cm - true - true - - - true - true - - - - - ="Página " & Globals.PageNumber & " de " & Globals.TotalPages - - - - - - - Textbox35 - 17.09769cm - 0.41981cm - 2.94979cm - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Usuario: - - - - - - - - =Parameters!UsuarioImprimio.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha Impresión: - - - - - - - - =Parameters!FechaImpresion.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 27.94cm - 21.59cm - 0.5cm - 0.5cm - 0.5cm - 0.5cm - 1.27cm - + + + + + + Textbox24 + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + U.M. + + + + + + + Textbox27 + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + DESCRIPCIÓN + + + + + + + Textbox26 + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + P/U + + + + + + + Textbox36 + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + IMPORTE + + + + + + + Textbox38 + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!Cantidad.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!UnidadMedida.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!Descripcion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!PU.Value + + + + + + + Textbox37 + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + true + true + + + + + =Parameters!Importe.Value + + + + + + + Textbox39 + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + + + + + + + + + + + + + + + + + DataSet2 + 2.59417cm + 1.09cm + 20.53564cm + + + + + + + + + 2.13038cm + + + 1.64459cm + + + 1.80415cm + + + 1.76995cm + + + 1.8cm + + + 1.8cm + + + 1.8cm + + + 1.99576cm + + + 2.49576cm + + + 3.2908cm + + + + + 0.56938cm + + + + + true + true + + + + + UUID + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + 4 + + + + + + + + + true + true + + + + + SERIE + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + FOLIO + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + MONEDA + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + NO.PARC. + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + SALDO ANT. + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + MONTO PAGADO + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.43188cm + + + + + true + true + + + + + =Fields!IdDocumento.Value + + + + + + + + 4 + + + + + + + + + true + true + + + + + =Fields!Serie.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Folio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!MonedaDR.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!NumParcialidad.Value + + + + + + + NumParcialidad + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!ImpSaldoAnt.Value + + + + + + + ImpSaldoAnt + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + true + true + + + + + =Fields!ImpPagado.Value + + + + + + + ImpPagado + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.07938cm + + + + + true + true + + + + + Impuesto + + + + + + + Textbox108 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + OR Fields!Tra002BaseDR.Value > 0 + OR Fields!Tra003BaseDR.Value > 0 + OR Fields!Ret001BaseDR.Value > 0 + OR Fields!Ret002BaseDR.Value > 0 + OR Fields!Ret003BaseDR.Value > 0 + ,False,true) + + + + Top + + + + + + + + true + true + + + + + Tipo + + + + + + + Textbox109 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + OR Fields!Tra002BaseDR.Value > 0 + OR Fields!Tra003BaseDR.Value > 0 + OR Fields!Ret001BaseDR.Value > 0 + OR Fields!Ret002BaseDR.Value > 0 + OR Fields!Ret003BaseDR.Value > 0 + ,False,true) + + + + Top + + + + + + + + true + true + + + + + Base + + + + + + + Textbox110 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + OR Fields!Tra002BaseDR.Value > 0 + OR Fields!Tra003BaseDR.Value > 0 + OR Fields!Ret001BaseDR.Value > 0 + OR Fields!Ret002BaseDR.Value > 0 + OR Fields!Ret003BaseDR.Value > 0 + ,False,true) + + + + Top + + + + + + + + true + true + + + + + Tipo Factor + + + + + + + Textbox111 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + OR Fields!Tra002BaseDR.Value > 0 + OR Fields!Tra003BaseDR.Value > 0 + OR Fields!Ret001BaseDR.Value > 0 + OR Fields!Ret002BaseDR.Value > 0 + OR Fields!Ret003BaseDR.Value > 0 + ,False,true) + + + + Top + + + + + + + + true + true + + + + + Tasa/Cuota + + + + + + + Textbox112 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + OR Fields!Tra002BaseDR.Value > 0 + OR Fields!Tra003BaseDR.Value > 0 + OR Fields!Ret001BaseDR.Value > 0 + OR Fields!Ret002BaseDR.Value > 0 + OR Fields!Ret003BaseDR.Value > 0 + ,False,true) + + + + Top + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox113 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + OR Fields!Tra002BaseDR.Value > 0 + OR Fields!Tra003BaseDR.Value > 0 + OR Fields!Ret001BaseDR.Value > 0 + OR Fields!Ret002BaseDR.Value > 0 + OR Fields!Ret003BaseDR.Value > 0 + ,False,true) + + + + Top + + + + + + + + true + true + + + + + + + + + + + + Textbox114 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + OR Fields!Tra002BaseDR.Value > 0 + OR Fields!Tra003BaseDR.Value > 0 + OR Fields!Ret001BaseDR.Value > 0 + OR Fields!Ret002BaseDR.Value > 0 + OR Fields!Ret003BaseDR.Value > 0 + ,False,true) + + + + Top + + + + + + + + true + true + + + + + + + + + + + + Textbox115 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + OR Fields!Tra002BaseDR.Value > 0 + OR Fields!Tra003BaseDR.Value > 0 + OR Fields!Ret001BaseDR.Value > 0 + OR Fields!Ret002BaseDR.Value > 0 + OR Fields!Ret003BaseDR.Value > 0 + ,False,true) + + + + Top + + + + + + + + true + true + + + + + + + + + + + Top + + + + + + + + true + true + + + + + + + + + + + Top + + + + + + + + 0.07938cm + + + + + true + true + + + + + ISR + + + + + + + Textbox61 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + Traslado + + + + + + + Textbox204 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!ImpPagado.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra001TipoFactorDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra001TasaOCuotaDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra001ImporteDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox4 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox13 + + = IIF( + Fields!Tra001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + 0.07938cm + + + + + true + true + + + + + IVA + + + + + + + Textbox61 + + = IIF( + Fields!Tra002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + Traslado + + + + + + + Textbox204 + + = IIF( + Fields!Tra002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!ImpPagado.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra002TipoFactorDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra002TasaOCuotaDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra002ImporteDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox67 + + = IIF( + Fields!Tra002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox68 + + = IIF( + Fields!Tra002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + 0.07938cm + + + + + true + true + + + + + IEPS + + + + + + + Textbox61 + + = IIF( + Fields!Tra003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + Traslado + + + + + + + Textbox204 + + = IIF( + Fields!Tra003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!ImpPagado.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra003TipoFactorDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra003TasaOCuotaDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Tra003ImporteDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Tra003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox51 + + = IIF( + Fields!Tra003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox55 + + = IIF( + Fields!Tra003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + 0.07938cm + + + + + true + true + + + + + ISR + + + + + + + Textbox61 + + = IIF( + Fields!Ret001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + Retención + + + + + + + Textbox207 + + = IIF( + Fields!Ret001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!ImpPagado.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret001TipoFactorDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret001TasaOCuotaDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret001ImporteDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox75 + + = IIF( + Fields!Ret001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox76 + + = IIF( + Fields!Ret001BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + 0.07939cm + + + + + true + true + + + + + IVA + + + + + + + Textbox61 + + = IIF( + Fields!Ret002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + Retención + + + + + + + Textbox207 + + = IIF( + Fields!Ret002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!ImpPagado.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret002TipoFactorDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret002TasaOCuotaDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret002ImporteDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox85 + + = IIF( + Fields!Ret002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox86 + + = IIF( + Fields!Ret002BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + 0.07938cm + + + + + true + true + + + + + IEPS + + + + + + + Textbox59 + + = IIF( + Fields!Ret003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + Retención + + + + + + + Textbox207 + + = IIF( + Fields!Ret003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!ImpPagado.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret003TipoFactorDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret003TasaOCuotaDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + =Fields!Ret003ImporteDR.Value + + + + + + + ImpPagado + + = IIF( + Fields!Ret003BaseDR.Value > 0 + ,False,True) + + + + es-MX + + + + + + + + true + true + + + + + + + + + + + + Textbox95 + + = IIF( + Fields!Ret003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + Textbox96 + + = IIF( + Fields!Ret003BaseDR.Value > 0 + ,False,True) + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + + + + + + + + + + + DataSet2 + 4.62704cm + 1.55693cm + 20.53139cm + 1 + + + + + + + + + 4.5cm + + + 1.74905cm + + + 1.5cm + + + 2.96606cm + + + 6.82934cm + + + 2.98695cm + + + + + 0.49cm + + + + + true + true + + + + + FECHA Y HORA DE PAGO + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + MONEDA + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + TC + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + CTA ORDENANTE + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + FORMA DE PAGO + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + TOTAL DE PAGO + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + =Fields!FechaPago.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!MonedaP.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!TipoCambioP.Value + + + + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + true + true + + + + + =Fields!CtaOrdenante.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FormaDePagoP.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Monto.Value + + + + + + + Monto + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.6cm + + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!CantidadLetra.Value + + + + + + + Textbox53 + + + + #008204 + 3pt + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + + + + + + + + + + + + + + + After + + + + + + Before + + + + DataSet1 + 6.51414cm + 1.69cm + 20.5314cm + 2 + + + + + + true + true + + + + + CFDI Relacionados + + + + + + + Textbox5 + 4.01644cm + 0.49cm + 20.5314cm + 3 + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Datos del Cliente: + + + + + + + + + Cliente + + + + : + + + + =Parameters!Cliente.Value + + + + + + + + + Dirección: + + + + =Parameters!ClienteDireccion.Value + + + + , + + + + =Parameters!ClienteColonia.Value + + + + + + + + + Ciudad: + + + + + + + + =Parameters!ClienteCiudad.Value + + + + + + + + + CP: + + + + =Parameters!ClienteCP.Value + + + + + + + + + RFC Ordenante: + + + + + + + + =Parameters!RFCOrdenante.Value + + + + + + + + + = IIF( Parameters!RegimenFiscalCodigo.Value <> "ND-", "<b>Reg. Fiscal:</b> " & Parameters!RegimenFiscalCodigo.Value,"") + HTML + + + + + + + Textbox2 + 0.03528cm + 0.99355in + 5.01932in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + "Este documento es una representación impresa de un CFDI" + + + + + + + + + Cadena original del complemento de certificación digital del SAT: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =Parameters!UUIDPago.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!QR.Value + FitProportional + 3.3896in + 6.51771in + 1.3in + 1.5in + 7 + + + + + + true + true + + + + + + + + #008204 + 2pt + 2pt + 2pt + 2pt + + + + 12.1432cm + + + + + + + + + Folio: + + + + =Parameters!SerieFolio.Value + + + + + + + + + Fecha Timbre: + + + + =Parameters!FechaTimbre.Value + + + + + + + + + + + + + + + + + + Régimen Fiscal: + + + + + + + + + + + + + Regimen General de Ley Personas Morales + + + + + + + Textbox1 + 12.95686cm + 2.84197cm + 7.57454cm + + + White + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Domicilio Fiscal: + + + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + jam3 + FitProportional + 2.53cm + 4.13cm + 2 + + + + + + + + + + + 0.45509cm + true + true + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox35 + 0cm + 17.09769cm + 0.41981cm + 2.94979cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Usuario: + + + + + + + + =Parameters!UsuarioImprimio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + + + + + =Parameters!FechaImpresion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 0.5cm + 0.5cm + 1.27cm + - - - =Parameters!ClienteNombre.Value - - - - - - - - - Dirección: - - - - =Parameters!ClienteDireccion.Value - - - - - - - - - RFC: - - - - =Parameters!ClienteRFC.Value - - - - - - - - - Atención A: - - - - =Parameters!ClienteContacto.Value - - - - - - - Textbox2 - 0.05159in - 4.32145cm - 0.99993in - 3.6362in - - - 2pt - 2pt - 2pt - 2pt - - - - Embedded - Logo - Fit - 0.05159in - 0.0375in - 0.99993in - 1.60289in - 1 - - - - - - true - true - - - - - Domicilio fiscal: - - - - - - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - - - - - - - Cotización - - - - - - - - - - - - - Serie: - - - - =Parameters!Serie.Value - - - - Folio: - - - - =Parameters!Folio.Value - - - - - - - - - Fecha: - - - - - - - - = Parameters!Fecha.Value - - - - - - - - - - - - - Forma de pago: - - - - =Parameters!FormaPago.Value - - - - - - - - - Método de pago: - - - - =Parameters!MetodoPago.Value - - - - - - - - - Cuenta: - - - - =IIF(Parameters!NumCta.Value="0" Orelse Parameters!NumCta.Value="","No Identificado",Parameters!NumCta.Value) - - - - - - - Textbox4 - 0.05159in - 5.39311in - 1.27833in - 2.8593in - 3 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Expedido en - - - - : - - - - - - - - - =Parameters!DomicilioSucursal.Value - - - - - - - - - BBD021220APA - - - - - - - - - - - - - - - - - - Vendedor: - - - - =Parameters!VendedorNombre.Value - - - - - - - Textbox40 - 3.51387cm - 13.72673cm - 2.47332cm - 7.26261cm - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 0.75572in - - - 0.58129in - - - 0.79461in - - - 2.38421in - - - 0.78125in - - - 0.63048in - - - 0.55487in - - - 0.62063in - - - 1.11998in - - - - - 0.19645in - - - - - true - true - - - - - CANT - - - - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - UNIDAD - - - - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - CODIGO - - - - - - - Textbox29 - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - DESCRIPCIÓN - - - - - - - Textbox17 - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - PU - - - - - - - Textbox1 - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - %DESC - - - - - - - Textbox21 - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - IEPS - - - - - - - Textbox23 - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - IVA - - - - - - - Textbox8 - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - TOTAL - - - - - - - Textbox1 - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.14436in - - - - - true - true - - - - - =Fields!Cantidad.Value - - - - - - - Cantidad1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!UM.Value - - - - - - - UM - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Codigo.Value - - - - - - - Codigo - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PS.Value & " " & Fields!Obs.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PU.Value - - - - - - - PU1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Descuento.Value - - - - - - - Descuento - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!IEPS.Value - - - - - - - IEPS - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!IVA.Value - - - - - - - IVA - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =(Fields!Cantidad.Value * Fields!PU.Value) - Fields!Descuento.Value - - - - - - - TiempoEntrega - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - - - - - After - - - - - - - DsOC - 2.45577in - 0.04048in - 0.34081in - 8.22304in - 5 - - - - - - true - true - - - - - - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - - #3a4173 - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =UCase(Parameters!ImporteLetra.Value) - - - - - - - ImporteLetra - 3.25108in - 1.038in - 0.18861in - 7.22552in - 8 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.99824cm - - - - - 0.48004cm - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - =Fields!ImpuestoLocal.Value - - - - 2.93858cm - - - true - true - - - - - =IIF(Fields!ImpuestoLocal.Value = "Total",UCase(Fields!ImpuestoLocal.Value),Fields!ImpuestoLocal.Value) - - - - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - DataSet1 - 7.4511cm - 15.05252cm - 0.48004cm - 5.93682cm - 9 - - - - - - true - true - - - - - Sin más por el momento, se despide su seguro proveedor - - - - Textbox2 - 12.55395cm - 3.49882cm - 0.57354cm - 12.91587cm - 10 - - - 2pt - 2pt - 2pt - 2pt - - - - 14.00062cm - 7.56391cm - 0cm - 5.675cm - 11 - - - - - - true - true - - - - - =Parameters!VendedorNombre.Value - - - - Textbox3 - 14.07117cm - 7.56391cm - 0.6cm - 5.675cm - 12 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Observaciones de crédito: - - - - =Parameters!Observaciones.Value - - - - - - - =Parameters!FormaEntrega.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - 14.80346cm - - - - - - - - =Today - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 27.94cm - 21.59cm - 0cm - 0cm - 0.5cm - 0.5cm - 1.27cm - + + + =Parameters!ClienteNombre.Value + + + + + + + + + Dirección: + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + RFC: + + + + =Parameters!ClienteRFC.Value + + + + + + + + + Atención A: + + + + =Parameters!ClienteContacto.Value + + + + + + + Textbox2 + 0.05159in + 4.32145cm + 0.99993in + 3.6362in + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo + Fit + 0.05159in + 0.0375in + 0.99993in + 1.60289in + 1 + + + + + + true + true + + + + + Domicilio fiscal: + + + + + + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + + + + + + Cotización + + + + + + + + + + + + + Serie: + + + + =Parameters!Serie.Value + + + + Folio: + + + + =Parameters!Folio.Value + + + + + + + + + Fecha: + + + + + + + + = Parameters!Fecha.Value + + + + + + + + + + + + + Forma de pago: + + + + =Parameters!FormaPago.Value + + + + + + + + + Método de pago: + + + + =Parameters!MetodoPago.Value + + + + + + + + + Cuenta: + + + + =IIF(Parameters!NumCta.Value="0" Orelse Parameters!NumCta.Value="","No Identificado",Parameters!NumCta.Value) + + + + + + + Textbox4 + 0.05159in + 5.39311in + 1.27833in + 2.8593in + 3 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Expedido en + + + + : + + + + + + + + + =Parameters!DomicilioSucursal.Value + + + + + + + + + BBD021220APA + + + + + + + + + + + + + + + + + + Vendedor: + + + + =Parameters!VendedorNombre.Value + + + + + + + Textbox40 + 3.51387cm + 13.72673cm + 2.47332cm + 7.26261cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 0.75572in + + + 0.58129in + + + 0.79461in + + + 2.38421in + + + 0.78125in + + + 0.63048in + + + 0.55487in + + + 0.62063in + + + 1.11998in + + + + + 0.19645in + + + + + true + true + + + + + CANT + + + + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + UNIDAD + + + + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + CODIGO + + + + + + + Textbox29 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + DESCRIPCIÓN + + + + + + + Textbox17 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + PU + + + + + + + Textbox1 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + %DESC + + + + + + + Textbox21 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + IEPS + + + + + + + Textbox23 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + IVA + + + + + + + Textbox8 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + TOTAL + + + + + + + Textbox1 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!UM.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Codigo.Value + + + + + + + Codigo + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " & Fields!Obs.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Descuento.Value + + + + + + + Descuento + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!IEPS.Value + + + + + + + IEPS + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!IVA.Value + + + + + + + IVA + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =(Fields!Cantidad.Value * Fields!PU.Value) - Fields!Descuento.Value + + + + + + + TiempoEntrega + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DsOC + 2.45577in + 0.04048in + 0.34081in + 8.22304in + 5 + + + + + + true + true + + + + + + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =UCase(Parameters!ImporteLetra.Value) + + + + + + + ImporteLetra + 3.25108in + 1.038in + 0.18861in + 7.22552in + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.99824cm + + + + + 0.48004cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.93858cm + + + true + true + + + + + =IIF(Fields!ImpuestoLocal.Value = "Total",UCase(Fields!ImpuestoLocal.Value),Fields!ImpuestoLocal.Value) + + + + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 7.4511cm + 15.05252cm + 0.48004cm + 5.93682cm + 9 + + + + + + true + true + + + + + Sin más por el momento, se despide su seguro proveedor + + + + Textbox2 + 12.55395cm + 3.49882cm + 0.57354cm + 12.91587cm + 10 + + + 2pt + 2pt + 2pt + 2pt + + + + 14.00062cm + 7.56391cm + 0cm + 5.675cm + 11 + + + + + + true + true + + + + + =Parameters!VendedorNombre.Value + + + + Textbox3 + 14.07117cm + 7.56391cm + 0.6cm + 5.675cm + 12 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Observaciones de crédito: + + + + =Parameters!Observaciones.Value + + + + + + + =Parameters!FormaEntrega.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 14.80346cm + + + + + + + + =Today + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0cm + 0cm + 0.5cm + 0.5cm + 1.27cm + @@ -26,7 +26,7 @@ Cliente: @@ -34,21 +34,21 @@ =Parameters!ClienteCodigo.Value - =Parameters!ClienteNombre.Value @@ -62,7 +62,7 @@ RFC: @@ -70,7 +70,7 @@ =Parameters!ClienteRFC.Value @@ -85,7 +85,7 @@ Calle: @@ -93,7 +93,7 @@ @@ -101,7 +101,7 @@ =Parameters!ClienteCalle.Value & IIF(Parameters!ClienteNoExt.Value <> "", " No.Ext: " & Parameters!ClienteNoExt.Value & iif(Parameters!ClienteNoInt.Value <> ""," No.Int: " & Parameters!ClienteNoInt.Value,""),iif(Parameters!ClienteNoInt.Value <> ""," No.Int: " & Parameters!ClienteNoInt.Value,"")) @@ -116,7 +116,7 @@ Colonia: @@ -124,7 +124,7 @@ @@ -132,7 +132,7 @@ =Parameters!ClienteColonia.Value @@ -147,7 +147,7 @@ Ciudad: @@ -155,7 +155,7 @@ =Parameters!ClienteCiudad.Value @@ -163,7 +163,7 @@ @@ -171,7 +171,7 @@ Estado: @@ -179,7 +179,7 @@ @@ -187,7 +187,7 @@ =Parameters!ClienteEstado.Value @@ -202,7 +202,7 @@ Municipio y/o Delegación: @@ -210,7 +210,7 @@ =Parameters!ClienteMunicipio.Value @@ -218,7 +218,7 @@ @@ -233,7 +233,7 @@ Pais: @@ -241,7 +241,7 @@ =Parameters!ClientePais.Value @@ -249,7 +249,7 @@ @@ -257,7 +257,7 @@ CP: @@ -265,7 +265,7 @@ @@ -273,7 +273,7 @@ =Parameters!ClienteCP.Value @@ -310,7 +310,7 @@ "Este documento es una representación impresa de un CFDI" @@ -325,7 +325,7 @@ Folio fiscal: @@ -333,7 +333,7 @@ =Parameters!FolioFiscal.Value @@ -346,7 +346,7 @@ Fecha y hora de certificación: @@ -354,7 +354,7 @@ =Parameters!FechaCertificacion.Value @@ -362,7 +362,7 @@ Número de serie del Certificado de Sello Digital: @@ -370,7 +370,7 @@ =Parameters!CertificadoContribuyente.Value @@ -383,7 +383,7 @@ Sello digital del CFDI: Número de serie del Certificado de Sello Digital del SAT: @@ -391,7 +391,7 @@ =Parameters!SerieCertificadoSAT.Value @@ -404,7 +404,7 @@ =Parameters!SelloCFDI.Value @@ -417,7 +417,7 @@ @@ -430,7 +430,7 @@ Cadena original del complemento de certificación digital del SAT: @@ -443,7 +443,7 @@ =Parameters!CadenaOriginal.Value @@ -456,7 +456,7 @@ @@ -469,7 +469,7 @@ Sello digital del SAT: @@ -482,7 +482,7 @@ =Parameters!SelloSAT.Value @@ -542,7 +542,7 @@ Domicilio fiscal: @@ -555,7 +555,7 @@ Tamaulipas S/N @@ -568,7 +568,7 @@ C.P. 83190 Col. San Benito @@ -581,7 +581,7 @@ Hermosillo, Son. México. @@ -615,7 +615,7 @@ = IIF(Parameters!Tipo.Value = "INGRESO","FACTURA","NOTA DE CRÉDITO") @@ -630,7 +630,7 @@ @@ -638,7 +638,7 @@ Serie: @@ -654,7 +654,7 @@ @@ -662,7 +662,7 @@ Folio: @@ -685,7 +685,7 @@ Fecha: @@ -693,7 +693,7 @@ @@ -701,7 +701,7 @@ =Format(Cdate(Parameters!Fecha.Value),"dd/MM/yyyy") @@ -725,7 +725,7 @@ @@ -733,7 +733,7 @@ =Parameters!MonedaAbreviatura.Value @@ -748,7 +748,7 @@ Vencimiento @@ -756,7 +756,7 @@ : @@ -764,7 +764,7 @@ =Parameters!Vencimiento.Value @@ -772,7 +772,7 @@ @@ -787,7 +787,7 @@ Forma de pago: @@ -795,7 +795,7 @@ =Parameters!FormaPago.Value @@ -810,7 +810,7 @@ Método de pago: @@ -818,7 +818,7 @@ =Parameters!MetodoPago.Value @@ -833,7 +833,7 @@ Uso CFDI: @@ -841,7 +841,7 @@ =Parameters!UsoCFDI.Value @@ -856,7 +856,7 @@ Régimen fiscal: @@ -864,7 +864,7 @@ Regimen General de Ley Personas Morales @@ -872,7 +872,7 @@ @@ -908,7 +908,7 @@ Expedido en @@ -916,7 +916,7 @@ : @@ -931,7 +931,7 @@ =Parameters!DomicilioSucursal.Value @@ -946,7 +946,7 @@ BBD021220APA @@ -961,7 +961,7 @@ @@ -976,7 +976,7 @@ Vendedor: @@ -984,7 +984,7 @@ =Parameters!VendedorNombre.Value @@ -1054,7 +1054,7 @@ CANT @@ -1426,7 +1426,7 @@ =Fields!SATClaveProdServ.Value @@ -1461,7 +1461,7 @@ =Fields!PS.Value & " " & Fields!Obs.Value @@ -1494,7 +1494,7 @@ =Fields!PU.Value @@ -1835,7 +1835,7 @@ =Parameters!Observaciones.Value @@ -1881,7 +1881,7 @@ =Fields!Importe.Value @@ -1984,7 +1984,7 @@ CFDI Relacionados @@ -2057,7 +2057,7 @@ =Parameters!TipoRelacionTexto.Value @@ -2112,7 +2112,7 @@ Folio @@ -2297,7 +2297,7 @@ =Fields!Fecha.Value @@ -2332,7 +2332,7 @@ =Fields!Importe.Value @@ -2367,7 +2367,7 @@ =Fields!FolioFiscal.Value @@ -2429,9 +2429,9 @@ - VERSION 3.3 + VERSION 4.0 @@ -2502,7 +2502,7 @@ IMPUESTO @@ -2653,7 +2653,7 @@ =Fields!tasa.Value @@ -2688,7 +2688,7 @@ =Fields!Importe.Value @@ -2770,7 +2770,7 @@ TODA DEVOLUCIÓN NO REALIZADA EL DÍA DE LA COMPRA CAUSARÁ EL 10% DE CARGO" @@ -2925,7 +2925,7 @@ Nombre @@ -2961,7 +2961,7 @@ Recibí Producto @@ -3071,14 +3071,14 @@ =Parameters!Serie.Value @@ -3086,7 +3086,7 @@ @@ -3103,7 +3103,7 @@ =Parameters!Folio.Value @@ -3152,7 +3152,7 @@ @@ -3160,7 +3160,7 @@ Cliente: @@ -3168,7 +3168,7 @@ =Parameters!ClienteCodigo.Value @@ -3176,7 +3176,7 @@ - @@ -3184,7 +3184,7 @@ =Parameters!ClienteNombre.Value @@ -3192,7 +3192,7 @@ - @@ -3200,7 +3200,7 @@ =Parameters!ClienteRFC.Value @@ -3215,7 +3215,7 @@ Domicilio: @@ -3223,7 +3223,7 @@ =Parameters!ClienteDireccion.Value @@ -3231,7 +3231,7 @@ , @@ -3239,7 +3239,7 @@ =Parameters!ClienteCiudad.Value @@ -3247,7 +3247,7 @@ , @@ -3255,7 +3255,7 @@ =Parameters!ClienteEstado.Value @@ -3303,7 +3303,7 @@ POR ESTE @@ -3388,7 +3388,7 @@ *** @@ -3546,7 +3546,7 @@ Obligado =Parameters!FechaImpresion.Value @@ -3681,7 +3681,7 @@ ="Página " & Globals.PageNumber & " de " & Globals.TotalPages @@ -4566,6 +4566,18 @@ true ReportParameter1 + + String + true + true + ReportParameter1 + + + String + true + true + ReportParameter1 + diff --git a/Empresas/140/Formatos/NotaDevolucion.rdlc b/Empresas/140/Formatos/NotaDevolucion.rdlc new file mode 100644 index 000000000..cf9cd8ad3 --- /dev/null +++ b/Empresas/140/Formatos/NotaDevolucion.rdlc @@ -0,0 +1,4634 @@ + + + 0 + + + + System.Data.DataSet + /* Local Connection */ + + 06ae5329-8ff5-42b5-b7f4-6d68e5186420 + + + + System.Data.DataSet + /* Local Connection */ + + 3fde81d4-b9ca-4175-9160-5293ca8b9aa9 + + + + System.Data.DataSet + /* Local Connection */ + + c220a38d-e45b-4e04-917e-7dfd9cc3345f + + + + System.Data.DataSet + /* Local Connection */ + + c220a38d-e45b-4e04-917e-7dfd9cc3345f + + + + System.Data.DataSet + /* Local Connection */ + + c220a38d-e45b-4e04-917e-7dfd9cc3345f + + + + System.Data.DataSet + /* Local Connection */ + + c220a38d-e45b-4e04-917e-7dfd9cc3345f + + + + + + DsOC + /* Local Query */ + + + + ImporteIEPS + System.Decimal + + + ImporteIVA + System.Decimal + + + PorcentajeIEPS + System.Decimal + + + PorcentajeIVA + System.Decimal + + + Cantidad + System.Double + + + CveUnidadMedida + System.Int64 + + + Abreviatura + System.String + + + PS + System.String + + + CveClasificacion + System.Int64 + + + Clasificacion + System.String + + + CveActivoFijo + System.Int64 + + + Codigo + System.String + + + TipoDato + System.Int64 + + + CodigoAF + System.String + + + CodigoPS + System.String + + + UnidadMedida + System.String + + + Importe + System.Decimal + + + Total + System.Decimal + + + UM + System.String + + + Obs + System.String + + + SubProyecto + System.String + + + PU + System.String + + + Descuento + System.String + + + Marca + System.String + + + SATClaveProdServ + System.String + + + + DsOC + C:\Users\Orlando Bojorquez\Documents\Visual Studio 2013\WebSites\WebSite1\App_Code\DsOC.xsd + DtOCDetalle + + + + + + + + DataSet2 + /* Local Query */ + + + + ImpuestoLocal + System.String + + + Importe + System.Double + + + Nombre + System.String + + + ImporteT + System.String + + + Orden + System.String + + + + DataSet2 + C:\Users\jesus\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DataSet2.xsd + DataTable1 + + + + + + + + DsFirmas + /* Local Query */ + + + + Titulo + System.String + + + Nombre + System.String + + + Puesto + System.String + + + Lado + System.String + + + + DsFirmas + C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd + DataTable1 + + + + + + + + DsDesgloseImpuestos + /* Local Query */ + + + + Impuesto + System.String + + + tasa + System.String + + + Importe + System.String + + + Orden + System.String + + + + DsDesgloseImpuestos + C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd + DataTable1 + + + + + + + + DsDesgloseImpuestos + /* Local Query */ + + + + SerieFolio + System.String + + + Fecha + System.String + + + Importe + System.String + + + FolioFiscal + System.String + + + + DsDocumentosRelacionados + C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd + DataTable1 + + + + + + + + DsDesgloseImpuestos + /* Local Query */ + + + + SerieFolio + System.String + + + Fecha + System.String + + + SubTotal + System.String + + + Importe + System.String + + + Moneda + System.String + + + + DsNCVinculadas + C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd + DataTable1 + + + + + + + + + + + + + + true + true + + + + + Serie: + + + + + + + + =Parameters!Serie.Value + + + + + + + + Folio: + + + + =Parameters!Folio.Value + + + + + + + Textbox81 + 0.36804in + 5.50529in + 0.18682in + 2.05349in + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo + Fit + 0.23694in + 0.8541in + 1.39456in + 1 + + + + + + true + true + + + + + Cliente: + + + + =Parameters!ClienteCodigo.Value + + + + - + + + + =Parameters!ClienteNombre.Value + + + + + + + + + Domicilio: + + + + =Parameters!ClienteDireccion.Value + + + + , + + + + =Parameters!ClienteCiudad.Value + + + + , + + + + =Parameters!ClienteEstado.Value + + + + + + + Textbox36 + 1.83775cm + 4.3204cm + 0.96667cm + 14.87889cm + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + 3.08165cm + 0.635cm + 0cm + 18.56429cm + 3 + + + + + + true + true + + + + + + + + + POR ESTE PAGARE ME(NO) OBLIGO(AMOS) INCONDICIONALMENTE A PAGAR A LA ORDEN DE + + + + BDH BATERIAS DISTRIBUCIONES DE HERMOSILLO, SA DE CV. + + + + AL VENCIMIENTO ABAJO INDICADO. EN LA CIUDAD DE HERMOSILLO, SONORA O EN CUALQUIER OTRO LUGAR QUE SE ME REQUIERA DE PAGO, RENUNCIANDO EXPRESAMENTE AL FUERO DE MI DOMICILIO. LA CANTIDAD DE + + + + $ + + + + =Parameters!Total.Value + + + + + + + =Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) + + + + + + + LA SUMA ANTERIOR SI NO FUERA CUBIERTA A SU VENCIMIENTO, CAUSARA INTERES MORATORIO A RAZON DEL + + + + 3.00% MENSUAL + + + + Y EN CASO DEL COBRO JUDICIAL SE CARGARAN LOS GASTOS QUE ESTOS GENEREN. + + + + + + + true + true + + + + + a + + + + =cdate(Parameters!Fecha.Value) + + + + + + + + + Vencimiento el + + + + =Parameters!Vencimiento.Value + + + + + + + Textbox38 + 8.17569cm + 3.93558cm + 1.07625cm + 5.19875cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + 10.25697cm + 3.93558cm + 0cm + 5.19875cm + 6 + + + + + + true + true + + + + + S U S C R I P T O R + + + + + + + Textbox39 + 10.43336cm + 3.93558cm + 0.6cm + 5.19875cm + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + 10.25697cm + 11.9387cm + 0cm + 5.19875cm + 8 + + + + + + true + true + + + + + NOMBRE Y FIRMA DEL AVAL + + + + + + + Textbox39 + 10.43336cm + 11.9387cm + 0.6cm + 5.19875cm + 9 + + + 2pt + 2pt + 2pt + 2pt + + + + + Start + + true + 7.01812in + 0.17767in + 4.422in + 7.87128in + + =iif(Parameters!AplicaPagare.Value="0",True,False) + + + + + + + true + true + + + + + Facturado a: + + + + + + + + + Cliente: + + + + =Parameters!ClienteCodigo.Value + + + + - + + + + =Parameters!ClienteNombre.Value + + + + + + + + + RFC: + + + + =Parameters!ClienteRFC.Value + + + + + + + + + Calle: + + + + + + + + =Parameters!ClienteCalle.Value & IIF(Parameters!ClienteNoExt.Value <> "", " No.Ext: " & Parameters!ClienteNoExt.Value & iif(Parameters!ClienteNoInt.Value <> ""," No.Int: " & Parameters!ClienteNoInt.Value,""),iif(Parameters!ClienteNoInt.Value <> ""," No.Int: " & Parameters!ClienteNoInt.Value,"")) + + + + + + + + + Colonia: + + + + + + + + =Parameters!ClienteColonia.Value + + + + + + + + + Ciudad: + + + + =Parameters!ClienteCiudad.Value + + + + + + + + Estado: + + + + + + + + =Parameters!ClienteEstado.Value + + + + + + + + + Municipio y/o Delegación: + + + + =Parameters!ClienteMunicipio.Value + + + + + + + + + + + + + Pais: + + + + =Parameters!ClientePais.Value + + + + + + + + CP: + + + + + + + + =Parameters!ClienteCP.Value + + + + + + + + + + + Textbox2 + 0.05159in + 4.31439cm + 1.62208in + 3.20861in + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + true + true + + + + + "Este documento es una representación impresa de un CFDI" + + + + + + + + + Folio fiscal: + + + + =Parameters!FolioFiscal.Value + + + + + + + =Parameters!FechaCertificacion.Value + + + + Número de serie del Certificado de Sello Digital: + + + + =Parameters!CertificadoContribuyente.Value + + + + + + + =Parameters!SerieCertificadoSAT.Value + + + + + + + + + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!QR.Value + FitProportional + 0.0444in + 6.56374in + 1.13974in + 1.53682in + 1 + + + + + + true + 3.53788in + 0.03589in + 1.21305in + 8.22763in + 2 + + + + + + true + true + + + + + Domicilio fiscal: + + + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + + Nota de Devolución + + + + + + + + + + + + + Serie: + + + + =Parameters!Serie.Value + + + + Folio: + + + + =Parameters!Folio.Value + + + + + + + + + Fecha: + + + + + + + + =Format(Cdate(Parameters!Fecha.Value),"dd/MM/yyyy") + + + + + + + + + Moneda: + + + + + + + + =Parameters!MonedaAbreviatura.Value + + + + + + + + + Vencimiento + + + + : + + + + =Parameters!Vencimiento.Value + + + + + + + + + + + + + Moneda + + + + Forma de pago: + + + + =Parameters!FormaPago.Value + + + + + + + + + Método de pago: + + + + =Parameters!MetodoPago.Value + + + + + + + + + Uso CFDI: + + + + =Parameters!UsoCFDI.Value + + + + + + + + + Régimen fiscal: + + + + Regimen General de Ley Personas Morales + + + + + + + + + + + Textbox4 + 0.05022in + 4.90719in + 1.62345in + 3.35633in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Expedido en + + + + : + + + + + + + + + =Parameters!DomicilioSucursal.Value + + + + + + + + + BBD021220APA + + + + + + + + + + + + + + + + + + Vendedor: + + + + =Parameters!VendedorNombre.Value + + + + + + + Textbox40 + 4.25cm + 13.26812cm + 1.42163cm + 7.72123cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 0.54927in + + + 0.826in + + + 0.8527in + + + 3.41945in + + + 0.57354in + + + 0.59047in + + + 0.61967in + + + 0.79194in + + + + + 0.19645in + + + + + true + true + + + + + CANT + + + + + + + Textbox22 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + UNIDAD + + + + + + + Textbox15 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + CLAVE SAT + + + + + + + Textbox29 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + DESCRIPCIÓN + + + + + + + Textbox17 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + PU + + + + + + + Textbox3 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + DESC. + + + + + + + Textbox8 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + IVA + + + + + + + Textbox2 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + TOTAL + + + + + + + Textbox1 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =(Fields!UM.Value & "-" & Fields!UnidadMedida.Value) + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!SATClaveProdServ.Value + + + + + + + SATClaveProdServ + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " & Fields!Obs.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Descuento.Value + + + + + + + Descuento + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!ImporteIVA.Value + + + + + + + ImporteIVA + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =(Fields!Cantidad.Value * Fields!PU.Value) - Fields!Descuento.Value + + + + + + + TiempoEntrega + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DsOC + 2.25503in + 0.04048in + 0.34081in + 8.22304in + 6 + + + + + + true + true + + + + + + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =UCase(Parameters!ImporteLetra.Value) + + + + + + + ImporteLetra + 3.05676in + 2.28431in + 0.18861in + 5.97921in + 9 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.99824cm + + + + + 0.48004cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.93858cm + + + true + true + + + + + =IIF(Fields!ImpuestoLocal.Value = "Total",UCase(Fields!ImpuestoLocal.Value),Fields!ImpuestoLocal.Value) + + + + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 6.99203cm + 15.05252cm + 0.48004cm + 5.93682cm + 13 + + + + + + + + true + true + + + + + CFDI Relacionados + + + + + + + Textbox5 + 0.14926cm + 0.07193cm + 0.54004cm + 20.7077cm + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Tipo Relación: + + + + + + + Textbox29 + 0.83025cm + 4.78817cm + 0.41981cm + 5.31841cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!TipoRelacionTexto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.42456cm + + + 2.05585cm + + + 3.03631cm + + + 7.7847cm + + + + + 0.44125cm + + + + + true + true + + + + + Folio + + + + + + + Textbox10 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox21 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Folio Fiscal + + + + + + + Textbox11 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.41479cm + + + + + true + true + + + + + =Fields!SerieFolio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Fecha.Value + + + + + + + Fecha + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet4 + 1.39643cm + 3.28643cm + 0.85604cm + 15.30142cm + 3 + + + + + + true + true + + + + + VERSION 3.3 + + + + + + + Textbox5 + 2.32303cm + 17.39754cm + 0.6cm + 3.32021cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + 12.89651cm + 0.09116cm + 2.97096cm + 20.89818cm + 14 + + =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) + + + + + + + + + + 0.78719in + + + 0.58129in + + + 0.71694in + + + + + 0.19645in + + + + + true + true + + + + + IMPUESTO + + + + + + + Textbox22 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + TASA + + + + + + + Textbox15 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + IMPORTE + + + + + + + Textbox29 + + + #3a4173 + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Impuesto.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!tasa.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Codigo + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet3 + 2.75704in + 0.04048in + 0.34081in + 2.08542in + 15 + + + + + + true + true + + + + + "REVISAR SU FACTURA Y SUS PRODUCTOS AL MOMENTO DE RECIBIRLAS, YA QUE NO SE REALIZARAN CAMBIOS EN FACTURA NI SE ACEPTARAN DEVOLUCIONES DE MERCANCIA DESPUES DE + + + + + + + + + 72 HORAS + + + + POSTERIORES A LA FECHA DE ELABORACIÓN" + + + + + + + Textbox1 + 8.4794cm + 0.13457cm + 0.34219cm + 20.85477cm + 16 + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo + FitProportional + 0.13104cm + 0.08425cm + 2.5433cm + 4.13cm + 17 + + + + + + 29.14037cm + + + + + 21.12144cm + + + 0.63499cm + true + true + + + true + true + + + + + Fecha Impresión: + + + + =Parameters!FechaImpresion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox35 + 0.11289cm + 18.37079cm + 0.41981cm + 2.5cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0cm + 0cm + 0.5cm + 0.5cm + 1.27cm + - - - - - - Textbox3 - 0.90692in - 5.67236in - 0.5cm - 2.23561in - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Fecha y hora de emisión - - - - - - - - - - - - - - - - Textbox3 - 0.46414in - 5.67236in - 0.5cm - 2.23561in - 1 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) - - - - - - - Textbox3 - 0.22455in - 5.67236in - 0.60856cm - 2.23561in - 2 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!TipoDocumento.Value - - - - - - - Textbox3 - 0.0412cm - 5.67236in - 0.5cm - 2.23561in - 3 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - COYOTIRE - - - - - - - - - R.F.C. COYO010101AAA - - - - 0cm - 0cm - - - - - - Olivares 466 Col. Santa Isabe C.P. 83130 - - - - 0cm - 0cm - - - - - - Hermosillo, Sonora, México. - - - - 0cm - 0cm - - - - - - Tel. (662)1890411 - - - - 0cm - 0cm - - - - Textbox4 - 0.0635cm - 1.41912in - 1.04333in - 4.18732in - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!Fecha.Value - - - - - - - Textbox3 - 0.66099in - 5.67236in - 0.25114in - 2.23561in - 5 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!Tipo.Value & Parameters!Ref.Value - - - - - - - Textbox3 - 1.10364in - 5.67236in - 0.25635in - 2.23561in - 6 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Nombre - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteNombre.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Dirección - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteDireccion.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Ciudad - - - - - - - #4f81bd - - 1.25pt - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteLugar.Value - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.12527cm - - - 2.02474cm - - - 10.17786cm - - - 2.52862cm - - - 3.15415cm - - - - - 0.6cm - - - - - true - true - - - - - Cantidad - - - - - - - Textbox34 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Unidad - - - - - - - Textbox53 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Descripción - - - - - - - Textbox79 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - P. Unitario - - - - - - - Textbox84 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.49417cm - - - - - true - true - - - - - =Fields!Cantidad.Value - - - - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!UM.Value - - - - - - - UM1 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PS.Value & " " &Fields!Obs.Value - - - - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PU.Value - - - - - - - PU1 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Cantidad.Value*Fields!PU.Value - - - - - - - Textbox88 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - 0.16344cm - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - After - - - - - - Before - - - - DsOC - 4.5569cm - 0.11468cm - 1.25761cm - 20.01064cm - 13 - - - - - - true - - - - - RFC: - - - - - - - - =Parameters!ClienteRFC.Value - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 0.81609in - - - 0.69462in - - - 0.72263in - - - - - 0.19645in - - - - - true - true - - - - - Impuesto - - - - - - - Textbox22 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Tasa - - - - - - - Textbox15 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox29 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.14436in - - - - - true - true - - - - - =Fields!Impuesto.Value - - - - - - - Cantidad1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!tasa.Value - - - - - - - UM - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Codigo - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - After - - - - - - - DataSet3 - 2.65189in - 5.68499in - 0.34081in - 2.23334in - 15 - - - - - - - - - 3.11466cm - - - - - 0.6cm - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - - - - - - - - - - - - =Fields!ImpuestoLocal.Value - - - - 2.48915cm - - - true - true - - - - - =Fields!ImpuestoLocal.Value - - - - - - - ImpuestoLocal - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - DataSet1 - 5.83876cm - 14.4684cm - 0.6cm - 5.60381cm - 16 - - - - - - - - - 3.33075cm - - - 10.99712cm - - - - - 0.6cm - - - - - true - true - - - - - =Parameters!Observaciones.Value - - - - - - - Textbox128 - - - - 1pt - - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - - - 0.6cm - - - - - true - true - - - - - Importe con letra: - - - - - - - Textbox126 - - - LightGrey - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) - - - - - - - Textbox127 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - DsOC - 5.84979cm - 0.14053cm - 1.2cm - 14.32787cm - 17 - - - - - - Embedded - Logo1 - FitProportional - 2.71356cm - 3.49873cm - 18 - - - - - - true - true - - - - - Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. - - - - - - 2pt - 2pt - 2pt - 2pt - - - - 8.06008cm - - - - - - - - =CDate(Today).ToString("dd/MM/yyyy") - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 27.94cm - 21.59cm - 0.5cm - 0.5cm - 1cm - 0.5cm - 1.27cm - + + + + + + Textbox3 + 0.90692in + 5.67236in + 0.5cm + 2.23561in + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Fecha y hora de emisión + + + + + + + + + + + + + + + + Textbox3 + 0.46414in + 5.67236in + 0.5cm + 2.23561in + 1 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox3 + 0.22455in + 5.67236in + 0.60856cm + 2.23561in + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!TipoDocumento.Value + + + + + + + Textbox3 + 0.0412cm + 5.67236in + 0.5cm + 2.23561in + 3 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + JOSE HEBERTO PAZ DUEÑAS + + + + + + + + + R.F.C. PADH840407DG3 + + + + 0cm + 0cm + + + + + + DE LOS ARROYOS 11 Col. RIO DE PLATA C.P. 83175 + + + + 0cm + 0cm + + + + + + Hermosillo, Sonora, México. + + + + 0cm + 0cm + + + + + + Tel. (662)1890411 + + + + 0cm + 0cm + + + + + + COYOTIRES + + + + 0cm + 0cm + + + + Textbox4 + 0.0635cm + 1.41912in + 1.04333in + 4.18732in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox3 + 0.66099in + 5.67236in + 0.25114in + 2.23561in + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Tipo.Value & Parameters!Ref.Value + + + + + + + Textbox3 + 1.10364in + 5.67236in + 0.25635in + 2.23561in + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Nombre + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Dirección + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ciudad + + + + + + + #4f81bd + + 1.25pt + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteLugar.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.12527cm + + + 2.02474cm + + + 10.17786cm + + + 2.52862cm + + + 3.15415cm + + + + + 0.6cm + + + + + true + true + + + + + Cantidad + + + + + + + Textbox34 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Unidad + + + + + + + Textbox53 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox79 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + P. Unitario + + + + + + + Textbox84 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.49417cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!UM.Value + + + + + + + UM1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " &Fields!Obs.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Cantidad.Value*Fields!PU.Value + + + + + + + Textbox88 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.16344cm + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + After + + + + + + Before + + + + DsOC + 4.5569cm + 0.11468cm + 1.25761cm + 20.01064cm + 13 + + + + + + true + + + + + RFC: + + + + + + + + =Parameters!ClienteRFC.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 0.81609in + + + 0.69462in + + + 0.72263in + + + + + 0.19645in + + + + + true + true + + + + + Impuesto + + + + + + + Textbox22 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Tasa + + + + + + + Textbox15 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox29 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Impuesto.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!tasa.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Codigo + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet3 + 2.65189in + 5.68499in + 0.34081in + 2.23334in + 15 + + + + + + + + + 3.11466cm + + + + + 0.6cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.48915cm + + + true + true + + + + + =Fields!ImpuestoLocal.Value + + + + + + + ImpuestoLocal + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 5.83876cm + 14.4684cm + 0.6cm + 5.60381cm + 16 + + + + + + + + + 3.33075cm + + + 10.99712cm + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + Textbox128 + + + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.6cm + + + + + true + true + + + + + Importe con letra: + + + + + + + Textbox126 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) + + + + + + + Textbox127 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + DsOC + 5.84979cm + 0.14053cm + 1.2cm + 14.32787cm + 17 + + + + + + Embedded + Logo1 + FitProportional + 2.71356cm + 3.49873cm + 18 + + + + + + true + true + + + + + Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 8.06008cm + + + + + + + + =CDate(Today).ToString("dd/MM/yyyy") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 0.5cm + 1.27cm + - - - - - - Textbox3 - 0.90692in - 5.67236in - 0.5cm - 2.23561in - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Fecha y hora de emisión - - - - - - - - - - - - - - - - Textbox3 - 0.46414in - 5.67236in - 0.5cm - 2.23561in - 1 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) - - - - - - - Textbox3 - 0.22455in - 5.67236in - 0.60856cm - 2.23561in - 2 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!TipoDocumento.Value - - - - - - - Textbox3 - 0.0412cm - 5.67236in - 0.5cm - 2.23561in - 3 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - COYOTIRE - - - - - - - - - R.F.C. COYO010101AAA - - - - 0cm - 0cm - - - - - - Olivares 466 Col. Santa Isabe C.P. 83130 - - - - 0cm - 0cm - - - - - - Hermosillo, Sonora, México. - - - - 0cm - 0cm - - - - - - Tel. (662)1890411 - - - - 0cm - 0cm - - - - Textbox4 - 0.0635cm - 1.41912in - 1.04333in - 4.18732in - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!CadenaOriginal.Value - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - External - =Parameters!QR.Value - FitProportional - 5.47055in - 0.04026in - 1.3497in - 1.5531in - 6 - - - - - - true - - - - - =Parameters!Fecha.Value - - - - - - - Textbox3 - 0.66099in - 5.67236in - 0.25114in - 2.23561in - 7 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!Tipo.Value & Parameters!Ref.Value - - - - - - - Textbox3 - 1.10364in - 5.67236in - 0.25635in - 2.23561in - 8 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Nombre - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteNombre.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Dirección - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteDireccion.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Ciudad - - - - - - - #4f81bd - - 1.25pt - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteLugar.Value - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Folio Fiscal: - - - - - - - Textbox54 - 5.47132in - 1.6628in - 0.18056in - 4.02473in - 15 - - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - No. Serie del Certificado del SAT: - - - - - - - Textbox54 - 5.66577in - 1.6628in - 0.21105in - 4.02473in - 16 - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha y Hora de certificación: - - - - - - - Textbox54 - 5.87682in - 1.6628in - 0.19444in - 4.01804in - 17 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Certificado del Contribuyente: - - - - - - - Textbox54 - 6.08243in - 1.6628in - 0.19445in - 4.02473in - 18 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!FolioFiscal.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!SerieCertificadoSAT.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!FechaCertificacion.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!CertificadoContribuyente.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Régimen: Régimen General de Ley Personas Morales; Condiciones de pago: - - - - =IIF(Parameters!CondicionPago.Value.ToString="","No Identificado",Parameters!CondicionPago.Value) - - - - ; Método de Pago: - - - - =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) - - - - ; Num. Cta Pago: - - - - =IIF(Parameters!NumCta.Value="0" Orelse Parameters!NumCta.Value="","No Identificado",Parameters!NumCta.Value) - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Éste documento es una representacion impresa de un CFDi - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.12527cm - - - 2.02474cm - - - 10.17786cm - - - 2.52862cm - - - 3.15415cm - - - - - 0.6cm - - - - - true - true - - - - - Cantidad - - - - - - - Textbox34 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Unidad - - - - - - - Textbox53 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Descripción - - - - - - - Textbox79 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - P. Unitario - - - - - - - Textbox84 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.49417cm - - - - - true - true - - - - - =Fields!Cantidad.Value - - - - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!UM.Value - - - - - - - UM1 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PS.Value & " " &Fields!Obs.Value - - - - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PU.Value - - - - - - - PU1 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Cantidad.Value*Fields!PU.Value - - - - - - - Textbox88 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - 0.16344cm - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - After - - - - - - Before - - - - DsOC - 4.5569cm - 0.11468cm - 1.25761cm - 20.01064cm - 25 - - - - - - true - - - - - RFC: - - - - - - - - =Parameters!ClienteRFC.Value - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 0.81609in - - - 0.69462in - - - 0.72263in - - - - - 0.19645in - - - - - true - true - - - - - Impuesto - - - - - - - Textbox22 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Tasa - - - - - - - Textbox15 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox29 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.14436in - - - - - true - true - - - - - =Fields!Impuesto.Value - - - - - - - Cantidad1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!tasa.Value - - - - - - - UM - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Codigo - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - After - - - - - - - DataSet3 - 2.65189in - 5.68499in - 0.34081in - 2.23334in - 27 - - - - - - - - - 3.11466cm - - - - - 0.6cm - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - - - - - - - - - - - - =Fields!ImpuestoLocal.Value - - - - 2.48915cm - - - true - true - - - - - =Fields!ImpuestoLocal.Value - - - - - - - ImpuestoLocal - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - DataSet1 - 5.83876cm - 14.4684cm - 0.6cm - 5.60381cm - 28 - - - - - - - - - 3.33075cm - - - 10.99712cm - - - - - 0.6cm - - - - - true - true - - - - - =Parameters!Observaciones.Value - - - - - - - Textbox128 - - - - 1pt - - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - - - 0.6cm - - - - - true - true - - - - - Importe con letra: - - - - - - - Textbox126 - - - LightGrey - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) - - - - - - - Textbox127 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - - - true - true - - - - - Forma de pago: - - - - - - - Textbox130 - - - LightGrey - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!FormaPago.Value - - - - - - - Textbox131 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - - - true - true - - - - - Uso CFDI: - - - - - - - Textbox2 - - - LightGrey - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!UsoCFDI.Value - - - - - - - Textbox44 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 1.8cm - - - - - true - true - - - - - Sello digital del CFDI: - - - - - - - Textbox132 - - - LightGrey - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!SelloCFDI.Value - - - - - - - Textbox133 - - - Top - 2pt - 2pt - 2pt - 2pt - - - - - - - - 1.2cm - - - - - true - true - - - - - Sello del SAT: - - - - - - - Textbox134 - - - LightGrey - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Parameters!SelloSAT.Value - - - - - - - Textbox135 - - - Top - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - - - - - DsOC - 5.84979cm - 0.14053cm - 5.4cm - 14.32787cm - 29 - - - - - - - - true - true - - - - - CFDI Relacionados - - - - - - - Textbox5 - 0.11382cm - 0.05336cm - 0.54004cm - 20.00281cm - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Tipo Relación: - - - - - - - Textbox29 - 0.83025cm - 4.33636cm - 0.41981cm - 5.31841cm - 1 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!TipoRelacionTexto.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.42456cm - - - 2.05585cm - - - 3.03631cm - - - 7.7847cm - - - - - 0.44125cm - - - - - true - true - - - - - Folio - - - - - - - Textbox10 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Fecha - - - - - - - Textbox12 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox21 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Folio Fiscal - - - - - - - Textbox11 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.41479cm - - - - - true - true - - - - - =Fields!SerieFolio.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Fecha.Value - - - - - - - Fecha - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!FolioFiscal.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - After - - - - - - - DataSet4 - 1.39643cm - 2.83462cm - 0.85604cm - 15.30142cm - 3 - - - - - - true - 17.40531cm - 0.04112cm - 2.25247cm - 20.1554cm - 30 - - =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) - - - - - - - true - true - - - - - Cadena original del complemento de certificación digital del SAT: - - - - - - - Textbox1 - 11.26418cm - 0.14053cm - 0.6cm - 19.93168cm - 31 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - VERSION - - - - =Parameters!CFDIVersion.Value - - - - - - - Textbox5 - 19.75983cm - 15.68372cm - 0.56043cm - 4.49042cm - 32 - - - 2pt - 2pt - 2pt - 2pt - - - - Embedded - Logo1 - FitProportional - 2.71356cm - 3.49873cm - 33 - - - - - - true - true - - - - - Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. - - - - - - 2pt - 2pt - 2pt - 2pt - - - - 20.32026cm - - - - - - - - =CDate(Today).ToString("dd/MM/yyyy") - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 27.94cm - 21.59cm - 0.5cm - 0.5cm - 1cm - 0.5cm - 1.27cm - + + + + + + Textbox3 + 0.90692in + 5.67236in + 0.5cm + 2.23561in + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Fecha y hora de emisión + + + + + + + + + + + + + + + + Textbox3 + 0.46414in + 5.67236in + 0.5cm + 2.23561in + 1 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox3 + 0.22455in + 5.67236in + 0.60856cm + 2.23561in + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!TipoDocumento.Value + + + + + + + Textbox3 + 0.0412cm + 5.67236in + 0.5cm + 2.23561in + 3 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + JOSE HEBERTO PAZ DUEÑAS + + + + + + + + + R.F.C. PADH840407DG3 + + + + 0cm + 0cm + + + + + + DE LOS ARROYOS 11 Col. RIO DE PLATA C.P. 83175 + + + + 0cm + 0cm + + + + + + Hermosillo, Sonora, México. + + + + 0cm + 0cm + + + + + + Tel. (662)1890411 + + + + 0cm + 0cm + + + + + + COYOTIRES + + + + 0cm + 0cm + + + + Textbox4 + 0.0635cm + 1.41912in + 1.04333in + 4.18732in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!CadenaOriginal.Value + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!QR.Value + FitProportional + 5.47055in + 0.04026in + 1.3497in + 1.5531in + 6 + + + + + + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox3 + 0.66099in + 5.67236in + 0.25114in + 2.23561in + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Tipo.Value & Parameters!Ref.Value + + + + + + + Textbox3 + 1.10364in + 5.67236in + 0.25635in + 2.23561in + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Nombre + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Dirección + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ciudad + + + + + + + #4f81bd + + 1.25pt + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteLugar.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Folio Fiscal: + + + + + + + Textbox54 + 5.47132in + 1.6628in + 0.18056in + 4.02473in + 15 + + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + No. Serie del Certificado del SAT: + + + + + + + Textbox54 + 5.66577in + 1.6628in + 0.21105in + 4.02473in + 16 + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha y Hora de certificación: + + + + + + + Textbox54 + 5.87682in + 1.6628in + 0.19444in + 4.01804in + 17 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Certificado del Contribuyente: + + + + + + + Textbox54 + 6.08243in + 1.6628in + 0.19445in + 4.02473in + 18 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SerieCertificadoSAT.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FechaCertificacion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!CertificadoContribuyente.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Régimen: Régimen Simplificado de Confianza; Condiciones de pago: + + + + =IIF(Parameters!CondicionPago.Value.ToString="","No Identificado",Parameters!CondicionPago.Value) + + + + ; Método de Pago: + + + + =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) + + + + ; Num. Cta Pago: + + + + =IIF(Parameters!NumCta.Value="0" Orelse Parameters!NumCta.Value="","No Identificado",Parameters!NumCta.Value) + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Éste documento es una representacion impresa de un CFDi + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.12527cm + + + 2.02474cm + + + 10.17786cm + + + 2.52862cm + + + 3.15415cm + + + + + 0.6cm + + + + + true + true + + + + + Cantidad + + + + + + + Textbox34 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Unidad + + + + + + + Textbox53 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox79 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + P. Unitario + + + + + + + Textbox84 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.49417cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!UM.Value + + + + + + + UM1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " &Fields!Obs.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Cantidad.Value*Fields!PU.Value + + + + + + + Textbox88 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.16344cm + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + After + + + + + + Before + + + + DsOC + 4.5569cm + 0.11468cm + 1.25761cm + 20.01064cm + 25 + + + + + + true + + + + + RFC: + + + + + + + + =Parameters!ClienteRFC.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 0.81609in + + + 0.69462in + + + 0.72263in + + + + + 0.19645in + + + + + true + true + + + + + Impuesto + + + + + + + Textbox22 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Tasa + + + + + + + Textbox15 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox29 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Impuesto.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!tasa.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Codigo + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet3 + 2.65189in + 5.68499in + 0.34081in + 2.23334in + 27 + + + + + + + + + 3.11466cm + + + + + 0.6cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.48915cm + + + true + true + + + + + =Fields!ImpuestoLocal.Value + + + + + + + ImpuestoLocal + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 5.83876cm + 14.4684cm + 0.6cm + 5.60381cm + 28 + + + + + + + + + 3.33075cm + + + 10.99712cm + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + Textbox128 + + + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.6cm + + + + + true + true + + + + + Importe con letra: + + + + + + + Textbox126 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) + + + + + + + Textbox127 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + Forma de pago: + + + + + + + Textbox130 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!FormaPago.Value + + + + + + + Textbox131 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + Uso CFDI: + + + + + + + Textbox2 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!UsoCFDI.Value + + + + + + + Textbox44 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 1.8cm + + + + + true + true + + + + + Sello digital del CFDI: + + + + + + + Textbox132 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!SelloCFDI.Value + + + + + + + Textbox133 + + + Top + 2pt + 2pt + 2pt + 2pt + + + + + + + + 1.2cm + + + + + true + true + + + + + Sello del SAT: + + + + + + + Textbox134 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!SelloSAT.Value + + + + + + + Textbox135 + + + Top + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + + + DsOC + 5.84979cm + 0.14053cm + 5.4cm + 14.32787cm + 29 + + + + + + + + true + true + + + + + CFDI Relacionados + + + + + + + Textbox5 + 0.11382cm + 0.05336cm + 0.54004cm + 20.00281cm + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Tipo Relación: + + + + + + + Textbox29 + 0.83025cm + 4.33636cm + 0.41981cm + 5.31841cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!TipoRelacionTexto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.42456cm + + + 2.05585cm + + + 3.03631cm + + + 7.7847cm + + + + + 0.44125cm + + + + + true + true + + + + + Folio + + + + + + + Textbox10 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox21 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Folio Fiscal + + + + + + + Textbox11 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.41479cm + + + + + true + true + + + + + =Fields!SerieFolio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Fecha.Value + + + + + + + Fecha + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet4 + 1.39643cm + 2.83462cm + 0.85604cm + 15.30142cm + 3 + + + + + + true + 17.40531cm + 0.04112cm + 2.25247cm + 20.1554cm + 30 + + =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) + + + + + + + true + true + + + + + Cadena original del complemento de certificación digital del SAT: + + + + + + + Textbox1 + 11.26418cm + 0.14053cm + 0.6cm + 19.93168cm + 31 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + VERSION + + + + =Parameters!CFDIVersion.Value + + + + + + + Textbox5 + 19.75983cm + 15.68372cm + 0.56043cm + 4.49042cm + 32 + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo1 + FitProportional + 2.71356cm + 3.49873cm + 33 + + + + + + true + true + + + + + Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 20.32026cm + + + + + + + + =CDate(Today).ToString("dd/MM/yyyy") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 0.5cm + 1.27cm + - - - - - - Textbox3 - 0.90692in - 5.67236in - 0.5cm - 2.23561in - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Fecha y hora de emisión - - - - - - - - - - - - - - - - Textbox3 - 0.46414in - 5.67236in - 0.5cm - 2.23561in - 1 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) - - - - - - - Textbox3 - 0.22455in - 5.67236in - 0.60856cm - 2.23561in - 2 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!TipoDocumento.Value - - - - - - - Textbox3 - 0.0412cm - 5.67236in - 0.5cm - 2.23561in - 3 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - COYOTIRE - - - - - - - - - R.F.C. COYO010101AAA - - - - 0cm - 0cm - - - - - - Olivares 466 Col. Santa Isabe C.P. 83130 - - - - 0cm - 0cm - - - - - - Hermosillo, Sonora, México. - - - - 0cm - 0cm - - - - - - Tel. (662)1890411 - - - - 0cm - 0cm - - - - Textbox4 - 0.0635cm - 1.41912in - 1.04333in - 4.18732in - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!Fecha.Value - - - - - - - Textbox3 - 0.66099in - 5.67236in - 0.25114in - 2.23561in - 5 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!Tipo.Value & Parameters!Ref.Value - - - - - - - Textbox3 - 1.10364in - 5.67236in - 0.25635in - 2.23561in - 6 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Nombre - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteNombre.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Dirección - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteDireccion.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Ciudad - - - - - - - #4f81bd - - 1.25pt - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - =Parameters!ClienteLugar.Value - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.12527cm - - - 2.02474cm - - - 10.17786cm - - - 2.52862cm - - - 3.15415cm - - - - - 0.6cm - - - - - true - true - - - - - Cantidad - - - - - - - Textbox34 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Unidad - - - - - - - Textbox53 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Descripción - - - - - - - Textbox79 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - P. Unitario - - - - - - - Textbox84 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.49417cm - - - - - true - true - - - - - =Fields!Cantidad.Value - - - - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!UM.Value - - - - - - - UM1 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PS.Value & " " &Fields!Obs.Value - - - - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!PU.Value - - - - - - - PU1 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Cantidad.Value*Fields!PU.Value - - - - - - - Textbox88 - - - - - - - - - - LightGrey - - - LightGrey - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - 0.16344cm - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - - - - - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - After - - - - - - Before - - - - DsOC - 4.5569cm - 0.11468cm - 1.25761cm - 20.01064cm - 13 - - - - - - true - - - - - RFC: - - - - - - - - =Parameters!ClienteRFC.Value - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 0.81609in - - - 0.69462in - - - 0.72263in - - - - - 0.19645in - - - - - true - true - - - - - Impuesto - - - - - - - Textbox22 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Tasa - - - - - - - Textbox15 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox29 - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.14436in - - - - - true - true - - - - - =Fields!Impuesto.Value - - - - - - - Cantidad1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!tasa.Value - - - - - - - UM - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Codigo - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - After - - - - - - - DataSet3 - 2.65189in - 5.68499in - 0.34081in - 2.23334in - 15 - - - - - - - - - 3.11466cm - - - - - 0.6cm - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe - - - 2pt - 2pt - 2pt - 2pt - es-MX - - - - - - - - - - - - - - - - - - - =Fields!ImpuestoLocal.Value - - - - 2.48915cm - - - true - true - - - - - =Fields!ImpuestoLocal.Value - - - - - - - ImpuestoLocal - - - LightGrey - 2pt - 2pt - 2pt - 2pt - - - - - - - - DataSet1 - 5.83876cm - 14.4684cm - 0.6cm - 5.60381cm - 16 - - - - - - - - - 3.33075cm - - - 10.99712cm - - - - - 0.6cm - - - - - true - true - - - - - =Parameters!Observaciones.Value - - - - - - - Textbox128 - - - - 1pt - - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - - - 0.6cm - - - - - true - true - - - - - Importe con letra: - - - - - - - Textbox126 - - - LightGrey - Middle - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) - - - - - - - Textbox127 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - DsOC - 5.84979cm - 0.14053cm - 1.2cm - 14.32787cm - 17 - - - - - - Embedded - Logo1 - FitProportional - 2.71356cm - 3.49873cm - 18 - - - - - - true - true - - - - - Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. - - - - - - 2pt - 2pt - 2pt - 2pt - - - - 8.06008cm - - - - - - - - =CDate(Today).ToString("dd/MM/yyyy") - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 27.94cm - 21.59cm - 0.5cm - 0.5cm - 1cm - 0.5cm - 1.27cm - + + + + + + Textbox3 + 0.90692in + 5.67236in + 0.5cm + 2.23561in + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + Fecha y hora de emisión + + + + + + + + + + + + + + + + Textbox3 + 0.46414in + 5.67236in + 0.5cm + 2.23561in + 1 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox3 + 0.22455in + 5.67236in + 0.60856cm + 2.23561in + 2 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!TipoDocumento.Value + + + + + + + Textbox3 + 0.0412cm + 5.67236in + 0.5cm + 2.23561in + 3 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + JOSE HEBERTO PAZ DUEÑAS + + + + + + + + + R.F.C. PADH840407DG3 + + + + 0cm + 0cm + + + + + + DE LOS ARROYOS 11 Col. RIO DE PLATA C.P. 83175 + + + + 0cm + 0cm + + + + + + Hermosillo, Sonora, México. + + + + 0cm + 0cm + + + + + + Tel. (662)1890411 + + + + 0cm + 0cm + + + + + + COYOTIRES + + + + 0cm + 0cm + + + + Textbox4 + 0.0635cm + 1.41912in + 1.04333in + 4.18732in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox3 + 0.66099in + 5.67236in + 0.25114in + 2.23561in + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Tipo.Value & Parameters!Ref.Value + + + + + + + Textbox3 + 1.10364in + 5.67236in + 0.25635in + 2.23561in + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Nombre + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Dirección + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteDireccion.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ciudad + + + + + + + #4f81bd + + 1.25pt + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!ClienteLugar.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.12527cm + + + 2.02474cm + + + 10.17786cm + + + 2.52862cm + + + 3.15415cm + + + + + 0.6cm + + + + + true + true + + + + + Cantidad + + + + + + + Textbox34 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Unidad + + + + + + + Textbox53 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox79 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + P. Unitario + + + + + + + Textbox84 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.49417cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!UM.Value + + + + + + + UM1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PS.Value & " " &Fields!Obs.Value + + + + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!PU.Value + + + + + + + PU1 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Cantidad.Value*Fields!PU.Value + + + + + + + Textbox88 + + + + + + + + + + LightGrey + + + LightGrey + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + 0.16344cm + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + After + + + + + + Before + + + + DsOC + 4.5569cm + 0.11468cm + 1.25761cm + 20.01064cm + 13 + + + + + + true + + + + + RFC: + + + + + + + + =Parameters!ClienteRFC.Value + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 0.81609in + + + 0.69462in + + + 0.72263in + + + + + 0.19645in + + + + + true + true + + + + + Impuesto + + + + + + + Textbox22 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Tasa + + + + + + + Textbox15 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox29 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.14436in + + + + + true + true + + + + + =Fields!Impuesto.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!tasa.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Codigo + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet3 + 2.65189in + 5.68499in + 0.34081in + 2.23334in + 15 + + + + + + + + + 3.11466cm + + + + + 0.6cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + es-MX + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.48915cm + + + true + true + + + + + =Fields!ImpuestoLocal.Value + + + + + + + ImpuestoLocal + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 5.83876cm + 14.4684cm + 0.6cm + 5.60381cm + 16 + + + + + + + + + 3.33075cm + + + 10.99712cm + + + + + 0.6cm + + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + Textbox128 + + + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + 0.6cm + + + + + true + true + + + + + Importe con letra: + + + + + + + Textbox126 + + + LightGrey + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + ="SON: " & Microsoft.VisualBasic.Strings.UCase(Parameters!ImporteLetra.Value) + + + + + + + Textbox127 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + DsOC + 5.84979cm + 0.14053cm + 1.2cm + 14.32787cm + 17 + + + + + + Embedded + Logo1 + FitProportional + 2.71356cm + 3.49873cm + 18 + + + + + + true + true + + + + + Llanta nueva cuenta con 2 años de garantía contra defecto de fábrica, llanta usada no cuenta con garantía. + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 8.06008cm + + + + + + + + =CDate(Today).ToString("dd/MM/yyyy") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0.5cm + 0.5cm + 1cm + 0.5cm + 1.27cm + + + - - + + + + + + + + + + + + Textbox1 + 0.8675in + 2.40917in + 0.85417in + 3.59375in + + 2pt + 2pt + 2pt + 2pt - - - - - - - - + + + true + true + + + + + Fecha: + + + + + + 2pt + 2pt + 2pt + 2pt - - - Textbox1 - 0.8675in - 2.40917in - 0.85417in - 3.59375in - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha: - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - RFC Emisor: - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Sello digital SAT: - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!FechaCancelacion.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!RFCEmisor.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!Titulo.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Folio Fiscal: - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!FolioFiscal.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - RFC Receptor: - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!RFCReceptor.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Estado CFDI: - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!EstadoCFDI.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Estado - - - - Cancelación: - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!EstadoCancelacion.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Mensaje de Error - - - - : - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!MsgError.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - Embedded - Logohacienda - FitProportional - 2.20345cm - 0.58208cm - 1.69334cm - 5.60104cm - 17 - - - - - - 15.21354cm - - - - =Today - - - - + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Sello digital SAT: + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FechaCancelacion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!RFCEmisor.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Titulo.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Folio Fiscal: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + RFC Receptor: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!RFCReceptor.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Estado CFDI: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!EstadoCFDI.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Estado + + + + Cancelación: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!EstadoCancelacion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Mensaje de Error + + + + : + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!MsgError.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logohacienda + FitProportional + 2.20345cm + 0.58208cm + 1.69334cm + 5.60104cm + 17 + + + + + + 15.21354cm + + + + =Format((Globals!ExecutionTime),"dd/MM/yyyy hh:mm:ss") + + + + + + 2pt + 2pt + 2pt + 2pt + + + - 2pt - 2pt - 2pt - 2pt - - - - - - - 27.94cm - 21.59cm - 1.5cm - 2.54cm - 1cm - 2.54cm - 1.27cm - + + + + + 2pt + 2pt + 2pt + 2pt + + + + 0.84237cm + 0.12912cm + 0cm + 20.23541cm + 1 + + + + + + + + + 2.08866cm + + + 2.99693cm + + + 3.16849cm + + + 3.61094cm + + + 1.97094cm + + + 1.64825cm + + + 2.34094cm + + + 2.3838cm + + + + + 0.7323cm + + + + + true + true + + + + + Proceso + + + + + + + Textbox3 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Acercamiento + + + + + + + + + Oportunidad + + + + + + + Textbox5 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Etapa Actual + + + + + + + Textbox13 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Medio de Captación + + + + + + + Textbox4 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Vendedor + + + + + + + Textbox16 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox18 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Apertura + + + + + + + Textbox20 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Cierre + + + + + + + Textbox24 + + + LightGrey + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + =Fields!TipoProceso.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!NombreAcercamiento.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!EtapaProcesoActual.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!MedioCaptacion.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Vendedor.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FechaApertura.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FechaCierre.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + true + true + true + true + DataSet1 + 1.0805cm + 0.15557cm + 1.3323cm + 20.20895cm + 2 + + + + + + 0.94992in + + + + + + + Textbox1 + 0.18521cm + 3.53218cm + 0.6cm + 14.02238cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + REPORTE DE ACERCAMIENTOS/Oportunidades + + + + + + + + + + + + + + + + Textbox2 + 1.10271cm + 3.53218cm + 0.52945cm + 14.02238cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!LogoPath.Value + FitProportional + 0.06614cm + 2.22362cm + 2.33715cm + 2 + + + + + + + + + + + 0.76376cm + true + true + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox3 + 0.08291cm + 18.2722cm + 0.68085cm + 2.09233cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Usuario: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!UsuarioImprimio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Now + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 29.7cm + 21cm + 0.25cm + 0.25cm + 1cm + 1cm + 0.13cm + @@ -41,7 +44,6 @@ Reporte de Resumen de Indicadores - <%--Tabla con los campos para filtrar--%> @@ -78,8 +80,9 @@ - -
    SubProyecto
    +
    + SubProyecto: +
    @@ -93,16 +96,14 @@
    -
    + <%-- - +
    --%> -
    @@ -122,12 +123,13 @@
    - + +
    @@ -161,12 +163,207 @@
    - +
    - Compras por Productos - Proveedor Productor + Compras Productores +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + +
    +
    +
    +
    + +
    + + +
    +
    + + Compras Productores - Gráfica por Cantidad(Kg) +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + + Gastos +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + +
    +
    +
    +
    + +
    + + +
    +
    + + Compras por clasificación - Gráfica +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + + Cuentas por cobrar +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + +
    +
    +
    +
    + +
    + + +
    +
    + + Cuentas por cobrar - Gráfica Saldo VS Recuperado +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + +
    +
    + + Cuentas por cobrar - Gráfica Recuperado +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + + Cuentas por Pagar productores
    @@ -178,12 +375,11 @@
    - - - + +
    @@ -197,7 +393,7 @@
    - Compras por Productos - Proveedor Productor - Gráfica + Cuentas por Pagar productores - Gráfica
    @@ -217,12 +413,12 @@
    - +
    - Compras por Productos + Cuentas por Pagar no productores
    @@ -234,12 +430,11 @@
    - - - + +
    @@ -253,7 +448,7 @@
    - Compras por Productos - Gráfica + Cuentas por Pagar no productores - Gráfica
    @@ -271,116 +466,6 @@
    -
    -
    - - -
    -
    - - Cuentas por cobrar por Cliente -
    -
    -
    -
    -
    -
    - -
    -
    -
    - - - - - - -
    -
    -
    -
    - -
    - - -
    -
    - - Cuentas por cobrar por Cliente - Gráfica -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - - -
    -
    - - Cuentas por pagar por Proveedor -
    -
    -
    -
    -
    -
    - -
    -
    -
    - - - - - - -
    -
    -
    -
    - -
    - - -
    -
    - - Cuentas por pagar por Proveedor - Gráfica -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - @@ -393,88 +478,145 @@ - + <%-- - + --%> + <%----%> diff --git a/General/RepIndicadorResumen.aspx.vb b/General/RepIndicadorResumen.aspx.vb index 64dd89557..5f26ee141 100644 --- a/General/RepIndicadorResumen.aspx.vb +++ b/General/RepIndicadorResumen.aspx.vb @@ -1,223 +1,125 @@ Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms +Imports MoreLinq Partial Class General_RepIndicadorResumen Inherits ClsPaginas #Region "propiedades" - - Private Property VxP As DataTable - Get - - If ViewState("VxP") Is Nothing Then - Return New DataTable - Else - Return DirectCast(ViewState("VxP"), DataTable) - End If - - End Get - Set(value As DataTable) - ViewState("VxP") = value - End Set - End Property - Private Property CxP As DataTable - Get - - If ViewState("CxP") Is Nothing Then - Return New DataTable - Else - Return DirectCast(ViewState("CxP"), DataTable) - End If - - End Get - Set(value As DataTable) - ViewState("CxP") = value - End Set - End Property - Private Property CxP192 As DataTable - Get - - If ViewState("CxP192") Is Nothing Then - Return New DataTable - Else - Return DirectCast(ViewState("CxP192"), DataTable) - End If - - End Get - Set(value As DataTable) - ViewState("CxP192") = value - End Set - End Property - - Private Property CCxC As DataTable - Get - - If ViewState("CCxC") Is Nothing Then - Return New DataTable - Else - Return DirectCast(ViewState("CCxC"), DataTable) - End If - - End Get - Set(value As DataTable) - ViewState("CCxC") = value - End Set - End Property - Private Property CPxP As DataTable - Get - - If ViewState("CPxP") Is Nothing Then - Return New DataTable - Else - Return DirectCast(ViewState("CPxP"), DataTable) - End If - - End Get - Set(value As DataTable) - ViewState("CPxP") = value - End Set - End Property - +#If False Then Private Property DtColor As DataTable Get - If ViewState("DtColor") Is Nothing Then Return New DataTable Else Return DirectCast(ViewState("DtColor"), DataTable) End If - End Get Set(value As DataTable) ViewState("DtColor") = value End Set End Property - +#End If #End Region - Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then CargaCombos() CargaDatos() End If End Sub - - Private Sub CargaCombos() - 'Carga SubProyectos - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) - + CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, lblSubProyecto) TxtFechaI.Text = $"01/{Now.Month}/{Now.Year}" TxtFechaF.Text = Now.ToString("dd/MM/yyyy") - - CreaDataTableColor() + 'CreaDataTableColor() End Sub - - Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles btnConsultar.Click CargaDatos() End Sub - - Private Sub CargaDatos() Dim ObjVentas As New ClsVentas Dim ObjCompras As New ClsCompras - Dim ObjMovtos As New ClsMovimientos() + Dim ObjMovtos As New ClsMovimientos + Dim ObjCitrus As New ClsCGame If ObjVentas.GetRepProductosServicios(-1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, TxtFechaI.Text.Trim(), TxtFechaF.Text.Trim(), MinFecha, MaxFecha, -1, - -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, CveUsuarioConsulta:=UsuarioActual.CveUsuario, TipoCambio:=1) Then - VxP = ObjVentas.DtResultados - GvVxP.DataSource = VxP - Else - GvVxP.DataSource = Nothing - VxP = Nothing + -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, CveUsuarioConsulta:=UsuarioActual.CveUsuario, TipoDocto:="Ing", TipoCambio:=1) Then + GvVxP.DataSource = ObjVentas.DtResultados.FiltraParametros("", "CveMoneda,SubTotal DESC") End If - If ObjCompras.GetRepProductosServicios(-1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, TxtFechaI.Text.Trim(), TxtFechaF.Text.Trim(), -1, -1, -1, - UsuarioActual.CveEmpresa, 5, -1, -1, "-1", "-1", -1, TipoCambio:=1, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveProveedorClasificacion:=192) Then - CxP192 = ObjCompras.DtResultados - GvCxP192.DataSource = CxP192 - Else - GvCxP192.DataSource = Nothing - CxP192 = Nothing - End If - - If ObjCompras.GetRepProductosServicios(-1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, TxtFechaI.Text.Trim(), TxtFechaF.Text.Trim(), -1, -1, -1, - UsuarioActual.CveEmpresa, 5, -1, -1, "-1", "-1", -1, TipoCambio:=1, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveTipoProveedor:=1) Then - CxP = ObjCompras.DtResultados - GvCxP.DataSource = CxP - Else - GvCxP.DataSource = Nothing - CxP = Nothing - End If - - Dim FechaCorte As String = $"31/12/{Now.Year}" - - If ObjMovtos.GetCxC(TxtFechaI.Text, TxtFechaF.Text, -1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, -1, 1, -1, - "-1", "-1", "-1", FechaCorte:=FechaCorte.ToDate, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then - - CCxC = ObjMovtos.DtResultados - GvCCxC.DataSource = CCxC - Else - GvCCxC.DataSource = Nothing - CCxC = Nothing - End If - - If ObjMovtos.GetCxP(TxtFechaI.Text, TxtFechaF.Text, -1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, -1, 1, -1, - "-1", "-1", "-1", FechaCorte:=FechaCorte.ToDate, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then - - CPxP = ObjMovtos.DtResultados - GvCPxP.DataSource = CPxP - Else - GvCPxP.DataSource = Nothing - CPxP = Nothing + If ObjCitrus.GetIndicadores(UsuarioActual.CveEmpresa, TxtFechaI.Text, TxtFechaF.Text, UsuarioActual.CveUsuario, DdlSubProyecto.SelectedValue.ToEntero) Then + 'Compras Productores + GvCompProductores.DataSource = ObjCitrus.DTSetResultados.Tables(0).FiltraParametros("", "RazonSocial DESC") + 'CxP Productores + GvCxP192.DataSource = ObjCitrus.DTSetResultados.Tables(1).FiltraParametros("", "CveMoneda,Saldo DESC") + 'CxP NO productores + GvCxP.DataSource = ObjCitrus.DTSetResultados.Tables(2).FiltraParametros("", "CveMoneda,Saldo DESC") + 'Gastos (Compras acreedores) + GvCompAcreed.DataSource = ObjCitrus.DTSetResultados.Tables(3).FiltraParametros("", "CveMoneda,SubTotal DESC") + 'Cuentas x Cobrar + GvCxC.DataSource = ObjCitrus.DTSetResultados.Tables(4).FiltraParametros("", "CveMoneda,Saldo DESC") End If ObjVentas.Dispose() - ObjCompras.Dispose() - ObjMovtos.Dispose() + ObjCitrus.Dispose() GvVxP.DataBind() + GvCompProductores.DataBind() + GvCompAcreed.DataBind() GvCxP192.DataBind() GvCxP.DataBind() - GvCCxC.DataBind() - GvCPxP.DataBind() + GvCxC.DataBind() + If GvCxC.DataSource IsNot Nothing Then + GvCxC.HeaderRow.Cells(1).Text = "Saldo" + GvCxC.HeaderRow.Cells(2).Text = "Recuperado" + End If - ' Mostrar gráficos solo si hay datos en su respectiva tabla + 'Mostrar gráficos solo si hay datos en su respectiva tabla If GvVxP.Rows.Count > 0 Then UPGraficaVxP.Visible = True Else UPGraficaVxP.Visible = False End If - If GvCxP.Rows.Count > 0 Then - UPGraficaCxP.Visible = True + If GvCompProductores.Rows.Count > 0 Then + UPGraficaCompProductores.Visible = True Else - UPGraficaCxP.Visible = False + UPGraficaCompProductores.Visible = False + End If + If GvCompAcreed.Rows.Count > 0 Then + UPGraficaCompAcreed.Visible = True + Else + UPGraficaCompAcreed.Visible = False + End If + If GvCxC.Rows.Count > 0 Then + UPGraficaCxC.Visible = True + 'UPGraficaCxCRec.Visible = True + Else + UPGraficaCxC.Visible = False + 'UPGraficaCxCRec.Visible = False End If If GvCxP192.Rows.Count > 0 Then UPGraficaCxP192.Visible = True Else UPGraficaCxP192.Visible = False End If - If GvCCxC.Rows.Count > 0 Then - UPGraficaCCxC.Visible = True + If GvCxP.Rows.Count > 0 Then + UPGraficaCxP.Visible = True Else - UPGraficaCCxC.Visible = False - End If - If GvCPxP.Rows.Count > 0 Then - UPGraficaCPxP.Visible = True - Else - UPGraficaCPxP.Visible = False + UPGraficaCxP.Visible = False End If - ' Si no había datos en ninguna tabla no cargar función de gráficos - If (GvVxP.Rows.Count = 0 AndAlso GvCxP.Rows.Count = 0 AndAlso GvCxP192.Rows.Count = 0 AndAlso GvCCxC.Rows.Count = 0 AndAlso GvCPxP.Rows.Count = 0) Then Exit Sub - GraficasPastel() - 'GraficasBarras() + 'Si no había datos en ninguna tabla no cargar función de gráficos + If GvVxP.Rows.Count = 0 _ + AndAlso GvCompProductores.Rows.Count = 0 _ + AndAlso GvCompAcreed.Rows.Count = 0 _ + AndAlso GvCxC.Rows.Count = 0 _ + AndAlso GvCxP192.Rows.Count = 0 _ + AndAlso GvCxP.Rows.Count = 0 _ + Then Exit Sub + + Graficas() End Sub Protected Sub GvVxP_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvVxP.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then @@ -226,260 +128,278 @@ Partial Class General_RepIndicadorResumen End If End If End Sub + Protected Sub GvCxP192_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxP192.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.DBCampo("CveProveedor") = "" Then + e.Row.CssClass = "Totales" + End If + End If + End Sub Protected Sub GvCxP_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxP.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("Orden") = "" Then + If e.Row.DBCampo("CveProveedor") = "" Then e.Row.CssClass = "Totales" End If End If End Sub - Protected Sub GvCCxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCCxC.RowDataBound + Protected Sub GvComprasAcreed_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCompAcreed.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("Orden") = "" Then + If e.Row.DBCampo("CveClasificacion") = "" Then e.Row.CssClass = "Totales" End If End If End Sub - Protected Sub GvCPxP_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCPxP.RowDataBound + Protected Sub GvCxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxC.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("Orden") = "" Then + If e.Row.DBCampo("CveCliente") = "" Then e.Row.CssClass = "Totales" End If End If End Sub +#If False Then Private Sub CreaDataTableColor() DtColor = New DataTable DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) + DtColor.Rows.Add("#FF0F00") + DtColor.Rows.Add("#FF6600") + DtColor.Rows.Add("#FF9E01") + DtColor.Rows.Add("#FCD202") + DtColor.Rows.Add("#F8FF01") + DtColor.Rows.Add("#B0DE09") + DtColor.Rows.Add("#04D215") + DtColor.Rows.Add("#0D8ECF") + DtColor.Rows.Add("#0D52D1") + DtColor.Rows.Add("#2A0CD0") + DtColor.Rows.Add("#8A0CCF") + DtColor.Rows.Add("#CD0D74") + DtColor.Rows.Add("#754DEB") + DtColor.Rows.Add("#DDDDDD") + DtColor.Rows.Add("#999999") + DtColor.Rows.Add("#333333") + DtColor.Rows.Add("#000000") End Sub +#End If - Private Sub GraficasPastel() + Private Sub Graficas() - Dim DtVxP, DtCxP, DtCxP192, DtCCxC, DtCPxP As New DataTable - Dim RowColorIndex As Integer = 0 + Dim DtVxP, DtCxP192, DtCxP, DtCompProductores, DtCompAcreed, DtCxC, DtCxCR As New DataTable + 'Dim RowColorIndex As Integer = 0 'Ventas x Producto DtVxP.Reset() DtVxP.Columns.Add("Texto") DtVxP.Columns.Add("Valor") - DtVxP.Columns.Add("Color") - DtVxP.Columns.Add("Moneda") - RowColorIndex = 0 - For Each Dr As DataRow In VxP.Rows + 'DtVxP.Columns.Add("Color") + DtVxP.Columns.Add("Unidad") + 'RowColorIndex = 0 + For Each Dr As DataRow In CType(GvVxP.DataSource, DataTable).FiltraParametros("", "SubTotalMN DESC").Rows If Not Dr("Orden").ToString = "" Then - Dim Row As DataRow = Nothing - Row = DtVxP.NewRow() - Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" - Row("Valor") = Dr("SubTotal").ToString.FormatoNumero - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString - Row("Moneda") = Dr("Moneda").ToString + Dim Row = DtVxP.NewRow() + Row("Texto") = Dr("GPO").ToString + Row("Valor") = Dr("SubTotalMN").ToString.FormatoNumero + Row("Unidad") = "MXN" '$"{GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" DtVxP.Rows.Add(Row) - RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + 'RowColorIndex += 1 + 'If RowColorIndex = 17 Then + ' RowColorIndex = 0 + 'End If End If Next - Dim query_vxp = From s In DtVxP.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} + Dim vxp = From s In DtVxP.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_vxp = vxp.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = g.Key, + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }).ToDataTable + Dim top_vxp = From s In group_vxp.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim resto_vxp = From s In group_vxp.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_resto_vxp = resto_vxp.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = "Otros", + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }) + Dim query_vxp = top_vxp.Union(group_resto_vxp) + 'Dim query_vxp = top_vxp.Concat(From e In resto_vxp Group e By e.Texto Into gpo = Group) + 'Dim group_resto_vxp = From e In resto_vxp Group e By e.Texto Into gpo = Group + 'Dim group_resto_vxp = resto_vxp.GroupBy(Function(e) New With {Key e.Texto, Key e.Valor, Key e.Color, Key e.Unidad}).ToList() - 'Compras x Producto TipoProveedor=1 - DtCxP.Reset() - DtCxP.Columns.Add("Texto") - DtCxP.Columns.Add("Valor") - DtCxP.Columns.Add("Color") - DtCxP.Columns.Add("Moneda") - RowColorIndex = 0 - For Each Dr As DataRow In CxP.Rows - If Not Dr("Orden").ToString = "" Then - Dim Row As DataRow = Nothing - Row = DtCxP.NewRow() - Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" - Row("Valor") = Dr("SubTotal").ToString.FormatoNumero - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString - Row("Moneda") = Dr("Moneda").ToString - DtCxP.Rows.Add(Row) - RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + 'Compras ProveedorClasificacion=192 + DtCompProductores.Reset() + DtCompProductores.Columns.Add("Texto") + DtCompProductores.Columns.Add("Valor") + DtCompProductores.Columns.Add("Unidad") + For Each Dr As DataRow In GvCompProductores.DataSource.Rows + Dim Row = DtCompProductores.NewRow() + Row("Texto") = Dr("RazonSocial").ToString + Row("Valor") = Dr("Cantidad").ToString.FormatoNumero + Row("Unidad") = "Kg" + DtCompProductores.Rows.Add(Row) + Next + Dim comp_productores = From s In DtCompProductores.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_comp_productores = comp_productores.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = g.Key, + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }).ToDataTable + Dim top_comp_productores = From s In group_comp_productores.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim resto_comp_productores = From s In group_comp_productores.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_resto_comp_productores = resto_comp_productores.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = "Otros", + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }) + Dim query_comp_productores = top_comp_productores.Union(group_resto_comp_productores) + + 'Compras TipoProveedor=1 Acreedores (Gastos) + DtCompAcreed.Reset() + DtCompAcreed.Columns.Add("Texto") + DtCompAcreed.Columns.Add("Valor") + DtCompAcreed.Columns.Add("Unidad") + For Each Dr As DataRow In CType(GvCompAcreed.DataSource, DataTable).FiltraParametros("", "SubTotalMN DESC").Rows + If Dr("CveClasificacion").ToString <> "" Then + Dim Row = DtCompAcreed.NewRow() + Row("Texto") = Dr("Clasificacion").ToString + Row("Valor") = Dr("SubTotalMN").ToString.FormatoNumero + Row("Unidad") = "MXN" 'Dr("Moneda").ToString + DtCompAcreed.Rows.Add(Row) End If Next - Dim query_cxp = From s In DtCxP.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} + Dim comp_acreed = From s In DtCompAcreed.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_comp_acreed = comp_acreed.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = g.Key, + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }).ToDataTable + Dim top_comp_acreed = From s In group_comp_acreed.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim resto_comp_acreed = From s In group_comp_acreed.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_resto_comp_acreed = resto_comp_acreed.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = "Otros", + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }) + Dim query_comp_acreed = top_comp_acreed.Union(group_resto_comp_acreed) - 'Compras x Producto ProveedorClasificacion=192 + 'Cuentas por cobrar x Cliente -- Saldo + DtCxC.Reset() + DtCxC.Columns.Add("Texto") + DtCxC.Columns.Add("Valor") + DtCxC.Columns.Add("Unidad") + For Each Dr As DataRow In CType(GvCxC.DataSource, DataTable).FiltraParametros("", "SaldoMN DESC").Rows + If Not Dr("CveCliente").ToString = "" Then + Dim Row = DtCxC.NewRow() + Row("Texto") = Dr("RazonSocial").ToString + Row("Valor") = Dr("SaldoMN").ToString.FormatoNumero + Row("Unidad") = "MXN" '$"{GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" + DtCxC.Rows.Add(Row) + End If + Next + Dim cxc = From s In DtCxC.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_cxc = cxc.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = g.Key, + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }).ToDataTable + Dim top_cxc = From s In group_cxc.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim resto_cxc = From s In group_cxc.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_resto_cxc = resto_cxc.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = "Otros", + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }) + Dim query_cxc = top_cxc.Union(group_resto_cxc) + 'Alert(Newtonsoft.Json.JsonConvert.SerializeObject(CxC.Rows)) + + 'Cuentas por cobrar x Cliente -- Recuperado + DtCxCR.Reset() + DtCxCR.Columns.Add("Texto") + DtCxCR.Columns.Add("Valor") + DtCxCR.Columns.Add("Unidad") + For Each Dr As DataRow In CType(GvCxC.DataSource, DataTable).FiltraParametros("", "SaldoMN DESC").Rows + If Not Dr("CveCliente").ToString = "" Then + Dim Row = DtCxCR.NewRow() + Row("Texto") = Dr("RazonSocial").ToString + Row("Valor") = Dr("RecuperadoMN").ToString.FormatoNumero + Row("Unidad") = "MXN" '$"{GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" + DtCxCR.Rows.Add(Row) + End If + Next + Dim cxcr = From s In DtCxCR.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_cxcr = cxcr.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = g.Key, + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }).ToDataTable + Dim top_cxcr = From s In group_cxcr.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim resto_cxcr = From s In group_cxcr.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_resto_cxcr = resto_cxcr.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = "Otros", + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }) + Dim query_cxcr = top_cxcr.Union(group_resto_cxcr) + + 'CxP proveedores DtCxP192.Reset() DtCxP192.Columns.Add("Texto") DtCxP192.Columns.Add("Valor") - DtCxP192.Columns.Add("Color") - DtCxP192.Columns.Add("Moneda") - RowColorIndex = 0 - For Each Dr As DataRow In CxP192.Rows - If Not Dr("Orden").ToString = "" Then - Dim Row As DataRow = Nothing - Row = DtCxP192.NewRow() - Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" - Row("Valor") = Dr("SubTotal").ToString.FormatoNumero - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString - Row("Moneda") = Dr("Moneda").ToString + DtCxP192.Columns.Add("Unidad") + For Each Dr As DataRow In CType(GvCxP192.DataSource, DataTable).FiltraParametros("", "SaldoMN DESC").Rows + If Not Dr("CveProveedor").ToString = "" Then + Dim Row = DtCxP192.NewRow() + Row("Texto") = Dr("RazonSocial").ToString + Row("Valor") = Dr("SaldoMN").ToString.FormatoNumero + Row("Unidad") = "MXN" DtCxP192.Rows.Add(Row) - RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If End If Next - Dim query_cxp192 = From s In DtCxP192.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} + Dim cxp192 = From s In DtCxP192.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_cxp192 = cxp192.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = g.Key, + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }).ToDataTable + Dim top_cxp192 = From s In group_cxp192.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim resto_cxp192 = From s In group_cxp192.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_resto_cxp192 = resto_cxp192.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = "Otros", + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }) + Dim query_cxp192 = top_cxp192.Union(group_resto_cxp192) - 'Alert(Newtonsoft.Json.JsonConvert.SerializeObject(CCxC.Rows)) - - 'Cuentas por cobrar x Cliente - DtCCxC.Reset() - DtCCxC.Columns.Add("Texto") - DtCCxC.Columns.Add("Valor") - DtCCxC.Columns.Add("Color") - DtCCxC.Columns.Add("Moneda") - RowColorIndex = 0 - For Each Dr As DataRow In CCxC.Rows - If Not Dr("Orden").ToString = "" Then - Dim Row As DataRow = Nothing - Row = DtCCxC.NewRow() - Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" - Row("Valor") = Dr("Saldo").ToString.FormatoNumero - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString - Row("Moneda") = Dr("Moneda").ToString - DtCCxC.Rows.Add(Row) - RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + 'CxP NO proveedor + DtCxP.Reset() + DtCxP.Columns.Add("Texto") + DtCxP.Columns.Add("Valor") + DtCxP.Columns.Add("Unidad") + For Each Dr As DataRow In CType(GvCxP.DataSource, DataTable).FiltraParametros("", "SaldoMN DESC").Rows + If Not Dr("CveProveedor").ToString = "" Then + Dim Row = DtCxP.NewRow() + Row("Texto") = Dr("RazonSocial").ToString + Row("Valor") = Dr("SaldoMN").ToString.FormatoNumero + Row("Unidad") = "MXN" + DtCxP.Rows.Add(Row) End If Next - Dim query_ccxc = From s In DtCCxC.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} + Dim cxp = From s In DtCxP.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_cxp = cxp.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = g.Key, + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }).ToDataTable + Dim top_cxp = From s In group_cxp.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim resto_cxp = From s In group_cxp.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim group_resto_cxp = resto_cxp.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { + .Texto = "Otros", + .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), + .Unidad = "MXN" + }) + Dim query_cxp = top_cxp.Union(group_resto_cxp) - 'Cuentas por pagar x Proveedor - DtCPxP.Reset() - DtCPxP.Columns.Add("Texto") - DtCPxP.Columns.Add("Valor") - DtCPxP.Columns.Add("Color") - DtCPxP.Columns.Add("Moneda") - RowColorIndex = 0 - For Each Dr As DataRow In CPxP.Rows - If Not Dr("Orden").ToString = "" Then - Dim Row As DataRow = Nothing - Row = DtCPxP.NewRow() - Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" - Row("Valor") = Dr("Saldo").ToString.FormatoNumero - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString - Row("Moneda") = Dr("Moneda").ToString - DtCPxP.Rows.Add(Row) - RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If - End If - Next - Dim query_cpxp = From s In DtCPxP.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} - - 'Serializar datos agrupándolos en su respectivo DataTable, todos en un solo JSON - Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.VxP = query_vxp, .CxP = query_cxp, .CxP192 = query_cxp192, .CCxC = query_ccxc, .CPxP = query_cpxp}) - 'Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.VxP = query_vxp, .CCxC = New String() {}}) + 'Serializar datos agrupándolos por su respectivo DataTable, todos en un solo JSON + Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.VxP = query_vxp, .CompProductores = query_comp_productores, .CompAcreed = query_comp_acreed, .CxC = query_cxc, .CxCR = query_cxcr, .CxP192 = query_cxp192, .CxP = query_cxp}) 'Alert(json) - RegistraScript($"CargaGraficasPastel({json})", "22") + RegistraScript($"CargaGraficas({json})", "sdkp24223") UPPMov.Update() End Sub - Private Sub GraficasBarras() - 'Dim Dt As New DataTable() - 'Dt.Columns.Add("Texto") - 'Dt.Columns.Add("Valor") - 'Dt.Columns.Add("Color") - 'Dt.Columns.Add("Moneda") - 'Dim RowColorIndex As Integer = 0 - 'For Each Dr As DataRow In VxC.Rows - ' If Not Dr("Orden").ToString = "" Then - ' Dim Row As DataRow = Nothing - ' Row = Dt.NewRow() - ' Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" - ' Row("Valor") = Dr("SubTotal").ToString.FormatoNumero - ' Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString - ' Row("Moneda") = Dr("Moneda").ToString - ' Dt.Rows.Add(Row) - ' RowColorIndex += 1 - ' If RowColorIndex = 17 Then - ' RowColorIndex = 0 - ' End If - ' End If - 'Next - - 'Dim query = From s In Dt.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} - 'Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query) - 'RegistraScript($"CargaGraficasBarras({json})", "22") - 'UPPMov.Update() - End Sub End Class diff --git a/Inicio.aspx b/Inicio.aspx index 6b4322620..073e2e4ee 100644 --- a/Inicio.aspx +++ b/Inicio.aspx @@ -120,8 +120,8 @@ } - - + + @@ -133,13 +133,20 @@
  • Editar Comunicado
  • -
  • +
  • Inconsistencias
  • + + + + + + +
    @@ -303,204 +310,19 @@ -
    -
    - +
    +
    - Documentos + Documentos
    @@ -509,33 +331,33 @@
    -
    - - - - - - - -
    -
    -
    - <%# Eval("Nombre") %> -
    -
    -
    -
    - <%# Eval("Nombre2") %> -
    -
    -
    -
    -
    -
    -
    - -
    -
    +
    + + + + + + + +
    +
    +
    + <%# Eval("Nombre") %> +
    +
    +
    +
    + <%# Eval("Nombre2") %> +
    +
    +
    +
    +
    +
    +
    + +
    +
    @@ -1107,8 +929,8 @@
    - - + +