php – ¿Cómo colocar fondo en FPDF de manera vertical?

Estoy generando un PDF con los datos de un formulario guardado en una Base de datos, sin problema se coloca la información, pero necesito colocar un fondo, quise colocar la información en una imagen, pero al momento de que se convierte en PDF parece que esta de manera horizontal, y necesito que sea vertical, la imagen la convierto de un documento Word con orientación vertical y la convierto en formato PNG.

Anexo mi código FPDF:

    $pdf = new FPDF('L', 'mm', 'A4');
    $pdf->SetTextColor(0, 0, 0);

    $pdf->AddPage();
    $pdf->Image('vista/img/constancia.png', 0, 0, 297, 210, 'PNG');

    $pdf->SetFont('times', '', 50);
    $pdf->SetTextColor(0,0,0);
    $pdf->Cell(120, 14, '', 0, 1, 'C');
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    
    $pdf->MultiCell(0, 0, utf8_decode('CERTIFICADO'), 0, 'C');
    $pdf->Output();

javascript – Como colocar o texto do input na tag

Preciso de ajuda guys, eu queria pegar o texto do input e colocar nessa nova tag “p”, e se eu mudar o texto e gerar uma nova quero que a antiga fique salva e gera uma nova com o novo texto plsss helpp

    function enviarDados(){
    
    var creat = document.getElementById("todas-frases");
    var texto = document.getElementById('text-input').value;

    creat.insertAdjacentHTML("afterend", "<p id='todas-frases'> </p>");

}

    <main>
          <div>
            <input class="box-dialog" id="text-input" type="text" placeholder="Escreva aqui....">
               
            <button onclick="enviarDados()" class="botao">Enviar</button>
          </div>
    </main>
       
        <div class="div-conteudo">
            <p id="todas-frases">Frase inicial para começar o site</p>
        </div>


c# – Colocar los archivos estáticos en otra unidad de disco de una aplicación web con asp-net core

Estoy realizando una aplicación web con asp-net core 5 y necesito que una carpeta de los archivos estáticos este fuera de la carpeta wwwroot, concretamente en la unidad D: del servidor IIS. Esta carpeta sería algo así: D:Cms

En el archivo appsettings.json tengo esta configuración:

{

“Cms”: {

"unidadDisco": "D:\",
"rutaCms": "D:\Cms",
"linkCms": "/Cms"

}

}
}

Y en el archivo Startup.cs tengo esta otra configuración:

        // Archivos estáticos en ASP.NET Core
        string rutaCms = Configuration.GetValue<string>("Cms:rutaCms");// C:\Cms ó D:\Cms
       
        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseStaticFiles(new StaticFileOptions
        {
            FileProvider = new PhysicalFileProvider(rutaCms),
            RequestPath = "/Cms",
            
        });

        app.UseRouting();
        app.UseCookiePolicy();
        app.UseAuthentication();
        app.UseAuthorization();
        app.UseSession();
        app.UseCors(MyAllowSpecificOrigins);

Con esta configuración si la carpeta Cms la coloco en la unidad C: (C:Cms) el servidor IIS si accede a los archivos estáticos, pero si la cambio a la unidad D: (D:Cms) no accede a los archivos estáticos y el IIS me da un error 401.

Pero, si ejecuto esta aplicación desde Visual Studio me funciona bien en ambos casos, lo cual no se si el problema me lo está dando el servidor IIS o el servidor IIS necesita alguna configuración.

Todo esto viene porque necesito liberar espacio en la unidad C: del servidor y tener la opción de poder cambiar esta carpeta a la ubicación que se necesite.

Otra cosa curiosa es que si al publicar la aplicación al servidor, tengo configurada la carpeta Cms a la unidad D: y elimino la carpeta de la unidad C: el servidor me da un error 500.30

De antemano gracias por la ayuda.

Un Saludo
César

javascript – Por que es necesario colocar un return cerrando un if

estoy practicando con React y para gestionar un estado en un formulario, que me de error si dejo el campo en blanco he creado la función handleSubmit:

