Publicidade

Vitor Bueno

Forçar Tamanho de Table sem colocar TR's e TD's

Patrocínio:

Preciso da seguinte solução, tenho uma table com uma imagem de fundo, estou imprimindo cartas com esse código, essa imagem e um papel timbrado, e coloco o texto dentro de td's, mas quando não tem tamanho suficiente, a imagem de fundo e cortada, queria saber como posso fazer pela table, para mostrar toda a imagem, já tenho o tamanho dela( Largura:800px e Altura:1122px), não coloquei em div pelo fato de quando vem muitos dados não consigo quebrar a pagina automaticamente, e já por table ele quebra sozinho sem eu precisar ficar colocando page-break no meio do Código, o único problema que as vezes não vem dados o suficiente para mostrar a tabela, e assim acaba cortando a mesma.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho melhor você mudar um pouco.

 

Ao invés de usar um TABLE é melhor você usar um DIV com a altura, largura e imagem de fundo que você deseja. Os elementos você pode posicionar, e melhor, como estão dentro do div, você pode até usar o position:absolute para posicionar exatamente onde você deseja.

 

Com isso não tem o risco de cortar e ainda tem melhor flexibilidade para posicionar o texto

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Pita disse:

Acho melhor você mudar um pouco.

 

Ao invés de usar um TABLE é melhor você usar um DIV com a altura, largura e imagem de fundo que você deseja. Os elementos você pode posicionar, e melhor, como estão dentro do div, você pode até usar o position:absolute para posicionar exatamente onde você deseja.

 

Com isso não tem o risco de cortar e ainda tem melhor flexibilidade para posicionar o texto


Realmente Pita,  antes fiz com div, mas o meu problema, e pelo fato de ser uma impressão, e as vezes vem muitos itens que vão nesta carta, realizando a quebra de pagina, e quando quebra a pagina, eu ja perco o espaço do topo que dei, e a imagem de fundo.Eu fiz um codigo que conta por exemplo 5 itens, e pula de pagina, fecha a div anterior com a imagem, e abre uma nova, com todas as margens e etc, ficou legal, porem queria algo mais automatico, do jeito que esta , ta muito manual, eu decidindo a quebra de pagina, queria q quebrasse e colocasse a imagem de fundo e as margens automatico. 

Abaixo um Exemplo do meu codigo:
https://jsfiddle.net/VitorBueno/w3rsz0qg/2/

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sinceramente não consigo entender o que está tentando fazer... Por que não tenta desenhar, literalmente falando. Faz um desenho de como está e de como deveria ficar e anexa aqui.

Mas se eu entendi bem o que você está tentando fazer, então o grande problema se encontra em sua imagem de fundo, ou seja, se você vai possuir um conteúdo dinâmico, que varia de carta para carta, então talvez você não deva utilizar a imagem da forma como ela está. Talvez você deva recortá-la, em mais ou menos 3 pedaços: Cabeçalho, corpo e rodapé. Com as tres partes da imagem em mãos, então você criar uma div com a imagem do cabeçalho, outra div com a imagem do corpo (a imagem da gota dágua) e a ultima div como rodapé da imagem. Sendo que a div do meio ( gota dágua) teria um tamanho dinamico expandido de acordo com o tamanho do conteúdo. E quanto a quebra de página, uma sugestão seria limitar a quantidade de caracteres até o limite de uma página, ao chegar nesse limite você gera a carta e caso ainda reste algum texto, limpe o conteúdo anterior e recomece o processo de digitação.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, BonnerUnit disse:

Sinceramente não consigo entender o que está tentando fazer... Por que não tenta desenhar, literalmente falando. Faz um desenho de como está e de como deveria ficar e anexa aqui.

Mas se eu entendi bem o que você está tentando fazer, então o grande problema se encontra em sua imagem de fundo, ou seja, se você vai possuir um conteúdo dinâmico, que varia de carta para carta, então talvez você não deva utilizar a imagem da forma como ela está. Talvez você deva recortá-la, em mais ou menos 3 pedaços: Cabeçalho, corpo e rodapé. Com as tres partes da imagem em mãos, então você criar uma div com a imagem do cabeçalho, outra div com a imagem do corpo (a imagem da gota dágua) e a ultima div como rodapé da imagem. Sendo que a div do meio ( gota dágua) teria um tamanho dinamico expandido de acordo com o tamanho do conteúdo. E quanto a quebra de página, uma sugestão seria limitar a quantidade de caracteres até o limite de uma página, ao chegar nesse limite você gera a carta e caso ainda reste algum texto, limpe o conteúdo anterior e recomece o processo de digitação.


