IMPRIMIR TEXTBOX
Olá pessoal!! Preciso imprimir apenas o conteúdo de um TextBox em uma página, mas o código abaixo não funciona. O que há de errado com esse código??
Response.Write([Ô]<script Language=[Ô][Ô]javascript[Ô][Ô]>[Ô])
Response.Write([Ô]var Dados = document.getElementById(TextBox1.text);[Ô])
Response.Write([Ô]printWindow = window.open([Ô][Ô], [Ô][Ô], [ô]left=50000,top=50000,width=0,height=0[ô]);[Ô])
Response.Write([Ô]printWindow.document.write(Dados)[Ô])
Response.Write([Ô]printWindow.document.close();[Ô])
Response.Write([Ô]printWindow.focus();[Ô])
Response.Write([Ô]printWindow.print();[Ô])
Response.Write([Ô]printWindow.close();[Ô])
Response.Write([Ô]</script>[Ô])
Faltou um ponto-e-vÃrgula em --> Response.Write([Ô]printWindow.document.write(Dados)[Ô])
E aà Jaba??
Cara, coloquei o ponto e vÃrgula, mas de nada adiantou. Continuou sem imprimir e nem sequer abriu janela alguma. Tá faltando mais alguma coisa nesse código.
Cara, coloquei o ponto e vÃrgula, mas de nada adiantou. Continuou sem imprimir e nem sequer abriu janela alguma. Tá faltando mais alguma coisa nesse código.
Olha só, achei esse código que funciona, mas não respeita as quebras de linhas do meu textbox. Fica tudo direto, desorganizado:
Tenho um código que funciona diretinho mas imprime a página inteira, então, tentei enviar o conteúdo do textbox para uma página vazia usando uma session e imprimir a página, mas quando recupero o texto da session e uso o Response.write, fica tudo sem quebra de linhas também.
Se descobrirmos o porque as quebras de linhas estão sendo ignoradas, resolvemos a questão nos dois métodos.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim sPrintScript As System.Text.StringBuilder = New System.Text.StringBuilder
sPrintScript.Append([Ô]<script type=[ô]text/javascript[ô]>[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]<!--[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]function printText(elementId)[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]{[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]var printContent = document.getElementById(elementId);[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]var windowUrl = [ô]about:blank[ô];[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]var windowName = [ô]Print[ô] + new Date().getTime();[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]var sTextToPrint = printContent.innerHTML;[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]var printWindow = window.open(windowUrl, windowName, [ô]left=50000,top=50000,width=0,height=0[ô]);[Ô])
sPrintScript.AppendLine([Ô][Ô])
sPrintScript.Append([Ô]printWindow.document.write(sTextToPrint);[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]printWindow.document.close();[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]printWindow.focus();[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]printWindow.print();[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]printWindow.close();[Ô]).AppendLine([Ô][Ô]).Append([Ô]}[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]// -->[Ô]).AppendLine([Ô][Ô])
sPrintScript.Append([Ô]</script>[Ô])
If Not ClientScript.IsClientScriptBlockRegistered([Ô]printText[Ô]) Then _
ClientScript.RegisterClientScriptBlock(Me.GetType(), [Ô]printText[Ô], sPrintScript.ToString)
Button1.Attributes.Add([Ô]onclick[Ô], String.Format([Ô]return printText([ô]{0}[ô]);[Ô], Me.TextBox1.ClientID))
End Sub
Tenho um código que funciona diretinho mas imprime a página inteira, então, tentei enviar o conteúdo do textbox para uma página vazia usando uma session e imprimir a página, mas quando recupero o texto da session e uso o Response.write, fica tudo sem quebra de linhas também.
Se descobrirmos o porque as quebras de linhas estão sendo ignoradas, resolvemos a questão nos dois métodos.
E então gente!!??? Alguma dica???
Testa essa função:
function ImprimirTextBox() {
var content = document.getElementById([ô]<%=TextBox1.ClientID%>[ô]).innerHTML;
var shtm = [ô]<html><head><link href=[Ô]../css/style.css[Ô] rel=[Ô]stylesheet[Ô] type=[Ô]text/css[Ô] /></head><body>[ô] + content+ [ô]</body></html>[ô];
var w = window.open([Ô][Ô], [Ô][Ô], [Ô]scrollbars=yes,width=500,height=500,left=2000,top=0,screenx=1000,screeny=1000[Ô]);
w.document.write(shtm);
w.document.close();
w.focus();
w.print();
w.close();
}
Sobre seu código acima, tá meio difÃcil analisar. Quando for nesses casos, ao invés de usar StringBuilder pra construir tudo, usa literal string do C# com os parâmetros pro Format. Ajuda muito no entendimento do código.
Abraços!
function ImprimirTextBox() {
var content = document.getElementById([ô]<%=TextBox1.ClientID%>[ô]).innerHTML;
var shtm = [ô]<html><head><link href=[Ô]../css/style.css[Ô] rel=[Ô]stylesheet[Ô] type=[Ô]text/css[Ô] /></head><body>[ô] + content+ [ô]</body></html>[ô];
var w = window.open([Ô][Ô], [Ô][Ô], [Ô]scrollbars=yes,width=500,height=500,left=2000,top=0,screenx=1000,screeny=1000[Ô]);
w.document.write(shtm);
w.document.close();
w.focus();
w.print();
w.close();
}
Sobre seu código acima, tá meio difÃcil analisar. Quando for nesses casos, ao invés de usar StringBuilder pra construir tudo, usa literal string do C# com os parâmetros pro Format. Ajuda muito no entendimento do código.
Abraços!
Olá DS2T. Já tinha encontrado esse código também pesquisando na internet, funciona iguais aos outros, mas com o mesmo problema, não respeita quebra de linha. O TextBox1 está assim:
E na impressão sai assim:
Acho que o problema tem haver com HTML encode, mas não tenho certeza e não sei como resolver.
Sabe alguma coisa a respeito??
Protocolo: 00001
Telefone: 00000
Data: 14/08/2015
Reclamante:
Cidade:
Distrito:
Bairro:
Rua:
Número:
Referência:
Vencimento:
Motivo:
OBS:
E na impressão sai assim:
Protocolo: 00001 Telefone: 00000 Data: 14/08/2015 Reclamante: Cidade:
Distrito: Bairro: Rua: Número: Referência: Vencimento: Motivo: OBS:
Acho que o problema tem haver com HTML encode, mas não tenho certeza e não sei como resolver.
Sabe alguma coisa a respeito??
Tente substituir os identificadores de breakline da literalstring por quebras de linha html...
Faz esse teste aÃ.
Troque a linha:
var content = document.getElementById([ô]<%=TextBox1.ClientID%>[ô]).innerHTML;
por:
var content = document.getElementById([ô]<%=TextBox1.ClientID%>[ô]).innerHTML.Replace(/(?:
||
)/g, [ô]<br />[ô]);
Eu programo mais desktop, por isso, isso aà pode tá errado hahaha... mas acho que tem lógica.
Abraços!
Faz esse teste aÃ.
Troque a linha:
var content = document.getElementById([ô]<%=TextBox1.ClientID%>[ô]).innerHTML;
por:
var content = document.getElementById([ô]<%=TextBox1.ClientID%>[ô]).innerHTML.Replace(/(?:
||
)/g, [ô]<br />[ô]);
Eu programo mais desktop, por isso, isso aà pode tá errado hahaha... mas acho que tem lógica.
Abraços!
VALEU CAMARADA!!!
Na verdade o que deu certo mesmo foi: var content = document.getElementById([Ô]<%=TextBox1.ClientID%>[Ô]).value.replace(/[
]/g, [ô]<br />[ô]);
MUITO OBRIGADO!!
Na verdade o que deu certo mesmo foi: var content = document.getElementById([Ô]<%=TextBox1.ClientID%>[Ô]).value.replace(/[
]/g, [ô]<br />[ô]);
MUITO OBRIGADO!!
Tópico encerrado , respostas não são mais permitidas