const Form = () => {
  // state del formulario
  const (busqueda, guardarBusqueda) = useState({
    pais: "",
  });
  const (error, guardarError) = useState(false);

  // extraer pais
  const { pais } = busqueda;

  // función que coloca los elementos en el state
  const handleChange = (e) => {
    // actualizar el state
    guardarBusqueda({
      ...busqueda,
      (e.target.name): e.target.value,
    });
  };

  // Cuando el usuario da submit al form
  const handleSubmit = (e) => {
    e.preventDefault();
    //validar
    if (pais.trim() === "") {
      guardarError(true);
      return;
    }
    guardarError(false);

    //pasarlo al componente principal
  };

  return (
    <form onSubmit={handleSubmit}>
      {error && <p>Tienes que escribir un país</p>}
      <label htmlFor="pais">País:</label>
      <input
        type="text"
        name="pais"
        id="pais"
        value={pais}
        onChange={handleChange}
      />
      <input type="submit" value="Buscar Capital" />
    </form>
  );
};

Mi duda es, por que el if de la función handleSubmit no me funciona (no me cambia el estado si se cumple la condición) si lo dejo sin el return:

const handleSubmit = (e) => {
    e.preventDefault();
    //validar
    if (pais.trim() === "") {
      guardarError(true);
    }
    guardarError(false);

    //pasarlo al componente principal
  };

y si pongo el return como el primer ejemplo del código si me funciona. Seguramente sea algo obvio pero no tengo por costumbre poner return en los if. Gracias de antemano, un saludo

Como colocar um ficheiro mp3 em python

Obrigado por contribuir com o Stack Overflow em Português!

  • Certifique-se de responder à pergunta. Entre em detalhes sobre a sua solução e compartilhe o que você descobriu.

Mas evite

  • Pedir esclarecimentos ou detalhes sobre outras respostas.
  • Fazer afirmações baseadas apenas na sua opinião; aponte referências ou experiências anteriores.

Para aprender mais, veja nossas dicas sobre como escrever boas respostas.

ckeditor – Como colocar estilo em tag html que estão dentro de uma variável

Por favor, alguém pode me ajudar neste exemplo? Uso ckeditor5 com o Svelte, usando o pacote ckeditor5-svelte, e queria aumentar a imagem do preview da postagem, mas não sei como alcançar isto.

no meu código, o preview está assim, na classe Editor.svelte:

<div class="preview" >{@html record.title}</div> 

e o texto de record.title, é algo assim:

<figure class="image"><img src="https://lh3.googleusercontent.com/a-/AOh14Gih2jtUuKIoZdE54flFC12c-aT2Csjn87o5ARlXWA=s96-c" alt="user-avatar"><figcaption>aaa</figcaption></figure><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse porta, dui a semper faucibus, velit mas

O que eu queria fazer era aplicar estilo dentro das tags dessa variável, para ela preencher a largura do container. como faço isto?

Antes de qualquer coisa, obrigado!.

inserir a descrição da imagem aqui

javascript – Onde colocar uma “const” do Modal do Material UI dentro de uma Class no ReactJS?

import React, { Component } from 'react';

//modal:
import Modal from '@material-ui/core/Modal';
import Backdrop from '@material-ui/core/Backdrop';
import Fade from '@material-ui/core/Fade';

import { connect } from 'react-redux';
import firebase from 'firebase/app';
import _ from 'lodash';
import { Link } from 'react-router-dom';
import { Form, Select, DatePicker, Popover } from 'antd';
import { LoadingOutlined, DownloadOutlined } from '@ant-design/icons';
import Button from '@material-ui/core/Button';
import { Container, ActionsForm, Loading } from './styles';

import ReactToExcel from 'react-html-table-to-excel';

import { changePage } from '../../../store/modules/user/actions';
import {
    getAllEstablishmentsRequest,
    getLocationsRequest,
} from '../../../store/modules/establishment/actions';

const { RangePicker } = DatePicker;

const configValidation = {
    rules: (
        {
            type: 'array',
            required: true,
            message: 'Esse campo é obrigatório!',
        },
    ),
};

const formRef = React.createRef();

// const rangeValue = fieldsValue('range-picker');

class GenerateReport extends Component {