Certo assim, Digamos tenho uma carta, com um texto qualquer, e algumas lista de itens, cada linha um item digamos, tipo 1-Computador 2-Mouse e etc, cada item desse seria uma linha, e no fundo dessa carta tem um imagem de um timbrado, que esse meu texto e itens vai gerar por cima dele, essa imagem no caso vai ser o background da div mãe, e assim quando é só uma folha ok, mas as vezes a quantidade de itens vai ser maior, ocupando outra folha, e nessa outra folha alem de vir esses itens, precisa vir também o mesmo timbrado e todas as margens.

Eu já fiz uma função que conta os itens, quando chega numa certa quantidade, ele fecha a div mãe, quebra a pagina, e começa a div mãe novamente, com a imagem de fundo e a margem do topo ok, porem preciso disso de forma automática, sem eu barrar quando chegar numa certa quantidade, pois as vezes um item vai ocupar uma linha, as vezes duas,três.....  e não da pra ter um valor certo de quantos itens posso deixar para não Zuar a impressão.

Não posso usar o exemplo que falou de ter uma imagem para o começo e outra para a final, pois essa imagem tem um topo,uma marca no meio da pagina, e um rodapé com endereço, conforme mandei o link,  e também porque todas as paginas tem que ter essa mesma imagem de fundo, com todas as margens.

Então assim, eu preciso de uma forma automática de o sistema quebrar a pagina, e quando quebrar refazer o background da div e colocar as margens, não posso quebrar a pagina manualmente pois não fica num padrão legal. 
 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe uma forma automática, tem que ir controlando de alguma forma.

 

O que você poderia fazer, talvez funcione assim, não se, precisa testar é:

Continuar usando a tabela e no final você verifica a altura da tabela(via JQuery), se a altura não der o tamanho de uma página(o um múltiplo da altura) você adiciona na tabela um TR+TD com a altura que está faltando.

 

 

 

1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você não entendeu o que eu quis dizer sobre o recorte de imagens Vitor. Eu te faria um exemplo, entretanto no momento eu não disponho de tempo, mas, caso não tenha solucionado seu problema até amanhã, eu postarei um exemplo. Mas talvez você não deva fazer uma função que conte os itens, pois como você mesmo falou as vezes um item ocupa uma linha inteira as vezes não. Dessa forma talvez você devesse ter um controle maior sobre o número de linhas que caberão em cada folha. Outro ponto importante que não mencionou é a origem dos itens. Eles estão vindo do banco de dados, ou você os insere manualmente?

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Vitor, não sei se você já solucionou sua questão, mas caso ainda não a tenha solucionado eu desenvolvi um projeto que talvez atenda as suas necessidades. Basta enviá-lo para o servidor e acessar.

Segue o anexo: Carta.zip

Qualquer coisa posta aí.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora

  • Próximos Eventos

  • Conteúdo Similar

    • Por Wagner Moura
      Galera, já tentei de todos os meios fazer com que meu form input type=file salvasse automaticamente a foto ao ser carregada. Só consigo salvar a foto na pasta fotos/ depois que clico no submit Enviar. alguem poderia me ajudar?
    • Por brunoventura
      Boa noite pessoal. Tenho um tema customizado de loja virtual da tray. Preciso diminuir a largura e altura do campo de busca e do botão da busca no topo. Alguém pode me auxiliar a como fazer isso no css?  (http://adegadocorpo.commercesuite.com.br) 
    • Por wash80
      No meu site estou utilizando o template Geek da Tray. Preciso esconder o preço do visitante até o momento que ele loga. Consegui fazer isso com ajustes nos codigos atráves do Opencode da propria plataforma.
      Utilizando
      <span class="tray-hide" data-logged-user="true"> tanto no arquivo Price.html (esconder o preço no produto)  e Default.html (pra esconder o botao de compra)
      Consegui omitir o preço do visitante não logado.
      Porem em produtos visitados recentemente não consigo achar pra poder utilizar essa função e o produto aparece com o valor mesmo o visitante não estando logado.
      alguem me ajuda ?
      site revendadamoda.commercesuite.com.br
       
      Obrigado.
       
      Washington Moratti
       
    • Por lvsis
      Olá.
       
      Gostaria de saber se existe algum seletor CSS que se refira a um elemento anterior ao desejado.
       
      <th class="campo01"></th> <td class="campo02"></td> <th class="campo01"></th> <td class="campo02"></td> Eu queria que na hora que passa-se o mouse em cima do <td> o <th> anterior a ele mudasse de cor. Eu consegui fazer isso com JavaScript mas gostaria de saber se existe algum jeito de fazer isso só com CSS.