/// <summary>
 /// Retrieve image as either
 /// <see cref="iText.Kernel.Pdf.Xobject.PdfImageXObject"/>
 /// , or
 /// <see cref="iText.Kernel.Pdf.Xobject.PdfFormXObject"/>.
 /// </summary>
 /// <param name="src">either link to file or base64 encoded stream.</param>
 /// <returns>PdfImageXObject on success, otherwise null.</returns>
 public virtual PdfXObject RetrieveImageExtended(String src)
 {
     if (src != null)
     {
         if (IsContains64Mark(src))
         {
             PdfXObject imageXObject = TryResolveBase64ImageSource(src);
             if (imageXObject != null)
             {
                 return(imageXObject);
             }
         }
         PdfXObject imageXObject_1 = TryResolveUrlImageSource(src);
         if (imageXObject_1 != null)
         {
             return(imageXObject_1);
         }
     }
     logger.Error(MessageFormatUtil.Format(iText.StyledXmlParser.LogMessageConstant.UNABLE_TO_RETRIEVE_IMAGE_WITH_GIVEN_BASE_URI
                                           , uriResolver.GetBaseUri(), src));
     return(null);
 }
Exemplo n.º 2
0
        public virtual void UriResolverTest14()
        {
            UriResolver resolver  = new UriResolver("base/uri/index.html");
            String      runFolder = new Uri(Path.GetFullPath(Directory.GetCurrentDirectory())).ToExternalForm() + "/";

            NUnit.Framework.Assert.AreEqual(runFolder + "base/uri/index.html", resolver.GetBaseUri());
            NUnit.Framework.Assert.AreEqual("file:///c:/test/folder/img.txt", resolver.ResolveAgainstBaseUri("file:/c:/test/folder/img.txt"
                                                                                                             ).ToExternalForm());
            NUnit.Framework.Assert.AreEqual("file:///c:/test/folder/img.txt", resolver.ResolveAgainstBaseUri("file://c:/test/folder/img.txt"
                                                                                                             ).ToExternalForm());
            NUnit.Framework.Assert.AreEqual("file:///c:/test/folder/data.jpg", resolver.ResolveAgainstBaseUri("file:///c:/test/folder/data.jpg"
                                                                                                              ).ToExternalForm());
        }
Exemplo n.º 3
0
        public virtual void UriResolverTest04()
        {
            UriResolver resolver  = new UriResolver("index.html");
            String      runFolder = new Uri(Path.GetFullPath(Directory.GetCurrentDirectory() + "/")).ToExternalForm();

            NUnit.Framework.Assert.AreEqual(runFolder + "index.html", resolver.GetBaseUri());
            NUnit.Framework.Assert.AreEqual(runFolder + "innerTest", resolver.ResolveAgainstBaseUri("innerTest").ToExternalForm
                                                ());

// Look to commentary below in TestPaths() method
//            NUnit.Framework.Assert.AreEqual(runFolder + "folder2/innerTest2", resolver.ResolveAgainstBaseUri("/folder2/innerTest2"
//                ).ToExternalForm());
//            NUnit.Framework.Assert.AreEqual(runFolder + "folder2/innerTest2", resolver.ResolveAgainstBaseUri("//folder2/innerTest2"
//                ).ToExternalForm());
        }
Exemplo n.º 4
0
        private void TestPaths(String absolutePathRoot, UriResolver resolver)
        {
            NUnit.Framework.Assert.AreEqual(absolutePathRoot + "test/folder/index.html", resolver.GetBaseUri());
            NUnit.Framework.Assert.AreEqual(absolutePathRoot + "test/folder/innerTest", resolver.ResolveAgainstBaseUri
                                                ("innerTest").ToExternalForm());
            NUnit.Framework.Assert.AreEqual(absolutePathRoot + "test/folder2/innerTest2", resolver.ResolveAgainstBaseUri
                                                ("../folder2/innerTest2").ToExternalForm());

            /*
             *  Resolving relative paths like "/folder" works correct on Linux and .NET, but fails on Java because of strong
             *  corresponding with URI standard RFC3986.
             *
             *  Look to this memo for specifying "file" URI scheme:
             *  https://tools.ietf.org/id/draft-ietf-appsawg-file-scheme-12.html
             *
             *  Expected results after resolving "/folder2/innerTest2":
             *      - .NET: "file:///C:/folder2/innerTest2"
             *      - Java (Windows): "file:/folder2/innerTest2" - incorrect
             *      - Java (Linux): "file:/folder2/innerTest2" - correct
             */

//            NUnit.Framework.Assert.AreEqual(absolutePathRoot + "test/folder/folder2/innerTest2", resolver.ResolveAgainstBaseUri
//                ("/folder2/innerTest2").ToExternalForm());
//            NUnit.Framework.Assert.AreEqual(absolutePathRoot + "test/folder/folder2/innerTest2", resolver.ResolveAgainstBaseUri
//                ("//folder2/innerTest2").ToExternalForm());
        }
Exemplo n.º 5
0
        public virtual void UriResolverTest07B()
        {
            String      absolutePathRoot = new Uri(new Uri("file://"), Path.GetPathRoot(Directory.GetCurrentDirectory())).ToExternalForm();
            UriResolver resolver         = new UriResolver(absolutePathRoot + "#r%e%25s@o%urces/folder/index.html");
            String      malformedPath    = absolutePathRoot;

            NUnit.Framework.Assert.AreEqual(malformedPath + "#r%25e%25s@o%25urces/folder/index.html", resolver.GetBaseUri());
            NUnit.Framework.Assert.AreEqual(malformedPath + "test/folder/innerTest", resolver.ResolveAgainstBaseUri
                                                ("test/folder/innerTest").ToExternalForm());
// Look to commentary below in TestPaths() method
//            NUnit.Framework.Assert.AreEqual(malformedPath + "folder2/innerTest2", resolver.ResolveAgainstBaseUri
//              ("/folder2/innerTest2").ToExternalForm());
//            NUnit.Framework.Assert.AreEqual(malformedPath + "folder2/innerTest2", resolver.ResolveAgainstBaseUri
//                ("//folder2/innerTest2").ToExternalForm());
        }