Jump to content
Vitor Bueno

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

Recommended Posts

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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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/

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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. 
 

Share this post


Link to post
Share on other 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 1

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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í.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By daviassumpcao
      Estou buscando uma orientação ou referência para desenvolver algo similar ao formulário dessa página do iPhone https://www.apple.com/shop/buy-iphone/iphone-se ... quando selecionamos alguma opção, a div que contém o formulário centralizar na página e rola feito um carrossel. Estou completamente perdido com essa demanda que recebi... agradeço antecipadamente a todos que derem uma força. Abraço
    • By lucasseribeiro
      Bons dias, fórum!
       
      Procurei uma área específica para o JavaFX e não encontrei... Estou aprendendo a usar essa biblioteca, está ficando interessante, se assemelha às tecnologias web com as quais tenho muita familiaridade pois uso há anos. Mas o CSS do JavaFX é diferente daquele do consórcio W3, e não estou encontrando material para entender esse -fx-CSS... A referência CSS da Oracle (https://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html) é obscura e não contém as infos que preciso, apesar de esclarecer muitas coisas... Passa uma impressão de que eles não querem que todos saibam!
      Por exemplo: ao estilizar uma menu-bar, mudei seu background, alterei a cor da fonte dos menus, mas eles ficaram colados uns nos outros, e eu não entendi como escolher a propriedade CSS adequada do FX para controlar a distância dos menus. Pude usar um padding, mas ao executar, quando abrimos um menu, os outros ainda são empurrados pois ainda que suas inscrições estejam separadas, os botões do menu ainda estão colados. O tutoriais não abordam o CSS do FX em profundidade, focam-se nos objetivos dos projetos e suas abordagens...
      Rsrs, podia ter no W3Schools... Alguém pode me ajudar com isso???
       
      Grato desde já!
       
      Lucas Ribeiro
    • By Alberto Nascimento
      Como faço que consiga colocar parágrafos no campo tipo "text" do formulário?
          <input name="Text1" style="width: 528px; height: 223px" type="text" /></form>
      Se eu pressiono ENTER automaticamente envia o formulário
      Como então consigo digitar ao preencher o formulário da forma abaixo?
       
    • By Sapinn
      Estou com dificuldade para chamar um arquivo CSS usando a configuração de um arquivo php. O bootstrap também não surte efeito na paginas
       
      Vejam só
      Config.php
       
      <?php define('APP_NOME','Projeto GIBI'); define('URL','http://localhost/bora_php');  
       
      index.php
       
      <?php include './../app/configuracao.php'; include './../app/Libraries/Rota.php'; include './../app/Libraries/Controller.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <link rel="stylesheet" href="<?=URL?>/public/css/estilos.css">     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" >         <title><?= APP_NOME?></title> </head> <body>     <?php         $rotas = new Rota();     ?>     <script src="https://code.jquery.com/jquery-3.5.1.min.js" ></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" ></script> <script src="<?=URL?>/public/css/script.js" ></script> </body> </html> estilo.css
      html{     background-color: red; }  
      Estou tentando seguir a padronização MVC(que por sinal eu tenho certa dificuldade), então não consigo achar onde estou errando
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.