Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Да, можно применить CSS принтера. Существует хорошая статья об этом здесь.
nsayer упоминает, что имел изменение кнопки печати расположение Вашего экрана и затем начал a window.print()
Это - решение, которое, вероятно, пропустит много людей и нужно рассмотреть, когда Вы будете думать, что Ваши пользователи хотят немного больше WYSIWYG. Это должен, вероятно, быть "принтер дружественная" ссылка, хотя это изменяет тип среды Ваших листов листа, а не "печатают это".
Используя jQuery, Вы могли сделать что-то вроде этого (не проверенный):
$(document).ready(function(){
$("#printFriendly").click(function(){
$(link[rel=link][media=screen]).remove();
$(link[rel=link][media=print]).attr("media","screen");
});
});
Можно определить правила CSS, которые характерны для типа среды. Следующее является примером CSS (скопированный с http://www.w3.org/TR/CSS2/media.html, разделите 7.2.1), который указывает различные размеры шрифта, что отображено на веб-странице и что печатается.
@media print {
BODY { font-size: 10pt }
}
@media screen {
BODY { font-size: 12pt }
}
@media screen, print {
BODY { line-height: 1.2 }
}
С другой стороны, можно указать, какие медиа к таблице стилей нужно относиться когда включая его на странице:
<link href="webstyles.css" type="text/css" rel="stylesheet" media="screen"/>
<link href="printstyles.css" type="text/css" rel="stylesheet" media="print"/>
<link href="commonstyles.css" type="text/css" rel="stylesheet" media="screen,print"/>
Еще одна опция состоит в том, чтобы иметь скрытый IFRAME, на котором Вы называете iframe.contentWindow.print (). Это позволит Вам создавать невидимое расположение, которое печатает точно, поскольку Вы хотите его к.
Конечно, еще лучшее решение состоит в том, чтобы экспортировать файл в PDF и позволить пользователю распечатать его тот путь. PDFs производят вывод высшего качества, период. Однако это - еще один обруч для пользователя для перехода через, таким образом, эмпирическое правило:
Что-либо, что можно сделать с CSS, который можно сделать в таблице стилей печати. Это означает, что можно скрыть содержание в печатной версии, которую показывают в экранизации, или скройте содержание в экранизации, которую Вы хотите разоблачить при печати. Все, что Вы делаете, применяют display:none к соответствующим разделам в соответствующей таблице стилей.
Также это - хорошая идея измерить Ваш текст в точках для печатной версии (который является плохой идеей для экранизации - придерживаются пикселей, Эмса или процентов здесь). Существует универсальное соглашение относительно того, что - печатные размеры точки то, где, поскольку отображения пикселей к точкам будут меняться в зависимости от различных устройств разрешения.
CSS позволяет Вам создавать таблицы стилей для конкретных типов медиа, означая, что у Вас может быть таблица стилей, которая только применяется, когда Вы печатаете страницу, позволяя Вам заставить его быть отформатированным по-другому.
Просто включайте медиа = атрибут "печати" на Вашей ссылке таблицы стилей для той таблицы стилей.
Это статья List Apart, кажется, довольно хорошо на предмете.
Я пытался использовать различные таблицы стилей на основе медиа, но я столкнулся с проблемой, получив все опции, в которых я нуждался. С тех пор я обычно перенаправляю к другому входу нашего (Коробка с плавкими предохранителями) платформу (т.е. print.php в земельном участке index.php), который в сущности является тем же файлом кроме него, устанавливает дополнительный флаг / постоянный.
В файле XSL, связанном со страницей, я затем делаю дополнительную работу на основе того флага / постоянный как игнорирование меню, столбцов таблицы и т.д.
т.е. (Страница показывает ссылку, что пользователь должен нажать для отображения пароля на экране. Печатной версии распечатали пароль.)
if (!BOOL_PRINT)
echo "<TD class=\"tbl_teams_scroll_item\"><SPAN class=\"span_password_hidden\" id=\"span_password_{\$team_id}\" onClick=\"RevealPassword('{\$team_id}','{\$password}');\"><xsl:value-of select=\"/PAGE/TEXTS/HIDDEN\" /></SPAN></TD>\n";
else
echo "TD class=\"tbl_teams_scroll_item\"><xsl:value-of select=\"PASSWORD\" /></TD>\n";
Существует несколько опций, доступных Вам:
например. <link href="css/print.css" type="text/css" rel="stylesheet" media="print" />
См. также Ссылку Печати CSS2
Используйте таблицу стилей печати.
Править: Относительно продолжения Вы не можете, в целом, добавить вещи к странице с CSS.
Одна опция состоит в том, чтобы включать Ваше содержание только для печати в страницу и скрыть его для экранных таблиц стилей. Необходимо удостовериться, что страница все еще имеет смысл без CSS все же.
Другая опция состоит в том, чтобы использовать сгенерированное содержание, но это не поддерживается Internet Explorer 7 и ниже и может быть вполне ограничено.
Если содержание только для печати является изображением, можно подкачать это использование одного из популярных методов замены изображения.
Иначе при желании должен иметь кнопку 'печати' на изменении страницы страница в некотором роде, что Вы решаете, затем выполняете JavaScript 'window.print ()'; поднять диалоговое окно печати браузера.
@media
правило в CSS может использоваться для определения альтернативных правил для печати. Это часто используется, чтобы скрыть навигацию и изменить стиль для установки печати лучше:
@media print {
.sidebar { display: none; }
}
Можно также связать отдельную таблицу стилей для печати:
<link rel="stylesheet" href="print.css" type="text/css" media="print" />
Можно сделать это с CSS при определении медиа как печати.
Самый легкий путь состоит в том, чтобы использовать типы среды CSS. Для каждого файла CSS Вы включаете, можно указать, где он должен использоваться: на экране, при печати, для карманных компьютеров, для программ для чтения с экрана или различных комбинаций их.
Пример: <связывают рэл = тип "таблицы стилей" = медиа "текста/CSS" = "печать, карманный компьютер" href = "foo.css">
Это было стандартом начиная с CSS2, и большинство браузеров поддерживает его теперь. Больше информации доступно здесь: http://www.w3.org/TR/CSS2/media.html
Можно достигнуть этого эффекта путем создания таблицы стилей CSS, которая предназначена непосредственно к печати и другому предназначенному непосредственно для экрана.
Используйте тег link:
<link rel="stylesheet" type="text/css" href="print.css" media="print, handheld" />
<link rel="stylesheet" type="text/css" href="screen.css" media="screen" />
встроить Вашу таблицу стилей в Ваш документ.
Скрыться легко, просто установите свой стиль блока на скрытый в любой таблице стилей, которую Вы хотите и он привычка, которая будет отображена. Например:
.newStyle1 {
display: none;
}
Затем что-либо набор к стилю newStyle1
не будет отображен.
Вот еще одна ссылка из A List Apart, касающаяся печати css под названием Печать книги с помощью CSS: Boom! http://www.alistapart.com/articles/boom/