Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Itext不渲染base64变换旋转图像_Html_Css_Image_Itext - Fatal编程技术网

Html Itext不渲染base64变换旋转图像

Html Itext不渲染base64变换旋转图像,html,css,image,itext,Html,Css,Image,Itext,我尝试使用transform rotate在html中旋转base64嵌入图像,图像在html页面中旋转良好,但当我尝试使用itext在pdf中呈现相同图像时,转换属性无效。 下面是我的示例html代码 <?xml version="1.0" encoding="utf-8"?> <html> <head> <style type="text/css"> body,div,td,th,span,h1,

我尝试使用transform rotate在html中旋转base64嵌入图像,图像在html页面中旋转良好,但当我尝试使用itext在pdf中呈现相同图像时,转换属性无效。 下面是我的示例html代码

<?xml version="1.0" encoding="utf-8"?>
<html>
    <head>
        <style type="text/css">
            body,div,td,th,span,h1,h2 {
                font:9pt/12pt "Roboto", serif;
            }
           .fleft {
                float:left;
                overflow-x: wrap;
            }
            .rotate90 {
                -webkit-transform: rotate(90deg);
                -moz-transform: rotate(90deg);
                -o-transform: rotate(90deg);
                -ms-transform: rotate(90deg);
                transform: rotate(90deg);
            }
            .gift-icon{
                width: 21mm;
                height: 21mm;
            }
        </style>
    </head>
    <body>
        <div>
            <img class="fleft gift-icon rotate90" alt="" src="data:image/png;base64,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"/>  
        </div>
    </body>
</html>
有人能帮我解决这个问题吗?
提前感谢

您只得到实际的
Base64
字符串。这个还没有旋转。网站本身使用CSS实现了这一点,当您获取图像数据时,CSS不会被读入。您需要单独处理旋转。我认为这是与
fsImage.setRotationDegrees(90)-记不起实际的方法。@Darren尝试了((ITextFSImage)fsImage.getImage().setRotationDegrees(90);缩放后不使用它,但不旋转图像
public class B64ImgReplacedElementFactory implements ReplacedElementFactory {

    public ReplacedElement createReplacedElement(LayoutContext c, BlockBox box, UserAgentCallback uac, int cssWidth, int cssHeight) {
        Element e = box.getElement();
        if (e == null) {
            return null;
        }
        String nodeName = e.getNodeName();
        if (nodeName.equals("img")) {
            String attribute = e.getAttribute("src");
            FSImage fsImage;
            try {
                fsImage = buildImage(attribute, uac);
            } catch (BadElementException e1) {
                fsImage = null;
            } catch (IOException e1) {
                fsImage = null;
            }
            if (fsImage != null) {
                if (cssWidth != -1 || cssHeight != -1) {
                    fsImage.scale(cssWidth, cssHeight);
                }
                return new ITextImageElement(fsImage);
            }
        }
        return null;
    }

    protected FSImage buildImage(String srcAttr, UserAgentCallback uac) throws IOException, BadElementException {
        FSImage fsImage;
        if (srcAttr.startsWith("data:image/")) {
            String b64encoded = srcAttr.substring(srcAttr.indexOf("base64,") + "base64,".length(), srcAttr.length());
            byte[] decodedBytes = Base64.decode(b64encoded);
            fsImage = new ITextFSImage(Image.getInstance(decodedBytes));
        } else {
            fsImage = uac.getImageResource(srcAttr).getImage();
        }
        return fsImage;
    }

    public void remove(Element e) {
    }

    public void reset() {
    }

    @Override
    public void setFormSubmissionListener(FormSubmissionListener listener) {
    }
}