    state = {
        file: null,
        update: false,
        searchText: '',
        searchedColumn: '',
        establishment: (),
        loading: false,
    };

    componentDidMount() {
        this.setState({ loading: true });
        // const { state } = this.props.location;

        this.props.getLocationsRequest();
        this.props.changePage(
            'relatorio',
            'GERADOR DE RELATÓRIOS',
            '',
            ''
        );

        // this.props.getAllEstablishmentsRequest(this.props.profile)

        firebase
            .database()
            .ref('/estabelecimentos_pedidos')
            .once('value')
            .then(snapshot => {
                if (!this.props.profile.franqueado) {
                    this.setState({ establishment: _.values(snapshot.val()), loading: false });
                } else {
                    const establishment = _.values(snapshot.val())
                        .map(usuario => {
                            if (usuario.email === this.props.profile.email) return;
                            if (usuario.localizacao === this.props.profile.localizacao) {
                                return usuario;
                            }
                        })
                        .filter(establishment => establishment !== undefined);
                    this.setState({ establishment, loading: false });
                }
            })
            .catch(err => {
                this.setState({ loading: false });
            });
    }


    onFinish = async values => {
        let localizacaoRef = '';

        let fieldsValue = 0;

        this.props.locations.map(location => {
            if (location.nome === values.localizacao) {
                localizacaoRef = location.uid;
            }
        });

        this.props.getAllEstablishmentsRequest({
            estabeReference: values.estabeReference,
            nome: values.nome,
            localizacao: values.localizacao,
            localizacaoRef,
            rangeValue: values.pedidos,
        });
    };

    onChange = e => {
        this.setState({ file: e.target.files(0) });
    };

    handleSearch = (selectedKeys, confirm, dataIndex) => {
        confirm();
        this.setState({
            searchText: selectedKeys(0),
            searchedColumn: dataIndex,
        });
    };

    render() {
        const {
            loading,
            locations,
            loadingLocations,
            loadingEstablishments,
            establishments,

        } = this.props;


        const (open, setOpen) = React.useState(false);

        //modal:
        const handleOpen = () => {
            setOpen(true);
        };

        const handleClose = () => {
            setOpen(false);
        };

        return (
            <Container>

                <h1>Gerar Relatório Específico</h1>

                <Form ref={formRef} onFinish={this.onFinish}>

                    <Popover
                        content={<strong>Período para o relatório</strong>}
                        placement="right"
                        trigger="hover"
                    >
                        <Form.Item name="range-picker" {...configValidation}>
                            <RangePicker
                                format="DD/MM/YYYY"
                                style={{ width: '100%' }}
                            />
                        </Form.Item>
                    </Popover>

                    <Popover
                        content={<strong>Selecione a(s) Cidade(s)</strong>}
                        placement="right"
                        trigger="hover"
                    >
                        <Form.Item name="locations">
                            <Select
                                showSearch
                                mode="multiple"
                                optionFilterProp="children"
                                placeholder="Selecione a(s) Cidade(s)"
                                loading={loadingLocations}
                                filterOption={(input, option) =>
                                    option.children.toLowerCase().indexOf(input.toLowerCase()) >=
                                    0
                                }
                            >
                                <Select.Option value="" disabled>
                                    Selecione a(s) Cidade(s)
                                </Select.Option>
                                {locations.map(location => (
                                    <Select.Option
                                        key={location.nome}
                                        value={location.nome}
                                    >
                                        {location.nome}
                                    </Select.Option>
                                ))}
                            </Select>
                        </Form.Item>
                    </Popover>

                    <Popover
                        content={<strong>Selecione o(s) Estabelecimento(s)</strong>}
                        placement="right"
                        trigger="hover"
                    >
                        <Form.Item name="establishments">
                            <Select
                                showSearch
                                mode="multiple"
                                optionFilterProp="children"
                                placeholder="Selecione o(s) Estabelecimento(s)"
                                loading={loadingEstablishments}
                                filterOption={(input, option) =>
                                    option.children.toLowerCase().indexOf(input.toLowerCase()) >=
                                    0
                                }
                            >
                                <Select.Option value="" disabled>
                                    Selecione o(s) Estabelecimento(s)
                                </Select.Option>
                                {establishments.map(establishment => (
                                    <Select.Option
                                        key={establishment.nome}
                                        value={establishment.nome}
                                    >
                                        {establishment.nome}
                                    </Select.Option>
                                ))}
                            </Select>
                        </Form.Item>
                    </Popover>

                    {loading ? (

                        <Loading>
                            <LoadingOutlined />
                        </Loading>
                    ) : (

                            <Form.Item>


                                <ActionsForm>

                                    <button type="button" onClick={handleOpen}>
                                        react-transition-group
                        </button>
                                    <Modal
                                        aria-labelledby="transition-modal-title"
                                        aria-describedby="transition-modal-description"
                                        // className={classes.modal}
                                        open={open}
                                        onClose={handleClose}
                                        closeAfterTransition
                                        BackdropComponent={Backdrop}
                                        BackdropProps={{
                                            timeout: 500,
                                        }}
                                    >
                    
                                        <Fade in={open}>
                                            <div
                                            // className={classes.paper}
                                            >
                                                <h2 id="transition-modal-title">Transition modal</h2>
                                                <p id="transition-modal-description">react-transition-group animates me.</p>
                                            </div>
                                        </Fade>
                                    </Modal>

                                    <Button
                                        type="submit"
                                        disabled={loading}
                                        onClick={(_handleOpenTable) => window.open("", "_self")}
                                    >
                                        Gerar
                                </Button>

                                    {/* <button type="button" onClick={{}}>
                                        Open Modal</button> */}

                                    <ReactToExcel
                                        table="table-to-xls"
                                        filename={`Relatório-QPreço`}
                                        sheet="Tabela 1"
                                        buttonText="Exportar para Excel"
                                    >

                                        Teste
                                    </ ReactToExcel>

                                    <Link to="/reports">
                                        Voltar para Relatórios
                                </Link>
                                </ActionsForm>
                            </Form.Item>
                        )}

                </Form>

                <table id="table-to-xls">

                </table>
            </Container>

        );
    }
}

