2016-09-15 59 views
17

我们尝试在Google云打印上打印webview内容,但不管我们做什么,打印结果都会增加一些余量。如何删除Android WebView打印添加保证金?

有没有办法删除这个边距? 我们尝试:

<body style="margin: 0; padding: 0"> 

然后

<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 

然后

mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 

没有工作......

+0

我不知道它是否影响打印,但'html {margin:0;填充:0;}'创造奇迹。 – Adam

+1

这可能看起来很愚蠢,但是你是否在style属性中尝试了'!important'?同样在根节点上,'html'即'html,body {margin:0!important;填充:0!重要; }'?以防万一,总是可以将'border'设置为0。或者,也许在你的CSS中试试这个:'@page {margin-left:0px; margin-right:0px; margin-top:0px; margin-bottom:0px; }' – amdouglas

+0

我们尝试了一切,似乎边距与html没有关系,但webview在尝试打印时添加了一个常量边距 –

回答

1

默认HTML网页有填充和10px的保证金;你在你的头部或或CSS文件中设置:

<style type="text/css"> 
    html, body { 
    width:100%; 
    height: 100%; 
    margin: 0px; 
    padding: 0px; 
    } 

这对我的工作。希望它会帮助你:)

或者你可以尝试另一个问题:

与此一替换您的标签:

<body style='margin:0;padding:0;'> 

下面是在网页视图图像还有一个小窍门:添加一个造型适合屏幕宽度的图像。在所有屏幕尺寸的伟大工程:

<style type='text/css'> 
     img {max-width: 100%;height:initial;} div,p,span,a {max-width: 100%;} 
    </style> 
1

如果使用CSS不解决您的问题,您可以尝试使用与fromHtml一个TextView,而不是使用网页视图:

TextView myTextView = (TextView) view.findViewById(R.id.my_textview); 
Spanned textviewHtml; 

//Note : fromHtml needs a display flag as second argument from API 24 
if (Build.VERSION.SDK_INT >= 24) { 
    textviewHtml= Html.fromHtml(yourHtmlHere, Html.FROM_HTML_MODE_COMPACT); 
} 
else { 
    textviewHtml= Html.fromHtml(yourHtmlHere); 
} 

myTextView.setText(textviewHtml); 

更多期权fromHtml你可以参考https://developer.android.com/reference/android/text/Html.html

希望这有助于! ;-)

4

只是用它* {margin:0px; padding:0px}添加到您的样式表中并单击一次检查

*{margin:0px; padding:0px} 
    body,html{padding:0px;margin:0px;} 
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
0

使用以下代码删除打印WebView时的边距。

@page{ 
margin-left: 0px; 
margin-right: 0px; 
margin-top: 0px; 
margin-bottom: 0px; 
} 
+0

谢谢!这为我修好了! –