2016-09-15 2 views
17

Мы пытаемся распечатать содержимое веб-страницы над облачным принтом Google, но независимо от того, что мы делаем, приведенная распечатка добавляет некоторый запас.Как удалить добавленную маржу 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; padding: 0;} 'творит чудеса. – Adam

+1

Это может показаться глупым, но вы пробовали с '! Important' в атрибуте стиля? И то же самое в корневом узле, 'html' i.e.' html, body {margin: 0! Important; padding: 0! important; } '? Всегда можно установить 'border' в 0 на всякий случай. Альтернативно, попробуйте это в своем CSS: '@page {margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } ' – amdouglas

+0

Мы пробовали все это, похоже, что маржа не связана с html, а с постоянным полем, который добавляет веб-просмотр при попытке печати. ​​ –

ответ

1

По умолчанию веб-страниц HTML имеют отступы и запас 10px; Вы должны установить в файле головной секции или или CSS:

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

Это работа для меня. Надеюсь, что это поможет :)

или вы можете попробовать еще один:

Заменить бирку с одним:

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

Вот еще один совет для изображений в WebView: добавить стиль который соответствует изображениям по ширине экрана. Прекрасно работает на всех размеров экрана:

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

При использовании CSS не решить вашу проблему, вы можете попробовать использовать TextView с fromHtml вместо использования WebView:

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

Спасибо! Это исправило это для меня! –