const mapStateToProps = state => ({
    loading: state.establishment.loading,
    locations: state.establishment.locations,
    loadingEstablishments: state.establishment.loading,
    establishments: state.establishment.establishments,
});

const mapDispatchToProps = {
    changePage,
    getLocationsRequest,
    getAllEstablishmentsRequest,
};

export default connect(mapStateToProps, mapDispatchToProps)(GenerateReport);

php – ¿Como colocar ruta global para llamada de archivos?

Estoy queriendo reutilizar un navbar en varias pantallas, por lo que tengo definido de la siguiente manera.

<?php
    set_include_path('./');
?>

<?php include 'navBar/header.php'; ?>
<?php include 'navBar/navbar.php'; ?>

Solo que como se reutilizara en varias pantallas, las cuales están en diferentes rutas quiero que utilice de forma global una sola ruta, se supone que esta linea ayudaría set_include_path('./');, ya que sin esa linea usa la ruta desde donde se esta llamando.
Funciona solo en una ruta, pero al llamarlo desde una ruta similar a esta folder/sample/page.php
marca el siguiente error.

Warning: include(navBar/header.php): failed to open stream: No such file or directory in (ruta)

también eso afecta a las rutas dentro del html del navbar.php ejemplo imágenes que están en otra ruta

Lo ideal es que todos los datos se llamen desde una misa ruta ejemplo rais

mysql – Colocar uma informação de uma saída de dados(puxada de um banco de dados) em uma variável

tenho o seguinte código (funcionando):

import mysql.connector

mydb = mysql.connector.connect(host='localhost', database='db_farmacia', user='root', password='')  

cursor = mydb.cursor()  

total_compra = valor_item = troco = 0 
produtos_comprados = ()
qtd_produtos = 0 

while True:
  codigo = input('nDigite o código de um produto: ')

  sql = f"select nome_produto, preço from tb_produtos where codigo = '{codigo}';" 
    
  cursor.execute(sql)         # comando que executa a instrução SQL acima

  for (nome_produto, preço) in cursor:
    print(nome_produto)
    print(preço)import mysql.connector

