/// <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); }
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()); }
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()); }
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()); }
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()); }