Gostaria de saber como faço para:

  1. colocar o valor do preço do produto buscado em uma variável chamada “valor_produto”. (Essa variável será usada para somar e dar o total da compra). Lembrando que ela é do tipo float.

  2. Depois eu vou criar uma variável assim(igual era no antigo código sem uso de banco de dados):
    total_compra += valor_produto

  3. E por último, preciso pegar essas valores (código, nome do produto e preço) e coloca-los em uma lista cujo o nome da variável será : produtos_comprados.


O antigo código (sem banco de dados) buscava em um dicionário, funcionava assim:

produtos = {'1':('Dipirona 500mg 10 cp', 2.99),
            '2':('Paracetamol 500mg 10 cp', 4.7),
            '3':('Ibuprofeno 600 mg 4 cp ', 5.98),
            '4':('Dorflex 10 cp', 10.99),
            '5':('Neosoro', 3.49),
            '6':('Torsilax 4 cp', 5.99)}

total_compra = valor_item = troco = 0
produtos_comprados = ()
qtd_produtos = 0 

while True:
  codigo = str(input('nDigite o código de um produto: '))
  if len(codigo) > 0:
    if codigo in produtos.keys():
      print(f'Produto.: {produtos.get(codigo)(0)}')
      descricao_produto = produtos.get(codigo)(0)
      print(f'Valor...: R$ {produtos.get(codigo)(1):.2f}')
      valor_pro = produtos.get(codigo)(1)
      qtd_produtos += 1
      total_compra += valor_pro
      produtos_comprados.append((codigo, valor_pro, descricao_produto))
    else:
      print('Código de produto inválido')
  else:
    break

array – Preciso colocar coordenadas vindas do MongoDB em um mapa com reactJS

Estou criando um mapa de calor do google maps com reactjs, consegui implementar ele e passar as coordenadas manualmente, mas preciso criar as coordenadas dinamicamente vindas do banco no MongoDB, na parte das positions, estou com dificuldade para colocar os dados vindos do banco e o código ler os mesmos como coordenadas ao invés de ler como um array. Se eu seto algum número no array ele funciona mas só de a um, preciso que ele liste todas latitudes e longitudes e crie todos os pontos de uma vez.
segue o código com as coordenadas inseridas manualmente (assim ele funciona de forma estatica)

import React, { Component } from 'react';
import Map from './mapa';

const data = (
  { lat: -23.532881, lng: -46.792004 },
  { lat: -23.532200, lng: -46.781681 },
  { lat: -23.532681, lng: -46.782104 },
  { lat: -23.532281, lng: -46.792084 },

  { lat: -23.532881, lng: -46.792005 }
);
 
export default class IndexMapa extends Component {
  render() {
    return (    <React.Fragment>
      <Map center={{ lat: -23.532881, lng: -46.792004 }} zoom={14} positions={data} />
      </React.Fragment>);
  }
}

preciso que essa constante data seja dinâmica com os pontos que tenho no MongoDB.
segue o código que eu tenho mas está retornando apenas 1 coordenada (apenas 1 ponto no mapa).
obs. se eu nâo setar um número no lat e no lng, o código retorna um array e não aparece nenhum ponto no mapa.

    import React, { Component } from 'react';
    import Map from './mapa';
    import api from '../../../services/api'; 
    // const data = ();
    export default class IndexMapa extends Component {
      constructor(props) {
        super(props);
        this.state = {
        position:()
        } 
      }
    
      async componentDidMount() {
        await api.get('/api/clientes.coordenada').then(res => {
             const local = res.data;
             let lng = ();
             let lat = ();
             local.forEach(element => {
               lat.push(element.lat);
               lng.push(element.lon);
              });
              //  console.log(local);   
          this.setState({ 
            position: ( 
              {lat: lat(0), lng: lng(0)}
            )   
          });
        });
        // console.log(this.state.position);
      }
      render() {
        return (   
          <React.Fragment>
          <Map center={{ lat: -23.532881, lng: -46.792004 }} zoom={14} positions={this.state.position} />
          </React.Fragment>);
      }
    }

desde já agradeço.